Mercurial > hg > graal-jvmci-8
diff src/share/vm/runtime/handles.hpp @ 10130:6f817ce50129
8010992: Remove calls to global ::operator new[] and new
Summary: disable use of global operator new and new[] which could cause unexpected exception and escape from NMT tracking.
Reviewed-by: coleenp, dholmes, zgu
Contributed-by: yumin.qi@oracle.com
author | minqi |
---|---|
date | Fri, 19 Apr 2013 11:08:52 -0700 |
parents | 716c64bda5ba |
children | 5a9fa2ba85f0 |
line wrap: on
line diff
--- a/src/share/vm/runtime/handles.hpp Thu Apr 18 14:03:37 2013 -0400 +++ b/src/share/vm/runtime/handles.hpp Fri Apr 19 11:08:52 2013 -0700 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2013, Oracle and/or its affiliates. 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 @@ -280,10 +280,10 @@ // If h has to be preserved, it can be converted to an oop or a local JNI handle // across the HandleMark boundary. -// The base class of HandleMark should have been StackObj but we also heap allocate -// a HandleMark when a thread is created. +// The only special case for HandleMark is when a Thread is created, the first +// HandleMark of the Thread is allocated in heap. -class HandleMark { +class HandleMark : public StackObj { private: Thread *_thread; // thread that owns this mark HandleArea *_area; // saved handle area @@ -293,7 +293,6 @@ // Link to previous active HandleMark in thread HandleMark* _previous_handle_mark; - void initialize(Thread* thread); // common code for constructors void set_previous_handle_mark(HandleMark* mark) { _previous_handle_mark = mark; } HandleMark* previous_handle_mark() const { return _previous_handle_mark; } @@ -303,6 +302,7 @@ HandleMark(Thread* thread) { initialize(thread); } ~HandleMark(); + void initialize(Thread* thread); // common code for constructors // Functions used by HandleMarkCleaner // called in the constructor of HandleMarkCleaner void push();