MCPcopy Create free account
hub / github.com/GaijinEntertainment/daScript / copyNode

Method copyNode

src/simulate/simulate.cpp:33–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31 // #define WARN_SLOW_CAST(TYPE) DAS_ASSERTF(0, "internal perofrmance issue, casting eval to eval##TYPE" );
32
33 SimNode * SimNode::copyNode ( Context &, NodeAllocator * code ) {
34 auto prefix = ((NodePrefix *)this) - 1;
35#ifndef DAS_NO_ASSERTIONS
36 DAS_ASSERTF(prefix->magic==0xdeadc0de,"node was allocated on the heap without prefix");
37#endif
38 char * newNode;
39 if ( code->prefixWithHeader ) {
40 newNode = code->allocate(prefix->size + sizeof(NodePrefix));
41 memcpy ( newNode, ((char *)this) - sizeof(NodePrefix), sizeof(NodePrefix));
42 newNode += sizeof(NodePrefix);
43 } else {
44 newNode = code->allocate(prefix->size);
45 }
46 memcpy ( newNode, (char *)this, prefix->size );
47 return (SimNode *) newNode;
48 }
49
50 bool SimNode::evalBool ( Context & context ) {
51 WARN_SLOW_CAST(Bool);

Callers 1

visitMethod · 0.45

Calls 2

allocateMethod · 0.45
allocateNameMethod · 0.45

Tested by

no test coverage detected