public static IshtarObject *ToIshtarObject(string str, CallFrame frame = null, IshtarObject **node = null) { var arg = IshtarGC.AllocObject(TYPE_STRING.AsRuntimeClass(), node); var clazz = IshtarUnsafe.AsRef <RuntimeIshtarClass>(arg->clazz); arg->vtable[clazz.Field["!!value"].vtable_offset] = StringStorage.Intern(str); return(arg); }
public static string ToDotnetString(IshtarObject *obj, CallFrame frame) { FFI.StaticTypeOf(frame, &obj, TYPE_STRING); var clazz = obj->decodeClass(); var p = (StrRef *)obj->vtable[clazz.Field["!!value"].vtable_offset]; return(StringStorage.GetString(p, frame)); }