comparison src/share/vm/runtime/unhandledOops.hpp @ 14909:4ca6dc0799b6

Backout jdk9 merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Tue, 01 Apr 2014 13:57:07 +0200
parents 63a4eb8bcd23
children 89152779163c
comparison
equal deleted inserted replaced
14908:8db6e76cb658 14909:4ca6dc0799b6
1 /* 1 /*
2 * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
32 // The design is that when an oop is declared on the stack as a local 32 // The design is that when an oop is declared on the stack as a local
33 // variable, the oop is actually a C++ struct with constructor and 33 // variable, the oop is actually a C++ struct with constructor and
34 // destructor. The constructor adds the oop address on a list 34 // destructor. The constructor adds the oop address on a list
35 // off each thread and the destructor removes the oop. At a potential 35 // off each thread and the destructor removes the oop. At a potential
36 // safepoint, the stack addresses of the local variable oops are trashed 36 // safepoint, the stack addresses of the local variable oops are trashed
37 // with a recognizable value. If the local variable is used again, it 37 // with a recognizeable value. If the local variable is used again, it
38 // will segfault, indicating an unsafe use of that oop. 38 // will segfault, indicating an unsafe use of that oop.
39 // eg: 39 // eg:
40 // oop o; //register &o on list 40 // oop o; //register &o on list
41 // funct(); // if potential safepoint - causes clear_naked_oops() 41 // funct(); // if potential safepoint - causes clear_naked_oops()
42 // // which trashes o above. 42 // // which trashes o above.