compiler/ecere: Proper fix.
[sdk] / compiler / bootstrap / ecere / bootstrap / instance.c
index fb71295..051f60d 100644 (file)
@@ -3508,14 +3508,16 @@ if(_class)
 {
 {
 int size = _class->structSize;
+struct __ecereNameSpace__ecere__com__Instance * module = _class->module;
+struct __ecereNameSpace__ecere__com__Instance * application = module ? ((struct __ecereNameSpace__ecere__com__Module *)(((char *)module + structSize_Instance)))->application : (((void *)0));
+int flags = application ? (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)application + structSize_Module)))->isGUIApp : 0;
+unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
 
-if(_class->module != __thisModule)
+if(inCompiler)
 {
-int flags = (unsigned int)((struct __ecereNameSpace__ecere__com__Application *)(((char *)((struct __ecereNameSpace__ecere__com__Module *)(((char *)_class->module + structSize_Instance)))->application + structSize_Module)))->isGUIApp;
 unsigned int force32Bits = (flags & 4) ? 0x1 : 0x0;
-unsigned int inCompiler = (flags & 8) ? 0x1 : 0x0;
 
-if(force32Bits && inCompiler)
+if(force32Bits)
 {
 if(!strcmp(_class->name, "Module"))
 size = 560;