Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: plantage louche dans sf::thread  (Lu 1987 fois)

0 Membres et 1 Invité sur ce sujet

Gadam

  • Newbie
  • *
  • Messages: 4
  • Content
    • Voir le profil
    • Portfolio
    • E-mail
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 ?

Gadam

  • Newbie
  • *
  • Messages: 4
  • Content
    • Voir le profil
    • Portfolio
    • E-mail
Re : plantage louche dans sf::thread
« Réponse #1 le: Octobre 04, 2016, 10:18:58 am »
La réponse a été donnée sur le forum en anglais :

http://en.sfml-dev.org/forums/index.php?topic=20936.0