Tue, 01 Oct 2013 14:23:07 -0400
8025570: Naked oop in test/serviceability/ParserTest
Summary: Fix for two naked objArrayOop(s) oops causing test failure
Reviewed-by: coleenp, ctornqvi
Contributed-by: lois.foltan@oracle.com
src/share/vm/prims/wbtestmethods/parserTests.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/src/share/vm/prims/wbtestmethods/parserTests.cpp Tue Oct 01 08:10:42 2013 -0400 1.2 +++ b/src/share/vm/prims/wbtestmethods/parserTests.cpp Tue Oct 01 14:23:07 2013 -0400 1.3 @@ -1,5 +1,5 @@ 1.4 /* 1.5 - * Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. 1.6 + * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. 1.7 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 1.8 * 1.9 * This code is free software; you can redistribute it and/or modify it 1.10 @@ -117,11 +117,12 @@ 1.11 1.12 const char* c_cmdline = java_lang_String::as_utf8_string(JNIHandles::resolve(j_cmdline)); 1.13 objArrayOop argumentArray = objArrayOop(JNIHandles::resolve_non_null(arguments)); 1.14 + objArrayHandle argumentArray_ah(THREAD, argumentArray); 1.15 1.16 - int length = argumentArray->length(); 1.17 + int length = argumentArray_ah->length(); 1.18 1.19 for (int i = 0; i < length; i++) { 1.20 - oop argument_oop = argumentArray->obj_at(i); 1.21 + oop argument_oop = argumentArray_ah->obj_at(i); 1.22 fill_in_parser(&parser, argument_oop); 1.23 } 1.24 1.25 @@ -130,19 +131,20 @@ 1.26 1.27 Klass* k = SystemDictionary::Object_klass(); 1.28 objArrayOop returnvalue_array = oopFactory::new_objArray(k, parser.num_arguments() * 2, CHECK_NULL); 1.29 + objArrayHandle returnvalue_array_ah(THREAD, returnvalue_array); 1.30 1.31 GrowableArray<const char *>*parsedArgNames = parser.argument_name_array(); 1.32 1.33 for (int i = 0; i < parser.num_arguments(); i++) { 1.34 oop parsedName = java_lang_String::create_oop_from_str(parsedArgNames->at(i), CHECK_NULL); 1.35 - returnvalue_array->obj_at_put(i*2, parsedName); 1.36 + returnvalue_array_ah->obj_at_put(i*2, parsedName); 1.37 GenDCmdArgument* arg = parser.lookup_dcmd_option(parsedArgNames->at(i), strlen(parsedArgNames->at(i))); 1.38 char buf[VALUE_MAXLEN]; 1.39 arg->value_as_str(buf, sizeof(buf)); 1.40 oop parsedValue = java_lang_String::create_oop_from_str(buf, CHECK_NULL); 1.41 - returnvalue_array->obj_at_put(i*2+1, parsedValue); 1.42 + returnvalue_array_ah->obj_at_put(i*2+1, parsedValue); 1.43 } 1.44 1.45 - return (jobjectArray) JNIHandles::make_local(returnvalue_array); 1.46 + return (jobjectArray) JNIHandles::make_local(returnvalue_array_ah()); 1.47 1.48 WB_END