libbluray | branch: master | hpi1 <[email protected]> | Sat Apr 12 19:15:57 2014 +0300| [887e2b25b694b557a0658e670aa3c57df5b7c32c] | committer: hpi1
BDJO parser: empty parameter list should be empty list, not null > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=887e2b25b694b557a0658e670aa3c57df5b7c32c --- src/libbluray/bdj/bdjo_parser.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/libbluray/bdj/bdjo_parser.c b/src/libbluray/bdj/bdjo_parser.c index b61cd9c..2f0b363 100644 --- a/src/libbluray/bdj/bdjo_parser.c +++ b/src/libbluray/bdj/bdjo_parser.c @@ -220,10 +220,10 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) uint16_t name_data_length = bb_read(buf, 16); jobjectArray app_names = NULL; + int app_name_count = 0; if (name_data_length > 0) { // first scan for the number of app names - int app_name_count = 0; uint16_t name_bytes_read = 0; while (name_bytes_read < name_data_length) { bb_seek(buf, 24, SEEK_CUR); @@ -237,6 +237,7 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) // seek back to beginning of names bb_seek(buf, -name_data_length*8, SEEK_CUR); + } app_names = bdj_make_array(env, "[Ljava/lang/String;", app_name_count); JNICHK(app_names); @@ -262,7 +263,7 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) (*env)->SetObjectArrayElement(env, app_names, j, app_name); JNICHK(1); } - } + // skip padding to word boundary if ((name_data_length & 0x1) != 0) { @@ -309,9 +310,9 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) uint8_t param_data_length = bb_read(buf, 8); jobjectArray params = NULL; + int param_count = 0; if (param_data_length > 0) { // first scan for the number of params - int param_count = 0; uint16_t param_bytes_read = 0; while (param_bytes_read < param_data_length) { uint8_t param_length = bb_read(buf, 8); @@ -323,6 +324,7 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) // seek back to beginning of params bb_seek(buf, -param_data_length*8, SEEK_CUR); + } params = bdj_make_array(env, "java/lang/String", param_count); @@ -334,7 +336,7 @@ static jobjectArray _parse_app_management_table(JNIEnv* env, BITBUFFER* buf) (*env)->SetObjectArrayElement(env, params, j, param); JNICHK(1); } - } + // skip padding to word boundary if ((param_data_length & 0x1) == 0) { _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
