diff options
Diffstat (limited to 'src/lisp/ao_lisp_prim.c')
| -rw-r--r-- | src/lisp/ao_lisp_prim.c | 51 | 
1 files changed, 0 insertions, 51 deletions
| diff --git a/src/lisp/ao_lisp_prim.c b/src/lisp/ao_lisp_prim.c index 82386a83..3c081ee8 100644 --- a/src/lisp/ao_lisp_prim.c +++ b/src/lisp/ao_lisp_prim.c @@ -76,54 +76,3 @@ ao_lisp_poly_patom(ao_poly p)  		f->patom(p);  } -static const struct ao_lisp_type const *ao_lisp_types[AO_LISP_NUM_TYPE] = { -	[AO_LISP_CONS] = &ao_lisp_cons_type, -	[AO_LISP_INT] = NULL, -	[AO_LISP_STRING] = &ao_lisp_string_type, -	[AO_LISP_OTHER] = (void *) 0x1, -	[AO_LISP_ATOM] = &ao_lisp_atom_type, -	[AO_LISP_BUILTIN] = &ao_lisp_builtin_type, -	[AO_LISP_FRAME] = &ao_lisp_frame_type, -}; - -int -ao_lisp_poly_mark(ao_poly p) -{ -	const struct ao_lisp_type *lisp_type = ao_lisp_types[ao_lisp_poly_type(p)]; -	if (lisp_type) -		return ao_lisp_mark(lisp_type, ao_lisp_ref(p)); -	return 1; -} - -int -ao_lisp_poly_move(ao_poly *ref) -{ -	uint8_t				type; -	ao_poly				p = *ref; -	const struct ao_lisp_type	*lisp_type; -	int				ret; -	void				*addr; - -	if (!p) -		return 1; - -	type = p & AO_LISP_TYPE_MASK; -	if (type == AO_LISP_OTHER) -		type = ao_lisp_other_type(ao_lisp_move_map(ao_lisp_poly_other(p))); - -	if (type >= AO_LISP_NUM_TYPE) -		abort(); - -	lisp_type = ao_lisp_types[type]; -	if (!lisp_type) -		return 1; -	addr = ao_lisp_ref(p); -	ret = ao_lisp_move(lisp_type, &addr); -	if (addr != ao_lisp_ref(p)) { -		ao_poly np = ao_lisp_poly(addr, p & AO_LISP_TYPE_MASK); -		DBG("poly %d moved %04x -> %04x\n", -		    type, p, np); -		*ref = np; -	} -	return ret; -} | 
