@@ -57,7 +57,7 @@ struct EtsTable
57
57
term name ;
58
58
bool is_named ;
59
59
int32_t owner_process_id ;
60
- size_t keypos ;
60
+ size_t key_index ;
61
61
EtsTableType table_type ;
62
62
// In the future, we might support rb-trees for sorted sets
63
63
// For this MVP, we only support unsorted sets
@@ -171,7 +171,7 @@ EtsErrorCode ets_create_table_maybe_gc(term name, bool is_named, EtsTableType ta
171
171
uint64_t ref_ticks = globalcontext_get_ref_ticks (ctx -> global );
172
172
ets_table -> ref_ticks = ref_ticks ;
173
173
174
- ets_table -> keypos = keypos ;
174
+ ets_table -> key_index = keypos ;
175
175
176
176
#ifndef AVM_NO_SMP
177
177
ets_table -> lock = smp_rwlock_create ();
@@ -249,9 +249,9 @@ static void ets_delete_all_tables(struct Ets *ets, GlobalContext *global)
249
249
250
250
static EtsErrorCode insert (struct EtsTable * ets_table , term entry , Context * ctx )
251
251
{
252
- size_t keypos = ets_table -> keypos ;
252
+ size_t keypos = ets_table -> key_index ;
253
253
254
- if ((size_t ) term_get_tuple_arity (entry ) < keypos + 1 ) {
254
+ if ((size_t ) term_get_tuple_arity (entry ) <= keypos ) {
255
255
return EtsBadEntry ;
256
256
}
257
257
@@ -276,7 +276,7 @@ static EtsErrorCode insert_multiple(struct EtsTable *ets_table, term list, Conte
276
276
while (term_is_nonempty_list (iter )) {
277
277
term tuple = term_get_list_head (iter );
278
278
iter = term_get_list_tail (iter );
279
- if (!term_is_tuple (tuple ) || (size_t ) term_get_tuple_arity (tuple ) < ( ets_table -> keypos + 1 ) ) {
279
+ if (!term_is_tuple (tuple ) || (size_t ) term_get_tuple_arity (tuple ) <= ets_table -> key_index ) {
280
280
return EtsBadEntry ;
281
281
}
282
282
++ size ;
@@ -293,7 +293,7 @@ static EtsErrorCode insert_multiple(struct EtsTable *ets_table, term list, Conte
293
293
size_t i = 0 ;
294
294
while (term_is_nonempty_list (list )) {
295
295
term tuple = term_get_list_head (list );
296
- nodes [i ] = ets_hashtable_new_node (tuple , ets_table -> keypos );
296
+ nodes [i ] = ets_hashtable_new_node (tuple , ets_table -> key_index );
297
297
if (IS_NULL_PTR (nodes [i ])) {
298
298
for (size_t it = 0 ; it < i ; ++ it ) {
299
299
ets_hashtable_free_node (nodes [it ], ctx -> global );
@@ -337,7 +337,7 @@ EtsErrorCode ets_insert(term name_or_ref, term entry, Context *ctx)
337
337
338
338
static EtsErrorCode ets_table_lookup_maybe_gc (struct EtsTable * ets_table , term key , term * ret , Context * ctx , int num_roots , term * roots )
339
339
{
340
- term res = ets_hashtable_lookup (ets_table -> hashtable , key , ets_table -> keypos , ctx -> global );
340
+ term res = ets_hashtable_lookup (ets_table -> hashtable , key , ets_table -> key_index , ctx -> global );
341
341
342
342
if (term_is_nil (res )) {
343
343
* ret = term_nil ();
@@ -375,7 +375,7 @@ EtsErrorCode ets_lookup_element_maybe_gc(term name_or_ref, term key, size_t key_
375
375
return EtsBadAccess ;
376
376
}
377
377
378
- term entry = ets_hashtable_lookup (ets_table -> hashtable , key , ets_table -> keypos , ctx -> global );
378
+ term entry = ets_hashtable_lookup (ets_table -> hashtable , key , ets_table -> key_index , ctx -> global );
379
379
if (!term_is_tuple (entry )) {
380
380
SMP_UNLOCK (ets_table );
381
381
return EtsEntryNotFound ;
@@ -424,7 +424,7 @@ EtsErrorCode ets_delete(term name_or_ref, term key, term *ret, Context *ctx)
424
424
return EtsBadAccess ;
425
425
}
426
426
427
- bool _found = ets_hashtable_remove (ets_table -> hashtable , key , ets_table -> keypos , ctx -> global );
427
+ bool _found = ets_hashtable_remove (ets_table -> hashtable , key , ets_table -> key_index , ctx -> global );
428
428
UNUSED (_found );
429
429
SMP_UNLOCK (ets_table );
430
430
@@ -519,15 +519,15 @@ EtsErrorCode ets_update_counter_maybe_gc(term ref, term key, term operation, ter
519
519
term threshold_term ;
520
520
term set_value_term ;
521
521
// +1 for index -> position, +1 for targeting elem after key
522
- size_t default_pos = (ets_table -> keypos + 1 ) + 1 ;
522
+ size_t default_pos = (ets_table -> key_index + 1 ) + 1 ;
523
523
524
524
if (UNLIKELY (!operation_to_tuple4 (operation , default_pos , & position_term , & increment_term , & threshold_term , & set_value_term ))) {
525
525
SMP_UNLOCK (ets_table );
526
526
return EtsBadEntry ;
527
527
}
528
528
size_t arity = term_get_tuple_arity (to_insert );
529
529
size_t elem_index = term_to_int (position_term ) - 1 ;
530
- if (UNLIKELY (arity <= elem_index || elem_index == ets_table -> keypos )) {
530
+ if (UNLIKELY (arity <= elem_index || elem_index == ets_table -> key_index )) {
531
531
SMP_UNLOCK (ets_table );
532
532
return EtsBadEntry ;
533
533
}
0 commit comments