fixes
This commit is contained in:
parent
5476ba3ad9
commit
4b272786a5
14
simap.h
14
simap.h
@ -63,7 +63,7 @@ static inline simap_instance simap_create() {
|
|||||||
ret.prev_usage_end = (uint32_t) -1;
|
ret.prev_usage_end = (uint32_t) -1;
|
||||||
ret.usage_end = 0;
|
ret.usage_end = 0;
|
||||||
ret.next_previndex = 0;
|
ret.next_previndex = 0;
|
||||||
ret.base = ((uint64_t*) alloc(&(ret.a), sizeof(uint64_t), sizeof(uint64_t), 1)) /* addr divisible by 8 */
|
ret.base = ((uint64_t*) aralloc(&(ret.a), sizeof(uint64_t), sizeof(uint64_t), 1)) /* addr divisible by 8 */
|
||||||
+ 1; /* First really addressible thing */
|
+ 1; /* First really addressible thing */
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@ -105,7 +105,7 @@ static inline simap_ptr64 *simap_search_internal(simap_instance *map, const char
|
|||||||
|
|
||||||
/* Check back & forth (jump validation) */
|
/* Check back & forth (jump validation) */
|
||||||
uint32_t previ = *((uint32_t *)(tipp - 1));
|
uint32_t previ = *((uint32_t *)(tipp - 1));
|
||||||
if(previ == (uin32_t) -1) {
|
if(previ == (uint32_t) -1) {
|
||||||
/* Expect it be good if it was first insert ever? Statistically rare to be not like it */
|
/* Expect it be good if it was first insert ever? Statistically rare to be not like it */
|
||||||
return ptr;
|
return ptr;
|
||||||
}
|
}
|
||||||
@ -174,7 +174,7 @@ static inline void *simap_force_add_internal(simap_instance *map, const char *ke
|
|||||||
uint32_t previ = map->prev_usage_end;
|
uint32_t previ = map->prev_usage_end;
|
||||||
|
|
||||||
/* Save data ptr */
|
/* Save data ptr */
|
||||||
simap_ptr64 *data = (simap_ptr_64 *)((uint8_t *)(map->base) + usi);
|
simap_ptr64 *data = (simap_ptr64 *)((uint8_t *)(map->base) + usi);
|
||||||
data->ptr = ptr;
|
data->ptr = ptr;
|
||||||
|
|
||||||
/* Save link to previous */
|
/* Save link to previous */
|
||||||
@ -186,21 +186,21 @@ static inline void *simap_force_add_internal(simap_instance *map, const char *ke
|
|||||||
*(usprev + 1) = (uint32_t) -1;
|
*(usprev + 1) = (uint32_t) -1;
|
||||||
|
|
||||||
/* First 8 bytes */
|
/* First 8 bytes */
|
||||||
simap_c64 *start_str = (uint8_t *)(usprev + 2);
|
simap_c64 *start_str = (simap_c64 *)(usprev + 2);
|
||||||
*start_str = first8;
|
*start_str = first8;
|
||||||
|
|
||||||
/* Remainin bytes */
|
/* Remainin bytes */
|
||||||
if(keylen > 8) {
|
if(keylen > 8) {
|
||||||
uint32_t key_remains = keylen - 8;
|
/* uint32_t key_remains = keylen - 8; */
|
||||||
char *rem_str = (char *)(start_str + 1);
|
char *rem_str = (char *)(start_str + 1);
|
||||||
strcpy(rem_str, key + 8);
|
strcpy(rem_str, key + 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Update previous with linkage */
|
/* Update previous with linkage */
|
||||||
if(previ != (uint32_t)-1) {
|
if(previ != (uint32_t)-1) {
|
||||||
uint32_t *prevnex = (uint8_t *)(map->base) + previ +
|
uint32_t *prevnex = (uint32_t *)((uint8_t *)(map->base) + previ +
|
||||||
sizeof(simap_ptr64) +
|
sizeof(simap_ptr64) +
|
||||||
sizeof(uint32_t);
|
sizeof(uint32_t));
|
||||||
*prevnex = usi;
|
*prevnex = usi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user