8025570: Naked oop in test/serviceability/ParserTest

Tue, 01 Oct 2013 14:23:07 -0400

author
coleenp
date
Tue, 01 Oct 2013 14:23:07 -0400
changeset 5825
5b3b75d9eb2f
parent 5786
36b97be47bde
child 5826
f21415c32ca1

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

mercurial