--- a/hotspot/src/share/vm/opto/node.hpp Sat Sep 10 17:29:02 2011 -0700
+++ b/hotspot/src/share/vm/opto/node.hpp Sun Sep 11 14:48:24 2011 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2011, 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
@@ -184,6 +184,8 @@
// whenever I have phase-specific information.
class Node {
+ friend class VMStructs;
+
// Lots of restrictions on cloning Nodes
Node(const Node&); // not defined; linker error to use these
Node &operator=(const Node &rhs);
@@ -1286,6 +1288,7 @@
// Note that the constructor just zeros things, and since I use Arena
// allocation I do not need a destructor to reclaim storage.
class Node_Array : public ResourceObj {
+ friend class VMStructs;
protected:
Arena *_a; // Arena to allocate in
uint _max;
@@ -1316,6 +1319,7 @@
};
class Node_List : public Node_Array {
+ friend class VMStructs;
uint _cnt;
public:
Node_List() : Node_Array(Thread::current()->resource_area()), _cnt(0) {}
@@ -1339,6 +1343,7 @@
//------------------------------Unique_Node_List-------------------------------
class Unique_Node_List : public Node_List {
+ friend class VMStructs;
VectorSet _in_worklist;
uint _clock_index; // Index in list where to pop from next
public:
@@ -1389,6 +1394,7 @@
//------------------------------Node_Stack-------------------------------------
class Node_Stack {
+ friend class VMStructs;
protected:
struct INode {
Node *node; // Processed node
@@ -1461,6 +1467,7 @@
// Debugging or profiling annotations loosely and sparsely associated
// with some nodes. See Compile::node_notes_at for the accessor.
class Node_Notes VALUE_OBJ_CLASS_SPEC {
+ friend class VMStructs;
JVMState* _jvms;
public: