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;fp=include%2Fc%2B%2B%2Forb.h;h=716b18617837c17e70b3fb4dfa0b2b91c689a80e;hp=a2ead4d67fde25486c28f3412fcc0030265c00a1;hb=39d6852ead7a839f9e15e21e517dfd7a795e5cdd;hpb=cc1bee96fd874ff2c85c765f81ec2f4ba4584b9d diff --git a/include/c++/orb.h b/include/c++/orb.h index a2ead4d..716b186 100644 --- a/include/c++/orb.h +++ b/include/c++/orb.h @@ -123,6 +123,14 @@ namespace System { uint32_t reserved[3]; // must be zero }; + struct MarshCtx { + GrowableArray &buf; + GrowableArray &objlist; + GrowableArray &newobjlist; + ParamInfoBlock::Segment *segs; + int nsegs; + }; + struct VStructInfo { // List of GUIDs of the struct and its superstructs, // starting with System.VStruct and ending with @@ -134,17 +142,10 @@ namespace System { const int chainlen; - int (*marshall)(GrowableArray &buf, - GrowableArray &objlist, - GrowableArray &newobjlist, - ParamInfoBlock::Segment *segs, - int nsegs); - void (*unmarshall)(Array buf, - Array< ::System::_i_Object *, ORBMM> objlist, - ParamInfoBlock::Segment *segs, - int nsegs); + int (*marshall)(MarshCtx &ctx); + void (*unmarshall)(MarshCtx &ctx); }; - + namespace Priv { // Return the caller's PC. It'd be nice if GCC had a builtin for // the current PC, so that a simple relocation could be used rather @@ -161,6 +162,7 @@ namespace System { return false; #endif } + } }; }