Skip to content

Commit 086c53d

Browse files
committed
Embed vm->unused_block_warning_table
1 parent 08e03af commit 086c53d

6 files changed

Lines changed: 13 additions & 5 deletions

File tree

compile.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2058,7 +2058,7 @@ iseq_set_use_block(rb_iseq_t *iseq)
20582058

20592059
if (!rb_warning_category_enabled_p(RB_WARN_CATEGORY_STRICT_UNUSED_BLOCK)) {
20602060
st_data_t key = (st_data_t)rb_intern_str(body->location.label); // String -> ID
2061-
set_insert(vm->unused_block_warning_table, key);
2061+
set_insert(&vm->unused_block_warning_table, key);
20622062
}
20632063
}
20642064
}

internal/set_table.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ set_table *rb_set_init_table_with_size(set_table *tab, const struct st_hash_type
4242
set_table *rb_set_init_numtable(void);
4343
#define set_init_numtable_with_size rb_set_init_numtable_with_size
4444
set_table *rb_set_init_numtable_with_size(st_index_t size);
45+
#define set_init_embedded_numtable_with_size rb_set_init_embedded_numtable_with_size
46+
set_table *rb_set_init_embedded_numtable_with_size(struct set_table *tbl, st_index_t size);
4547
#define set_table_delete rb_set_table_delete
4648
int rb_set_table_delete(set_table *, st_data_t *); /* returns 0:notfound 1:deleted */
4749
#define set_insert rb_set_insert

st.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2559,6 +2559,12 @@ set_init_numtable_with_size(st_index_t size)
25592559
return set_init_table_with_size(NULL, &type_numhash, size);
25602560
}
25612561

2562+
set_table *
2563+
set_init_embedded_numtable_with_size(set_table *tab, st_index_t size)
2564+
{
2565+
return set_init_existing_table_with_size(tab, &type_numhash, size);
2566+
}
2567+
25622568
size_t
25632569
set_table_size(const struct set_table *tbl)
25642570
{

vm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3396,7 +3396,7 @@ ruby_vm_destruct(rb_vm_t *vm)
33963396
st_free_table(vm->static_ext_inits);
33973397

33983398
rb_id_table_free_items(&vm->constant_cache);
3399-
set_free_table(vm->unused_block_warning_table);
3399+
set_free_embedded_table(&vm->unused_block_warning_table);
34003400

34013401
rb_thread_free_native_thread(th);
34023402

@@ -4586,7 +4586,7 @@ Init_BareVM(void)
45864586
rb_objspace_alloc();
45874587
rb_id_table_init(&vm->negative_cme_table, 16);
45884588
st_init_existing_numtable_with_size(&vm->overloaded_cme_table, 0);
4589-
vm->unused_block_warning_table = set_init_numtable();
4589+
set_init_embedded_numtable_with_size(&vm->unused_block_warning_table, 0);
45904590
vm->global_hooks.type = hook_list_type_global;
45914591

45924592
// setup main thread

vm_core.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -815,7 +815,7 @@ typedef struct rb_vm_struct {
815815
st_table *ci_table;
816816
struct rb_id_table negative_cme_table;
817817
st_table overloaded_cme_table; // cme -> overloaded_cme
818-
set_table *unused_block_warning_table;
818+
set_table unused_block_warning_table;
819819
VALUE cc_refinement_set;
820820

821821
// This id table contains a mapping from ID to ICs. It does this with ID

vm_insnhelper.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3143,7 +3143,7 @@ static void
31433143
warn_unused_block(const rb_callable_method_entry_t *cme, const rb_iseq_t *iseq, void *pc)
31443144
{
31453145
rb_vm_t *vm = GET_VM();
3146-
set_table *dup_check_table = vm->unused_block_warning_table;
3146+
set_table *dup_check_table = &vm->unused_block_warning_table;
31473147
st_data_t key;
31483148
bool strict_unused_block = rb_warning_category_enabled_p(RB_WARN_CATEGORY_STRICT_UNUSED_BLOCK);
31493149

0 commit comments

Comments
 (0)