void fluke_ref_move(fluke_ref_t *old_addr, fluke_ref_t *new_addr);
Moves the specified active reference object from one location in the caller's address space to another. The memory addressed by new_addr must not already contain any active Fluke objects. On return, the reference object will reside at new_addr and the memory left behind at old_addr will have undefined contents.
- old_addr
- The address of the reference object to move.
- new_addr
- The location in memory to which the reference is to be moved.
If any of the following errors is detected by the Fluke implementation, it causes the current thread to take a synchronous exception with one of the following codes. All of these have an implicit FLUKE_INSANITY_ prefix.
- NO_OBJECT
- old_addr does not point to an active object.
- NOT_REF
- The object pointed to by old_addr is not a reference object.
- INVALID_OBJECT
- The state of the reference object has become invalid.
- OBJECT_EXISTS
- An object already exists at the location pointed to by new_addr.
- NOT_ALIGNED
- new_addr is not properly aligned for a reference object.