| 605 | } |
| 606 | |
| 607 | void NULLC::SwapObjects(NULLCRef l, NULLCRef r) |
| 608 | { |
| 609 | if(l.typeID != r.typeID) |
| 610 | { |
| 611 | nullcThrowError("ERROR: types don't match (%s ref, %s ref)", &linker->exSymbols[linker->exTypes[r.typeID].offsetToName], &linker->exSymbols[linker->exTypes[l.typeID].offsetToName]); |
| 612 | return; |
| 613 | } |
| 614 | unsigned size = linker->exTypes[l.typeID].size; |
| 615 | |
| 616 | char tmpStack[512]; |
| 617 | // $$ should use some extendable static storage for big objects |
| 618 | char *tmp = size < 512 ? tmpStack : (char*)NULLC::AllocObject(size); |
| 619 | memcpy(tmp, l.ptr, size); |
| 620 | memcpy(l.ptr, r.ptr, size); |
| 621 | memcpy(r.ptr, tmp, size); |
| 622 | } |
| 623 | |
| 624 | int NULLC::CompareObjects(NULLCRef l, NULLCRef r) |
| 625 | { |
nothing calls this directly
no test coverage detected