Changeset 100 for trunk/ORBit2-2.14.0


Ignore:
Timestamp:
Nov 25, 2006, 4:26:47 PM (19 years ago)
Author:
cinc
Message:

Made method calls typesafe with respect to the object parameter.

Location:
trunk/ORBit2-2.14.0/src/idl-compiler
Files:
2 edited

Legend:

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

    r92 r100  
    125125      fprintf(ci->fh, "\n/*\n * New macro for %s\n */\n", id);
    126126      fprintf(ci->fh, "#define %sNew() \\\n", id);
    127       fprintf(ci->fh, "        (_nomNew((_%s ? _%s : %sNewClass(%s_MajorVersion, %s_MinorVersion)), (void*) 0))\n",
    128               id, id, id, id ,id);
     127      /* Changed for typesafety */
     128      fprintf(ci->fh, "        ((%s*)_nomNew((_%s ? _%s : %sNewClass(%s_MajorVersion, %s_MinorVersion)), (void*) 0))\n",
     129              id, id, id, id, id ,id);
     130      //  fprintf(ci->fh, "        (_nomNew((_%s ? _%s : %sNewClass(%s_MajorVersion, %s_MinorVersion)), (void*) 0))\n",
     131      //      id, id, id, id ,id);
    129132
    130133      fprintf(ci->fh, "\n");
     
    324327#else
    325328    fprintf(ci->fh, "#ifndef %s\n", fullname);
    326     fprintf(ci->fh, "#define %s NOMObject\n", fullname);
     329    /* For being more typesave when calling methods */
     330    fprintf(ci->fh, "typedef struct %s_struct {\n", fullname);
     331    fprintf(ci->fh, "  struct nomMethodTabStruct  *mtab;\n");
     332    fprintf(ci->fh, "  integer4 body[1];\n");
     333    fprintf(ci->fh, "} %sObj;\n", fullname);
     334
     335    fprintf(ci->fh, "#define %s %sObj\n", fullname, fullname);
    327336    fprintf(ci->fh, "#endif\n");
    328337#endif
  • trunk/ORBit2-2.14.0/src/idl-compiler/orbit-idl-c-skelimpl.c

    r92 r100  
    11171117          g_free(chrTemp);
    11181118        }
    1119         fprintf(ski->of, "%s* NOMLINK %sNewClass(gulong ulMajor, gulong ulMinor)\n{\n", id, id);
    1120         fprintf(ski->of, "  %s* result;\n\n", id);
     1119        fprintf(ski->of, "NOMClass* NOMLINK %sNewClass(gulong ulMajor, gulong ulMinor)\n{\n", id);
     1120        fprintf(ski->of, "  NOMClass* result;\n\n");
     1121        //fprintf(ski->of, "%s* NOMLINK %sNewClass(gulong ulMajor, gulong ulMinor)\n{\n", id, id);
     1122        // fprintf(ski->of, "  %s* result;\n\n", id);
    11211123
    11221124        /* Make sure meta class is created if specified by the user */
Note: See TracChangeset for help on using the changeset viewer.