hotspot/src/share/vm/oops/oop.pcgc.inline.hpp

Print this page
rev 611 : Merge

*** 1,10 **** #ifdef USE_PRAGMA_IDENT_HDR #pragma ident "@(#)oop.pcgc.inline.hpp 1.16 07/05/29 09:44:24 JVM" #endif /* ! * Copyright 2005-2007 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. --- 1,10 ---- #ifdef USE_PRAGMA_IDENT_HDR #pragma ident "@(#)oop.pcgc.inline.hpp 1.16 07/05/29 09:44:24 JVM" #endif /* ! * Copyright 2005-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.
*** 68,79 **** // Needs to be boundary aware for the 64 bit case // update_header(); // The klass has moved. Is the location of the klass // within the limits? ! if ((((HeapWord*)&_klass) >= begin_limit) && ! (((HeapWord*)&_klass) < end_limit)) { set_klass(updated_klass); } Klass* klass = updated_klass->klass_part(); if (!klass->oop_is_typeArray()) { --- 68,79 ---- // Needs to be boundary aware for the 64 bit case // update_header(); // The klass has moved. Is the location of the klass // within the limits? ! if ((((HeapWord*)&_metadata._klass) >= begin_limit) && ! (((HeapWord*)&_metadata._klass) < end_limit)) { set_klass(updated_klass); } Klass* klass = updated_klass->klass_part(); if (!klass->oop_is_typeArray()) {
*** 90,100 **** } // Used by parallel old GC. inline void oopDesc::follow_header(ParCompactionManager* cm) { ! PSParallelCompact::mark_and_push(cm, (oop*)&_klass); } inline oop oopDesc::forward_to_atomic(oop p) { assert(ParNewGeneration::is_legal_forward_ptr(p), "illegal forwarding pointer value."); --- 90,104 ---- } // Used by parallel old GC. inline void oopDesc::follow_header(ParCompactionManager* cm) { ! if (UseCompressedOops) { ! PSParallelCompact::mark_and_push(cm, compressed_klass_addr()); ! } else { ! PSParallelCompact::mark_and_push(cm, klass_addr()); ! } } inline oop oopDesc::forward_to_atomic(oop p) { assert(ParNewGeneration::is_legal_forward_ptr(p), "illegal forwarding pointer value.");
*** 115,125 **** } return forwardee(); } inline void oopDesc::update_header() { ! PSParallelCompact::adjust_pointer((oop*)&_klass); } inline void oopDesc::update_header(HeapWord* beg_addr, HeapWord* end_addr) { ! PSParallelCompact::adjust_pointer((oop*)&_klass, beg_addr, end_addr); } --- 119,138 ---- } return forwardee(); } inline void oopDesc::update_header() { ! if (UseCompressedOops) { ! PSParallelCompact::adjust_pointer(compressed_klass_addr()); ! } else { ! PSParallelCompact::adjust_pointer(klass_addr()); ! } } inline void oopDesc::update_header(HeapWord* beg_addr, HeapWord* end_addr) { ! if (UseCompressedOops) { ! PSParallelCompact::adjust_pointer(compressed_klass_addr(), ! beg_addr, end_addr); ! } else { ! PSParallelCompact::adjust_pointer(klass_addr(), beg_addr, end_addr); ! } }