public void bind_attribute_boxed( ThreadContext tc, SixModelObject class_handle, String name, long hint, SixModelObject value) { CStructREPRData data = (CStructREPRData) class_handle.st.REPRData; AttrInfo info = data.fieldTypes.get(name); /* XXX: This'll break if we try to set a callback member. OTOH, it's * broken on Parrot too, so it's not a NativeCall regression as * such... */ ArgType type = info.argType; Object o = NativeCallOps.toJNAType(tc, value, type, null); if (info.inlined == 0) { if (type == ArgType.CSTRUCT || type == ArgType.CPPSTRUCT) { type = ArgType.CPOINTER; o = (Object) ((Structure) o).getPointer(); } else if (type == ArgType.CUNION) { type = ArgType.CPOINTER; o = (Object) ((Union) o).getPointer(); } } storage.writeField(name, o); memberCache.put(name, value); }