Defines | |
#define | realloc_ref(cell_ptr, cell_val) |
#define | realloc_ref_pre_image(cell_ptr, cell_val) |
#define | reallocate_heap_or_ls_pointer(cell_ptr) |
#define | FROM_NOWHERE 0 |
#define | FROM_LS 1 |
#define | FROM_CP 2 |
#define | FROM_TR 3 |
#define | FROM_AREG 4 |
#define | FROM_HEAP 5 |
#define | FROM_COMPL 6 |
#define | TO_NOWHERE 0 |
#define | TO_LS 1 |
#define | TO_CP 2 |
#define | TO_TR 3 |
#define | TO_AREG 4 |
#define | TO_HEAP 5 |
#define | TO_COMPL 6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Value: |
|
Value: { if (heap_bot <= cell_val) \ /* <= because of heaptop in CP 13-10-1998 */ \ { if (cell_val <= heap_top) \ *cell_ptr = (CPtr) ((Cell)(cell_val + heap_offset) \ | PRE_IMAGE_MARK) ; \ else if (cell_val <= ls_bot) \ *cell_ptr = (CPtr) ((Cell) (cell_val + local_offset) \ | PRE_IMAGE_MARK) ; \ } } |
|
Value: cell_val = (Cell)*cell_ptr ; \ switch (cell_tag(cell_val)) { \ case XSB_REF: \ case XSB_REF1 : \ realloc_ref(cell_ptr,(CPtr)cell_val); \ break ; /* end case XSB_FREE or XSB_REF */ \ case XSB_STRUCT : \ if (heap_bot<=(clref_val(cell_val)) && (clref_val(cell_val))<heap_top)\ *cell_ptr = (CPtr)makecs((Cell)(clref_val(cell_val)+heap_offset)) ; \ break ; \ case XSB_LIST : \ if (heap_bot<=(clref_val(cell_val)) && (clref_val(cell_val))<heap_top)\ *cell_ptr = (CPtr)makelist((Cell)(clref_val(cell_val)+heap_offset));\ break ; \ case XSB_ATTV: \ if (heap_bot<=(clref_val(cell_val)) && (clref_val(cell_val))<heap_top)\ *cell_ptr = (CPtr)makeattv((Cell)(clref_val(cell_val)+heap_offset));\ break ; \ default : /* no need to reallocate */ \ break ; \ } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|