X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_structure.c;h=8708d2bf8def8bfcc6d41fec83f89821bbd17efe;hb=01b5b38f3170ff5372df2f17037162220dc70ffe;hp=4a2fa06729fc781dd476a0883435d98540846fdb;hpb=2e5dc871b7c1df472978af9811d0e97b6684707c;p=freeglut diff --git a/src/freeglut_structure.c b/src/freeglut_structure.c index 4a2fa06..8708d2b 100644 --- a/src/freeglut_structure.c +++ b/src/freeglut_structure.c @@ -109,7 +109,7 @@ SFG_Window* fgCreateWindow( SFG_Window* parent, const char* title, /* * This private function creates a menu and adds it to the menus list */ -SFG_Menu* fgCreateMenu( FGCBmenu menuCallback ) +SFG_Menu* fgCreateMenu( FGCBMenu menuCallback ) { int x = 100, y = 100, w = 100, h = 100 ; SFG_Window *current_window = fgStructure.Window ; @@ -266,11 +266,15 @@ void fgDestroyWindow( SFG_Window* window, GLboolean needToClose ) while ( (subWindow = (SFG_Window *)window->Children.First) != NULL ) fgDestroyWindow( subWindow, needToClose ); - if ( window->Callbacks.Destroy != NULL ) + /* + * XXX Since INVOKE_WCB() tests the function pointer, why not make + * XXX this unconditional? Overhead is close to nil, and it would + * XXX clarify the code by omitting a conditional test. + */ + if ( FETCH_WCB( *window, Destroy ) ) { SFG_Window *activeWindow = fgStructure.Window ; - fgSetWindow ( window ) ; - window->Callbacks.Destroy () ; + INVOKE_WCB( *window, Destroy, ( ) ); fgSetWindow ( activeWindow ) ; }