Do not copy data twice in swInterfaceDump()
Instead of performing getting the elements, memcpy()ing them and the releasing, use GetByteArrayRegion(). Change-Id: I20ef181df214ac4fdcaff5a64b89ef4f879078f8 Signed-off-by: Robert Varga <nite@hq.sk>
This commit is contained in:
@ -624,8 +624,7 @@ JNIEXPORT jobjectArray JNICALL Java_org_openvpp_vppjapi_vppConn_swInterfaceDump
|
|||||||
|
|
||||||
vppjni_lock (jm, 7);
|
vppjni_lock (jm, 7);
|
||||||
my_context_id = vppjni_get_context_id (jm);
|
my_context_id = vppjni_get_context_id (jm);
|
||||||
jbyte * name_filterP = (*env)->GetByteArrayElements (env, name_filter, NULL);
|
jsize cnt = (*env)->GetArrayLength (env, name_filter);
|
||||||
int cnt = (*env)->GetArrayLength (env, name_filter);
|
|
||||||
|
|
||||||
M(SW_INTERFACE_DUMP, sw_interface_dump);
|
M(SW_INTERFACE_DUMP, sw_interface_dump);
|
||||||
mp->context = clib_host_to_net_u32 (my_context_id);
|
mp->context = clib_host_to_net_u32 (my_context_id);
|
||||||
@ -634,8 +633,7 @@ JNIEXPORT jobjectArray JNICALL Java_org_openvpp_vppjapi_vppConn_swInterfaceDump
|
|||||||
if (cnt > sizeof(mp->name_filter))
|
if (cnt > sizeof(mp->name_filter))
|
||||||
cnt = sizeof(mp->name_filter);
|
cnt = sizeof(mp->name_filter);
|
||||||
|
|
||||||
memcpy ((char *) mp->name_filter, name_filterP, cnt);
|
(*env)->GetByteArrayRegion(env, name_filter, 0, cnt, (jbyte *)mp->name_filter);
|
||||||
(*env)->ReleaseByteArrayElements (env, name_filter, name_filterP, 0);
|
|
||||||
|
|
||||||
DEBUG_LOG ("interface filter (%d, %s, len: %d)", mp->name_filter_valid, (char *)mp->name_filter, cnt);
|
DEBUG_LOG ("interface filter (%d, %s, len: %d)", mp->name_filter_valid, (char *)mp->name_filter, cnt);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user