c++ - If JNI DeleteGlobalRef() is called, does the corresponding java object get garbage collected? -


what mean is, if create global reference jobject in c++, , pass off java code, , delete call deleteglobalref(), underlying java object potentially garbage collected right away, future java code refering object might come nullpointerexception? specifically, if have c++ code simplified example:

static jobject myobjglobalref; static jnienv* env = /* call create jvm , jni env */; jobject returnmyobj() {     /* <<code defines class, constructorid, , param1 goes here>> */      jobject localobj = env->newobject(class, constructorid, param1);     myobjglobalref = env->newglobalref(localobj); }  void deletemyobj() {     env->deleteglobalref(myobjglobalref); }  myobjglobalref = returnmyobj();  jobject otherexistingglobalref = /* assume global ref parent obj somewhere else */ /*  ... other code here ... */ // invoke method on other pre-existing global reference uses // myobjglobalref,  lets assume method stores object referenced // myobjglobalref parent object referenced otherexistingglobalref: env->callvoidmethod(env, otherexistingglobalref, addasubobjectmethodid, myobjglobalref);  deletemyobj();  // pointed myobjglobalref still exist here, assuming // otherexistingglobalref references it? 

how work in jni? "globalreference" on object reference count object, if free globalreference jobject, not garbage collect underlying java object until references (such "parent" object otherexistingglobalref referencing it) gone?

if can answer , provide link official java/sun/oracle documentation backing answer, earn bonus kudos :-).

deleteglobalref() frees reference, not object.

if last reachable reference, referenced object available garbage collection.

is "globalreference" on object reference count object

no. it's reference remains valid until free explicitly. java's garbage collection not rely on reference counts @ all.

see oracle's documentation on global references.


Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -