Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
None
Description
In this PR #489 I've noticed that JNI UTF string usage is error-prone as releasing can be easily missed by the developer or simply get skipped because of an exception.
To avoid this my idea was to create a wrapper object that can be used as an std::string and handles get/release calls.
As phrocker pointed out, this object has to be kept in a small block to avoid storing ref on both the string itself and the JNI env.
This can partly be achieved by blocking copy/move construction/assigment and new, but still leaves some possibility to allocate this object on heap.
In my opinion the restrictions above with some comments in the class would help and make it safer, although I'm not sure it worth the effort.
Attachments
Issue Links
- links to