开发者

Design pattern for JNI pointer dependencies

I'm creating Java wrappers for some C code using JNI. There are dependencies on the C side that look like this:

a = make_a();
b = make_b(a);

On the Java side I use class A and class B to hold references to the output of make_a() and make_b, along with various operations. Further, class B depends class A sticking around.

How can I create a dependency between the two classes from within JNI?

Update

I need class A to not be GC'd while class B is开发者_开发问答 in use, and I need to create this dependency from within JNI.


I think what you want is NewGlobalRef/DeleteGlobalRef. This will let your JNI hang on to an object reference. Be careful-- this is an easy way to create memory leaks as its up to you to delete the reference!

Here are some links to get you going:

  • What is 'JNI Global reference'
  • Local and Global References
  • JNI Functions
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜