comparison src/share/vm/runtime/unhandledOops.hpp @ 14318:1020b892787b

Merge
author hseigel
date Sun, 02 Feb 2014 15:31:40 -0500
parents 63a4eb8bcd23
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14317:b59507f713e0 14318:1020b892787b
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 recognizeable value. If the local variable is used again, it 37 // with a recognizable 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.