Bienvenue, Invité. Merci de vous connecter ou de vous inscrire. Avez-vous oublié d'activer ?

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.


Sujets - Gadam

Pages: [1]
1
Système / plantage louche dans sf::thread
« le: Octobre 03, 2016, 06:58:22 pm »
Bonjour,

En passant de SFML 2.3.2 à 2.4.0 sur un gros projet, j'obtiens un plantage plutot bizarre...

Voici la version minimale :
class Base
{
public :
    virtual void foo(){};
};

class Deriv
    : public Base
{
public :
    virtual void foo(){
        printf( "hello\n" );
        sf::Font zFont;
        zFont.loadFromFile( "depend/calibri.ttf" ); //ok!
        sf::Text zText( "yolo", zFont );
        zText.getGlobalBounds();    //crash
    }
};

int main()
{
    Deriv instance;

    sf::Thread thread( &Deriv::foo, &instance );
    thread.launch();

}

1. Dans cet exemple, le programme "cesse de fonctionner" dés que l'appel à getGlobalBounds est fait
(Plus précisément : il ne fonctionne que si on enlève cet appel - mon debugger est paumé et ne peut pas plus m'aider)

2. Lors de la création du thread, si au lieu de donner Deriv::foo je met Base::foo (ce qui doit revenir au même), j'ai une erreur louche dans le code de SFML (pas narmol je suppose).
error: must use '.*' or '->*' to call pointer-to-member function ...

Note : tout fonctionne impeccable sur SFML 2.3.2

J'utilise Code::Blocks avec mingw32-gcc-4.9.2

Avez-vous une idée de ce qui coince ?
Cela peut-il venir d'une mauvaise configuration de la lib / du compilo ?

Pages: [1]