src/share/vm/runtime/handles.hpp

changeset 4967
5a9fa2ba85f0
parent 4962
6f817ce50129
child 5103
f9be75d21404
     1.1 --- a/src/share/vm/runtime/handles.hpp	Fri Apr 19 11:08:52 2013 -0700
     1.2 +++ b/src/share/vm/runtime/handles.hpp	Sun Apr 21 20:41:04 2013 -0700
     1.3 @@ -1,5 +1,5 @@
     1.4  /*
     1.5 - * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     1.6 + * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     1.7   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     1.8   *
     1.9   * This code is free software; you can redistribute it and/or modify it
    1.10 @@ -280,10 +280,10 @@
    1.11  // If h has to be preserved, it can be converted to an oop or a local JNI handle
    1.12  // across the HandleMark boundary.
    1.13  
    1.14 -// The only special case for HandleMark is when a Thread is created, the first
    1.15 -// HandleMark of the Thread is allocated in heap.
    1.16 +// The base class of HandleMark should have been StackObj but we also heap allocate
    1.17 +// a HandleMark when a thread is created.
    1.18  
    1.19 -class HandleMark : public StackObj {
    1.20 +class HandleMark {
    1.21   private:
    1.22    Thread *_thread;              // thread that owns this mark
    1.23    HandleArea *_area;            // saved handle area
    1.24 @@ -293,6 +293,7 @@
    1.25    // Link to previous active HandleMark in thread
    1.26    HandleMark* _previous_handle_mark;
    1.27  
    1.28 +  void initialize(Thread* thread);                // common code for constructors
    1.29    void set_previous_handle_mark(HandleMark* mark) { _previous_handle_mark = mark; }
    1.30    HandleMark* previous_handle_mark() const        { return _previous_handle_mark; }
    1.31  
    1.32 @@ -302,7 +303,6 @@
    1.33    HandleMark(Thread* thread)                      { initialize(thread); }
    1.34    ~HandleMark();
    1.35  
    1.36 -  void initialize(Thread* thread);                // common code for constructors
    1.37    // Functions used by HandleMarkCleaner
    1.38    // called in the constructor of HandleMarkCleaner
    1.39    void push();

mercurial