Mercurial > hg > graal-jvmci-8
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. |