Ignore:
Timestamp:
Jan 17, 2007, 7:33:51 PM (19 years ago)
Author:
cinc
Message:

Class DLLs register themselves with the garbage collector now. Some clean ups.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ORBit2-2.14.0/src/idl-compiler/orbit-idl-c-skelimpl.c

    r118 r195  
    12721272          g_free(chrTemp);
    12731273        }
     1274        fprintf(ski->of, "#include \"nomgc.h\"\n");
    12741275        fprintf(ski->of, "NOMClass* NOMLINK %sNewClass(gulong ulMajor, gulong ulMinor)\n{\n", id);
    12751276        fprintf(ski->of, "  NOMClass* result;\n\n");
    1276         //fprintf(ski->of, "%s* NOMLINK %sNewClass(gulong ulMajor, gulong ulMinor)\n{\n", id, id);
    1277         // fprintf(ski->of, "  %s* result;\n\n", id);
     1277
     1278        fprintf(ski->of, "#ifdef __OS2__\n");
     1279        fprintf(ski->of, "  gulong ulObj, ulOffset;\n  gchar thePath[CCHMAXPATH];\n  HMODULE hModule;\n\n");
     1280        fprintf(ski->of,
     1281                "  g_assert(DosQueryModFromEIP( &hModule, &ulObj, CCHMAXPATH, thePath, &ulOffset, (ULONG)%sNewClass)==0);\n", id);
     1282        fprintf(ski->of, "  g_strlcat(thePath, \".DLL\", sizeof(thePath));\n");
     1283        fprintf(ski->of, "  if(!nomQueryUsingNameIsDLLRegistered(thePath))\n    {\n");
     1284        fprintf(ski->of, "    HREGDLL hReg=nomBeginRegisterDLLWithGC();\n");
     1285        fprintf(ski->of, "    g_assert(nomRegisterDLLByName(hReg, thePath));\n");
     1286        fprintf(ski->of, "    nomEndRegisterDLLWithGC(hReg);\n    }\n");
     1287        fprintf(ski->of, "#else\n#error DLL must be registered with the garbage collector!\n#endif\n\n");
    12781288
    12791289        /* Make sure meta class is created if specified by the user */
Note: See TracChangeset for help on using the changeset viewer.