349 // --- |
349 // --- |
350 // New |
350 // New |
351 // Have already been initialized. |
351 // Have already been initialized. |
352 _objectArrayKlassObj->append_to_sibling_list(); |
352 _objectArrayKlassObj->append_to_sibling_list(); |
353 |
353 |
354 // Compute is_jdk version flags. |
|
355 // Only 1.3 or later has the java.lang.Shutdown class. |
|
356 // Only 1.4 or later has the java.lang.CharSequence interface. |
|
357 // Only 1.5 or later has the java.lang.management.MemoryUsage class. |
|
358 if (JDK_Version::is_partially_initialized()) { |
|
359 uint8_t jdk_version; |
|
360 Klass* k = SystemDictionary::resolve_or_null( |
|
361 vmSymbols::java_lang_management_MemoryUsage(), THREAD); |
|
362 CLEAR_PENDING_EXCEPTION; // ignore exceptions |
|
363 if (k == NULL) { |
|
364 k = SystemDictionary::resolve_or_null( |
|
365 vmSymbols::java_lang_CharSequence(), THREAD); |
|
366 CLEAR_PENDING_EXCEPTION; // ignore exceptions |
|
367 if (k == NULL) { |
|
368 k = SystemDictionary::resolve_or_null( |
|
369 vmSymbols::java_lang_Shutdown(), THREAD); |
|
370 CLEAR_PENDING_EXCEPTION; // ignore exceptions |
|
371 if (k == NULL) { |
|
372 jdk_version = 2; |
|
373 } else { |
|
374 jdk_version = 3; |
|
375 } |
|
376 } else { |
|
377 jdk_version = 4; |
|
378 } |
|
379 } else { |
|
380 jdk_version = 5; |
|
381 } |
|
382 JDK_Version::fully_initialize(jdk_version); |
|
383 } |
|
384 |
|
385 #ifdef ASSERT |
354 #ifdef ASSERT |
386 if (FullGCALot) { |
355 if (FullGCALot) { |
387 // Allocate an array of dummy objects. |
356 // Allocate an array of dummy objects. |
388 // We'd like these to be at the bottom of the old generation, |
357 // We'd like these to be at the bottom of the old generation, |
389 // so that when we free one and then collect, |
358 // so that when we free one and then collect, |