/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#include "precompiled.hpp"
#include "gc_implementation/shared/markSweep.inline.hpp"
#include "gc_interface/collectedHeap.inline.hpp"
#include "memory/gcLocker.hpp"
#include "memory/resourceArea.hpp"
#include "memory/universe.inline.hpp"
#include "oops/klassOop.hpp"
#include "oops/methodDataKlass.hpp"
#include "oops/methodDataOop.hpp"
#include "oops/oop.inline.hpp"
#include "oops/oop.inline2.hpp"
#include "runtime/handles.inline.hpp"
#ifndef SERIALGC
#include "oops/oop.pcgc.inline.hpp"
#endif
o.vtbl_value(), CHECK_NULL);
// Make sure size calculation is right
"wrong size for object");
return k();
}
}
}
return mdo;
}
obj->follow_header();
data->follow_contents();
}
}
#ifndef SERIALGC
}
}
#endif // SERIALGC
// Get size before changing pointers
// Don't call size() or oop_size() since that is a virtual call.
}
return size;
}
// Get size before changing pointers
// Don't call size() or oop_size() since that is a virtual call.
}
}
return size;
}
// Get size before changing pointers
// Don't call size() or oop_size() since that is a virtual call.
obj->adjust_header();
data->adjust_pointers();
}
return size;
}
#ifndef SERIALGC
// This should never point into the young gen.
}
data->update_pointers();
}
return m->object_size();
}
#endif // SERIALGC
#ifndef PRODUCT
// Printing
m->print_data_on(st);
}
#endif //PRODUCT
}
return "{method data}";
}
// Verification
m->verify_data_on(st);
}