exceptions
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
#include "RageLog.h"
|
||||
#include "StepMania.h"
|
||||
#include "RageFileManager.h"
|
||||
#include "RageUtil.h"
|
||||
#include "LoadingWindow_Gtk.h"
|
||||
#include "LoadingWindow_GtkModule.h"
|
||||
|
||||
@@ -14,39 +15,40 @@ static SETTEXT Module_SetText;
|
||||
|
||||
LoadingWindow_Gtk::LoadingWindow_Gtk()
|
||||
{
|
||||
try {
|
||||
}
|
||||
|
||||
CString LoadingWindow_Gtk::Init()
|
||||
{
|
||||
ASSERT( Handle == NULL );
|
||||
|
||||
Handle = dlopen( DirOfExecutable + "/" + "GtkModule.so", RTLD_NOW );
|
||||
if( Handle == NULL )
|
||||
RageException::ThrowNonfatal("dlopen(): %s", dlerror());
|
||||
return ssprintf( "dlopen(): %s", dlerror() );
|
||||
|
||||
Module_Init = (INIT) dlsym(Handle, "Init");
|
||||
if( !Module_Init )
|
||||
RageException::ThrowNonfatal( "Couldn't load symbol Module_Init" );
|
||||
return "Couldn't load symbol Module_Init";
|
||||
Module_Shutdown = (SHUTDOWN) dlsym(Handle, "Shutdown");
|
||||
if( !Module_Shutdown )
|
||||
RageException::ThrowNonfatal( "Couldn't load symbol Module_Shutdown" );
|
||||
return "Couldn't load symbol Module_Shutdown";
|
||||
Module_SetText = (SETTEXT) dlsym(Handle, "SetText");
|
||||
if( !Module_SetText )
|
||||
RageException::ThrowNonfatal( "Couldn't load symbol Module_SetText" );
|
||||
return "Couldn't load symbol Module_SetText";
|
||||
|
||||
const char *ret = Module_Init( &g_argc, &g_argv );
|
||||
if( ret != NULL )
|
||||
RageException::ThrowNonfatal( ret );
|
||||
} catch(...) {
|
||||
if( Handle )
|
||||
dlclose( Handle );
|
||||
Handle = NULL;
|
||||
throw;
|
||||
}
|
||||
return ret;
|
||||
return "";
|
||||
}
|
||||
|
||||
LoadingWindow_Gtk::~LoadingWindow_Gtk()
|
||||
{
|
||||
Module_Shutdown();
|
||||
if( Module_Shutdown != NULL )
|
||||
Module_Shutdown();
|
||||
Module_Shutdown = NULL;
|
||||
|
||||
dlclose( Handle );
|
||||
if( Handle )
|
||||
dlclose( Handle );
|
||||
Handle = NULL;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user