X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=include%2Fc%2B%2B%2Forb.h;h=484c1426473e4a88c67f3e6b57d72cef48886c9f;hp=72daad843dcedaaed5ab6175e8e174d9c55ad62d;hb=bc696ad9b0d5a2ad04e2de5ad8b89f746dd78491;hpb=257fccc857c7ee8dd304552e4e2e90336b0ef807 diff --git a/include/c++/orb.h b/include/c++/orb.h index 72daad8..484c142 100644 --- a/include/c++/orb.h +++ b/include/c++/orb.h @@ -309,24 +309,13 @@ namespace System { } struct IFaceInfo; + typedef uint32_t ID; struct IFaceTable { const IFaceInfo *info; const ptrdiff_t offset; }; - struct VStructInfo { - // List of GUIDs of the struct and its superstructs, - // starting with System.VStruct and ending with - // the concrete struct. - - const unsigned long *const *const guids; - - // Length of inheritance chain; 1 for System.VStruct - - const int chainlen; - }; - union GUID { unsigned char c[16]; unsigned long l[]; @@ -345,7 +334,6 @@ namespace System { guid1[3] == guid2[3]))); } - typedef uint32_t ID; struct ParamInfoBlock { uint32_t buffer_size; uint32_t copy_size; @@ -398,6 +386,23 @@ namespace System { struct IFaceInfo { const GUID *guid; + void (*invoke)(Array objlist, + ParamInfoBlock::Segment *segs, + int nsegs); + ::System::_i_Object *(*wrapper)(ID id); + }; + + struct VStructInfo { + // List of GUIDs of the struct and its superstructs, + // starting with System.VStruct and ending with + // the concrete struct. + + const unsigned long *const *const guids; + + // Length of inheritance chain; 1 for System.VStruct + + const int chainlen; + int (*marshall)(GrowableArray &buf, GrowableArray &objlist, ParamInfoBlock::Segment *segs,