3 HANDLE* untag_handle(CELL type, CELL tagged)
6 type_check(HANDLE_TYPE,tagged);
7 h = (HANDLE*)UNTAG(tagged);
8 /* after image load & save, handles are no longer valid */
10 general_error(ERROR_HANDLE_EXPIRED,tagged);
12 general_error(ERROR_HANDLE_INCOMPAT,tagged);
16 CELL handle(CELL type, CELL object)
18 HANDLE* handle = allot_object(HANDLE_TYPE,sizeof(HANDLE));
20 handle->object = object;
22 handle->buf_mode = B_NONE;
25 return tag_object(handle);
28 void primitive_handlep(void)
30 check_non_empty(env.dt);
31 env.dt = tag_boolean(typep(HANDLE_TYPE,env.dt));
34 void fixup_handle(HANDLE* handle)
37 fixup(&handle->buffer);
40 void collect_handle(HANDLE* handle)
42 copy_object(&handle->buffer);