*** src/tool/omniidl2/omniORB2_be/o2be_operation.cc Thu Jan 7 14:12:47 1999 --- newsrc/tool/omniidl2/omniORB2_be/o2be_operation.cc Wed Feb 10 13:52:19 1999 *************** *** 28,33 **** --- 28,38 ---- /* $Log: o2be_operation.cc,v $ + Revision 1.26 1999/02/10 13:52:19 djr + Replaced uses of an interface foo with foo_Helper, so that the stubs + will compile even if the interface is not defined anywhere in the + translation unit. + Revision 1.25 1999/01/07 14:12:43 djr New implementation of proxy calls to reduce the code size overhead. *************** *** 635,647 **** case tObjref: { IND(s); ! declareVarType(s, a->field_type(), o2be_global::root(), 0, 0); s << " " << _argname << ";\n"; ! produceUnMarshalCode(s, a->field_type(), ! o2be_global::root(), "giop_client", _argname, ntype, mapping); ! IND(s); s << "CORBA::release(" << argname << ");\n"; IND(s); s << argname << " = " << _argname << ";\n"; break; } --- 640,658 ---- case tObjref: { IND(s); ! AST_Decl* ft = a->field_type(); ! while( ft->node_type() == AST_Decl::NT_typedef ) ! ft = o2be_typedef::narrow_from_decl(ft)->base_type(); ! declareVarType(s, ft, o2be_global::root(), 0, 0); s << " " << _argname << ";\n"; ! produceUnMarshalCode(s, ft, o2be_global::root(), "giop_client", _argname, ntype, mapping); ! // Must use the helper class here, not CORBA::release, as ! // if it is a forward declared interface we might not yet ! // know that it is derived from CORBA::Object. ! IND(s); s << o2be_interface::narrow_from_decl(ft)->fqname() ! << "_Helper::release(" << argname << ");\n"; IND(s); s << argname << " = " << _argname << ";\n"; break; } *************** *** 3221,3227 **** { IND(s); s << argname << " = " << o2be_interface::narrow_from_decl(decl)->fqname() ! << "::unmarshalObjRef(" << netstream << ");\n"; } break; --- 3232,3238 ---- { IND(s); s << argname << " = " << o2be_interface::narrow_from_decl(decl)->fqname() ! << "_Helper::unmarshalObjRef(" << netstream << ");\n"; } break; *************** *** 3493,3499 **** } s << " = " << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "::unmarshalObjRef(" << netstream << ");\n"; } break; --- 3504,3510 ---- } s << " = " << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "_Helper::unmarshalObjRef(" << netstream << ");\n"; } break; *************** *** 3600,3606 **** case tObjref: { IND(s); s << o2be_interface::narrow_from_decl(decl)->fqname() ! << "::marshalObjRef(" << argname << "," << netstream << ");\n"; } break; --- 3611,3617 ---- case tObjref: { IND(s); s << o2be_interface::narrow_from_decl(decl)->fqname() ! << "_Helper::marshalObjRef(" << argname << "," << netstream << ");\n"; } break; *************** *** 3829,3835 **** tdecl = o2be_typedef::narrow_from_decl(tdecl)->base_type(); } IND(s); s << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "::marshalObjRef("; if (!mapping.is_arrayslice) { s << argname; } --- 3840,3846 ---- tdecl = o2be_typedef::narrow_from_decl(tdecl)->base_type(); } IND(s); s << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "_Helper::marshalObjRef("; if (!mapping.is_arrayslice) { s << argname; } *************** *** 3955,3961 **** { IND(s); s << sizevar << " = " << o2be_interface::narrow_from_decl(decl)->fqname() ! << "::NP_alignedSize(" << argname << "," << sizevar << ");\n"; } break; --- 3966,3972 ---- { IND(s); s << sizevar << " = " << o2be_interface::narrow_from_decl(decl)->fqname() ! << "_Helper::NP_alignedSize(" << argname << "," << sizevar << ");\n"; } break; *************** *** 4153,4159 **** } IND(s); s << sizevar << " = " << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "::NP_alignedSize("; if (!mapping.is_arrayslice) { s << argname; } --- 4164,4170 ---- } IND(s); s << sizevar << " = " << o2be_interface::narrow_from_decl(tdecl)->fqname() ! << "_Helper::NP_alignedSize("; if (!mapping.is_arrayslice) { s << argname; }