bool JavaNPObjectGetProperty(NPObject* obj, NPIdentifier identifier, NPVariant* result) { VOID_TO_NPVARIANT(*result); JavaInstance* instance = ExtractJavaInstance(obj); if (!instance) return false; NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); if (!name) return false; instance->begin(); JavaField* field = instance->getClass()->fieldNamed(name); free(name); // TODO: use NPN_MemFree if (!field) { instance->end(); return false; } #if PLATFORM(ANDROID) // JSC does not seem to support returning object properties so we emulate that // behaviour here. JavaValue value; #else JavaValue value = instance->getField(field); #endif // PLATFORM(ANDROID) instance->end(); convertJavaValueToNPVariant(value, result); return true; }
bool JavaNPObjectGetProperty(NPObject* obj, NPIdentifier identifier, NPVariant* result) { VOID_TO_NPVARIANT(*result); JavaInstance* instance = ExtractJavaInstance(obj); if (!instance) return false; NPUTF8* name = _NPN_UTF8FromIdentifier(identifier); if (!name) return false; instance->begin(); JavaField* field = instance->getClass()->fieldNamed(name); free(name); // TODO: use NPN_MemFree if (!field) return false; JavaValue value = instance->getField(field); instance->end(); convertJavaValueToNPVariant(value, result); return true; }