ext/rubypython_bridge/rtop.c in rubypython-0.2.1 vs ext/rubypython_bridge/rtop.c in rubypython-0.2.2
- old
+ new
@@ -1,7 +1,9 @@
#include "rtop.h"
+extern VALUE cRubyPyObject;
+
PyObject* rtop_string(VALUE rString)
{
PyObject* pString;
char *cString;
char *cStringCopy;
@@ -91,10 +93,11 @@
PyObject* pString;
pString=PyString_FromString(rb_id2name(rSymbol));
return pString;
}
+
PyObject* rtop_obj(VALUE rObj,int is_key)
{
PyObject *pObj;
VALUE rInspect;
switch(TYPE(rObj))
@@ -142,10 +145,17 @@
case T_SYMBOL:
pObj=rtop_symbol(rObj);
break;
default:
- rInspect=rb_inspect(rObj);
- pObj=rtop_string(rInspect);
+ if(rb_obj_is_kind_of(rObj,cRubyPyObject)==Qtrue)
+ {
+ pObj=rp_obj_pobject(rObj);
+ }
+ else
+ {
+ rInspect=rb_inspect(rObj);
+ pObj=rtop_string(rInspect);
+ }
}
return pObj;
}
\ No newline at end of file