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