hotspot/src/share/vm/memory/serialize.cpp

Print this page
rev 611 : Merge

@@ -1,10 +1,10 @@
 #ifdef USE_PRAGMA_IDENT_SRC
 #pragma ident "@(#)serialize.cpp        1.9 07/05/05 17:05:55 JVM"
 #endif
 /*
- * Copyright 2003-2007 Sun Microsystems, Inc.  All Rights Reserved.
+ * Copyright 2003-2008 Sun Microsystems, Inc.  All Rights Reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License version 2 only, as
  * published by the Free Software Foundation.

@@ -42,21 +42,22 @@
 
 void CompactingPermGenGen::serialize_oops(SerializeOopClosure* soc) {
   int tag = 0;
   soc->do_tag(--tag);
 
+  assert(!UseCompressedOops, "UseCompressedOops doesn't work with shared archive");
   // Verify the sizes of various oops in the system.
   soc->do_tag(sizeof(oopDesc));
   soc->do_tag(sizeof(instanceOopDesc));
   soc->do_tag(sizeof(methodOopDesc));
   soc->do_tag(sizeof(constMethodOopDesc));
   soc->do_tag(sizeof(methodDataOopDesc));
-  soc->do_tag(sizeof(arrayOopDesc));
+  soc->do_tag(arrayOopDesc::base_offset_in_bytes(T_BYTE));
   soc->do_tag(sizeof(constantPoolOopDesc));
   soc->do_tag(sizeof(constantPoolCacheOopDesc));
-  soc->do_tag(sizeof(objArrayOopDesc));
-  soc->do_tag(sizeof(typeArrayOopDesc));
+  soc->do_tag(objArrayOopDesc::base_offset_in_bytes(T_BYTE));
+  soc->do_tag(typeArrayOopDesc::base_offset_in_bytes(T_BYTE));
   soc->do_tag(sizeof(symbolOopDesc));
   soc->do_tag(sizeof(klassOopDesc));
   soc->do_tag(sizeof(markOopDesc));
   soc->do_tag(sizeof(compiledICHolderOopDesc));