add fake struct to help with type checker
This commit is contained in:
parent
3d7e39cfd2
commit
5b8775dab6
|
@ -174,7 +174,7 @@ void uns_hashtable_add(struct uns_gc *gc, struct uns_ctr *htbl,
|
||||||
if (uns_hashtable_used(gc, htbl) >= uns_hashtable_len(gc, htbl)*7/10)
|
if (uns_hashtable_used(gc, htbl) >= uns_hashtable_len(gc, htbl)*7/10)
|
||||||
uns_hashtable_resize(gc, htbl, uns_hashtable_len(gc, htbl)*2);
|
uns_hashtable_resize(gc, htbl, uns_hashtable_len(gc, htbl)*2);
|
||||||
|
|
||||||
if (search_for_container(gc, htbl, &container, string->p, string_len, &hash)) {
|
if (search_for_container(gc, htbl, &container, (unsigned char *)string->p, string_len, &hash)) {
|
||||||
old_value->p = gc->record_get_ptr(container.p, VALUE);
|
old_value->p = gc->record_get_ptr(container.p, VALUE);
|
||||||
gc->record_set_ptr(container.p, VALUE, value->p);
|
gc->record_set_ptr(container.p, VALUE, value->p);
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -38,6 +38,14 @@
|
||||||
typedef UNS_WORD uns_word;
|
typedef UNS_WORD uns_word;
|
||||||
typedef UNS_SIGNED_WORD uns_sword;
|
typedef UNS_SIGNED_WORD uns_sword;
|
||||||
|
|
||||||
|
/* This struct doesn't exist and is used to make a unique pointer for
|
||||||
|
* type checking.
|
||||||
|
*
|
||||||
|
* This pointer must be what was returned from an allocation (i.e. it points
|
||||||
|
* to the first byte but before any hidden header data).
|
||||||
|
*/
|
||||||
|
typedef struct uns_ptr *Uns_ptr;
|
||||||
|
|
||||||
/** Doubly linked list used to
|
/** Doubly linked list used to
|
||||||
*
|
*
|
||||||
* 1) Store roots of the GC,
|
* 1) Store roots of the GC,
|
||||||
|
@ -89,8 +97,8 @@ struct uns_gc {
|
||||||
*/
|
*/
|
||||||
size_t (*len)(void *);
|
size_t (*len)(void *);
|
||||||
|
|
||||||
void (*record_set_ptr)(void *, size_t, void *);
|
void (*record_set_ptr)(Uns_ptr, size_t, void *);
|
||||||
void *(*record_get_ptr)(void *, size_t);
|
void *(*record_get_ptr)(Uns_ptr, size_t);
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Add a root to the GC. The root must point to valid memory, or NULL. */
|
/** Add a root to the GC. The root must point to valid memory, or NULL. */
|
||||||
|
|
Loading…
Reference in New Issue