diff options
author | Robert Varga <robert.varga@pantheon.tech> | 2017-05-25 16:18:28 +0200 |
---|---|---|
committer | Neale Ranns <nranns@cisco.com> | 2017-05-26 08:20:17 +0000 |
commit | 966de205fc272737895e12bf7f57856c2cbf0582 (patch) | |
tree | cb385e71c61b8d65775ff1b24552f88bf01aa0c4 /src | |
parent | 71275e3d1ed4b7a536b7ec8d13995743beccde6b (diff) |
Fix JNI templates
The JNI templates around array and object handling are wrong in the
sense that they fail to delete local references for objects which
have been assigned to fields/arrays. Fix this by invoking
DeleteLocalRef.
Change-Id: I1c31d81f4235d821ccd51c96be7b176f64284928
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
Signed-off-by: Robert Varga <nite@hq.sk>
Diffstat (limited to 'src')
-rw-r--r-- | src/vpp-api/java/jvpp/gen/jvppgen/types_gen.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vpp-api/java/jvpp/gen/jvppgen/types_gen.py b/src/vpp-api/java/jvpp/gen/jvppgen/types_gen.py index 93883ba1..22018e67 100644 --- a/src/vpp-api/java/jvpp/gen/jvppgen/types_gen.py +++ b/src/vpp-api/java/jvpp/gen/jvppgen/types_gen.py @@ -83,6 +83,7 @@ object_dto_field_setter_template = Template(""" jobject ${field_reference_name} = (*env)->NewObject(env, ${field_reference_name}Class, ${field_reference_name}Constructor); ${type_initialization} (*env)->SetObjectField(env, dto, ${field_reference_name}FieldId, ${field_reference_name}); + (*env)->DeleteLocalRef(env, ${field_reference_name}); } """) @@ -96,8 +97,10 @@ object_array_dto_field_setter_template = Template(""" jobject ${field_reference_name}ArrayElement = (*env)->NewObject(env, ${field_reference_name}Class, ${field_reference_name}Constructor); ${type_initialization} (*env)->SetObjectArrayElement(env, ${field_reference_name}, _i, ${field_reference_name}ArrayElement); + (*env)->DeleteLocalRef(env, ${field_reference_name}ArrayElement); } (*env)->SetObjectField(env, dto, ${field_reference_name}FieldId, ${field_reference_name}); + (*env)->DeleteLocalRef(env, ${field_reference_name}); } """) |