src/share/vm/oops/objArrayKlass.cpp

changeset 1100
c89f86385056
parent 833
443791f333a2
child 1280
df6caf649ff7
child 1311
1413494da700
     1.1 --- a/src/share/vm/oops/objArrayKlass.cpp	Thu Mar 19 09:13:24 2009 -0700
     1.2 +++ b/src/share/vm/oops/objArrayKlass.cpp	Fri Mar 20 23:19:36 2009 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright 1997-2008 Sun Microsystems, Inc.  All Rights Reserved.
     1.6 + * Copyright 1997-2009 Sun Microsystems, Inc.  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 @@ -502,12 +502,25 @@
    1.11    }
    1.12  }
    1.13  
    1.14 +static int max_objArray_print_length = 4;
    1.15  
    1.16  void objArrayKlass::oop_print_value_on(oop obj, outputStream* st) {
    1.17    assert(obj->is_objArray(), "must be objArray");
    1.18 +  st->print("a ");
    1.19    element_klass()->print_value_on(st);
    1.20 -  st->print("a [%d] ", objArrayOop(obj)->length());
    1.21 -  as_klassOop()->klass()->print_value_on(st);
    1.22 +  int len = objArrayOop(obj)->length();
    1.23 +  st->print("[%d] ", len);
    1.24 +  obj->print_address_on(st);
    1.25 +  if (PrintOopAddress || PrintMiscellaneous && (WizardMode || Verbose)) {
    1.26 +    st->print("{");
    1.27 +    for (int i = 0; i < len; i++) {
    1.28 +      if (i > max_objArray_print_length) {
    1.29 +        st->print("..."); break;
    1.30 +      }
    1.31 +      st->print(" "INTPTR_FORMAT, (intptr_t)(void*)objArrayOop(obj)->obj_at(i));
    1.32 +    }
    1.33 +    st->print(" }");
    1.34 +  }
    1.35  }
    1.36  
    1.37  #endif // PRODUCT

mercurial