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 :
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).
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 ?
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();
}
{
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 ?