CXXR (C++ R)
|
Untemplated base class for GCStackRoot. More...
#include <GCStackRoot.hpp>
Static Public Member Functions | |
static void | visitRoots (GCNode::const_visitor *v) |
Conduct a const visitor to protected objects. |
Protected Member Functions | |
GCStackRootBase (const GCNode *node) | |
Primary constructor. | |
GCStackRootBase (const GCStackRootBase &source) | |
Copy constructor. | |
GCStackRootBase & | operator= (const GCStackRootBase &source) |
void | retarget (const GCNode *node) |
Change the node protected by this GCStackRootBase. | |
const GCNode * | ptr () const |
Access the encapsulated pointer. |
Friends | |
class | GCNode |
Untemplated base class for GCStackRoot.
The preferred method for C++ code to protect a GCNode from the garbage collector is to use the templated class GCStackRoot, of which this is the untemplated base class, or class GCRoot.
However, GCStackRoot is not usable by C code, which should continue to use PROTECT(), UNPROTECT() etc. as in CR, which are implemented in CXXR via class ProtectStack.
|
inlineprotected |
Primary constructor.
node | Pointer to be encapsulated by the GCStackRootBase. |
|
inlineprotected |
Copy constructor.
source | Pattern for the copy. |
|
inlineprotected |
Access the encapsulated pointer.
|
inlineprotected |
Change the node protected by this GCStackRootBase.
node | Pointer to the node now to be protected, or a null pointer. |
|
static |
Conduct a const visitor to protected objects.
Conduct a GCNode::const_visitor object to each node pointed to by a GCStackRootBase.
v | Pointer to the const_visitor object. |