21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "memory/allocation.inline.hpp"
27 #include "oops/oop.inline.hpp"
28 #include "runtime/handles.inline.hpp"
29 #ifdef TARGET_OS_FAMILY_linux
30 # include "os_linux.inline.hpp"
31 # include "thread_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 # include "thread_solaris.inline.hpp"
36 #endif
37 #ifdef TARGET_OS_FAMILY_windows
38 # include "os_windows.inline.hpp"
39 # include "thread_windows.inline.hpp"
40 #endif
41
42 #ifdef ASSERT
43 oop* HandleArea::allocate_handle(oop obj) {
44 assert(_handle_mark_nesting > 1, "memory leak: allocating handle outside HandleMark");
45 assert(_no_handle_mark_nesting == 0, "allocating handle inside NoHandleMark");
46 assert(SharedSkipVerify || obj->is_oop(), "sanity check");
47 return real_allocate_handle(obj);
48 }
49
50 Handle::Handle(Thread* thread, oop obj) {
51 assert(thread == Thread::current(), "sanity check");
52 if (obj == NULL) {
53 _handle = NULL;
54 } else {
55 _handle = thread->handle_area()->allocate_handle(obj);
56 }
57 }
58
59 #endif
60
|
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "memory/allocation.inline.hpp"
27 #include "oops/oop.inline.hpp"
28 #include "runtime/handles.inline.hpp"
29 #ifdef TARGET_OS_FAMILY_linux
30 # include "os_linux.inline.hpp"
31 # include "thread_linux.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_solaris
34 # include "os_solaris.inline.hpp"
35 # include "thread_solaris.inline.hpp"
36 #endif
37 #ifdef TARGET_OS_FAMILY_windows
38 # include "os_windows.inline.hpp"
39 # include "thread_windows.inline.hpp"
40 #endif
41 #ifdef TARGET_OS_FAMILY_bsd
42 # include "os_bsd.inline.hpp"
43 # include "thread_bsd.inline.hpp"
44 #endif
45
46 #ifdef ASSERT
47 oop* HandleArea::allocate_handle(oop obj) {
48 assert(_handle_mark_nesting > 1, "memory leak: allocating handle outside HandleMark");
49 assert(_no_handle_mark_nesting == 0, "allocating handle inside NoHandleMark");
50 assert(SharedSkipVerify || obj->is_oop(), "sanity check");
51 return real_allocate_handle(obj);
52 }
53
54 Handle::Handle(Thread* thread, oop obj) {
55 assert(thread == Thread::current(), "sanity check");
56 if (obj == NULL) {
57 _handle = NULL;
58 } else {
59 _handle = thread->handle_area()->allocate_handle(obj);
60 }
61 }
62
63 #endif
64
|