BTW, operator new doesn't return NULL if allocation is unsuccessful, it
throws bad_alloc instead, so "if (!obj)" after new is non-standard and
will not work on any recent compiler.
Thanks,
Vadim
On 27.09.2013 13:10, Artem Ananiev wrote:
Hi,
here is a short question. In some JDK implementations (e.g. IBM's),
JNI may throw C++ exceptions. For example, env->NewByteArray() throws
bad_alloc. Right now in JDK/JavaFX native code we don't protect
against that. Should we? An anti-pattern that some source scanning
tools warn about is
<type> obj = new <type>();
if (!obj) {
// handle that
}
env->SomeJNICall();
If SomeJNICall() throws an exception, "obj" will never be deleted.
Protection against bad_alloc doesn't make much sense, since we're out
of memory anyway and will unlikely be able to recover, but what about
other exceptions?
Thanks,
Artem