| 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); |
no test coverage detected