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