diff --git a/ruby/src/IceRuby/Endpoint.cpp b/ruby/src/IceRuby/Endpoint.cpp index f8a570e55c0..76e3c71baff 100644 --- a/ruby/src/IceRuby/Endpoint.cpp +++ b/ruby/src/IceRuby/Endpoint.cpp @@ -84,11 +84,11 @@ IceRuby_Endpoint_cmp(VALUE self, VALUE other) } Ice::EndpointPtr p1 = Ice::EndpointPtr(*reinterpret_cast(DATA_PTR(self))); Ice::EndpointPtr p2 = Ice::EndpointPtr(*reinterpret_cast(DATA_PTR(other))); - if(p1 < p2) + if(Ice::targetLess(p1, p2)) { return INT2NUM(-1); } - else if(p1 == p2) + else if(Ice::targetEqualTo(p1, p1)) { return INT2NUM(0); } diff --git a/ruby/src/IceRuby/Types.cpp b/ruby/src/IceRuby/Types.cpp index 9e039ca2d48..0d442d54300 100644 --- a/ruby/src/IceRuby/Types.cpp +++ b/ruby/src/IceRuby/Types.cpp @@ -1260,8 +1260,12 @@ IceRuby::SequenceInfo::marshal(VALUE p, Ice::OutputStream* os, ValueMap* valueMa } void -IceRuby::SequenceInfo::unmarshal(Ice::InputStream* is, const UnmarshalCallbackPtr& cb, VALUE target, - void* closure, bool optional) +IceRuby::SequenceInfo::unmarshal( + Ice::InputStream* is, + const UnmarshalCallbackPtr& cb, + VALUE target, + void* closure, + bool optional) { if(optional) { @@ -1977,6 +1981,11 @@ IceRuby::ClassInfo::ClassInfo(VALUE ident, bool loc) : { const_cast(isBase) = id == Ice::Object::ice_staticId(); } +} + +void +IceRuby::ClassInfo::init() +{ const_cast(typeObj) = createType(shared_from_this()); } @@ -2296,6 +2305,11 @@ IceRuby::ProxyInfo::ProxyInfo(VALUE ident) : { const_cast(id) = getString(ident); const_cast(isBase) = id == "::Ice::Object"; +} + +void +IceRuby::ProxyInfo::init() +{ const_cast(typeObj) = createType(shared_from_this()); } @@ -3012,6 +3026,7 @@ IceRuby_declareProxy(VALUE /*self*/, VALUE id) if(!info) { info = make_shared(id); + info->init(); addProxyInfo(proxyId, info); } @@ -3032,6 +3047,7 @@ IceRuby_declareClass(VALUE /*self*/, VALUE id) if(!info) { info = make_shared(id, false); + info->init(); addClassInfo(idstr, info); } @@ -3052,6 +3068,7 @@ IceRuby_declareLocalClass(VALUE /*self*/, VALUE id) if(!info) { info = make_shared(id, true); + info->init(); addClassInfo(idstr, info); } diff --git a/ruby/src/IceRuby/Types.h b/ruby/src/IceRuby/Types.h index 1ca2910002b..a525aa8046d 100644 --- a/ruby/src/IceRuby/Types.h +++ b/ruby/src/IceRuby/Types.h @@ -377,6 +377,7 @@ class ClassInfo final : public TypeInfo public: ClassInfo(VALUE, bool); + void init(); void define(VALUE, VALUE, VALUE, VALUE, VALUE, VALUE); @@ -421,6 +422,7 @@ class ProxyInfo final: public TypeInfo public: ProxyInfo(VALUE); + void init(); void define(VALUE, VALUE, VALUE);