Skip to content

Commit ab982ce

Browse files
committed
small fixups
1 parent 8c3d8d5 commit ab982ce

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

transcode.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ gen_src_to_dst_encodings_key(const char *key_buf, const char *sname, const char
220220
memcpy(p, ":", 1);
221221
p += 1;
222222
size_t dlen = strlen(dname);
223-
RUBY_ASSERT(slen + dlen < SRC_ENC_TO_DST_ENC_KEY_SIZE);
223+
RUBY_ASSERT(slen + dlen + 1 < SRC_ENC_TO_DST_ENC_KEY_SIZE);
224224
memcpy(p, dname, dlen);
225225
}
226226

@@ -280,7 +280,8 @@ get_transcoder_entry(const char *sname, const char *dname)
280280
char key_buf[SRC_ENC_TO_DST_ENC_KEY_SIZE] = { 0 };
281281
gen_src_to_dst_encodings_key(key_buf, sname, dname);
282282
VALUE entry_val;
283-
if (rb_managed_st_table_lookup(fast_transcoder_entry_table, (st_data_t)key_buf, &entry_val)) {
283+
VALUE tbl = RUBY_ATOMIC_VALUE_LOAD(fast_transcoder_entry_table);
284+
if (rb_managed_st_table_lookup(tbl, (st_data_t)key_buf, &entry_val)) {
284285
return (transcoder_entry_t*)entry_val;
285286
}
286287
return NULL;
@@ -1057,7 +1058,7 @@ trans_open_i(const char *sname, const char *dname, int depth, void *arg)
10571058
if (!toarg->entries) {
10581059
size_t num = depth+1+toarg->num_additional+1;
10591060
toarg->entries = ALLOC_N(transcoder_entry_t *, num);
1060-
memset(toarg->entries + num - 1, 0, sizeof(transcoder_entry_t*)); // last entry is 0
1061+
memset(toarg->entries + num - 1, 0, sizeof(transcoder_entry_t*)); // last entry is 0 so we can loop over it
10611062
}
10621063
toarg->entries[depth] = get_transcoder_entry(sname, dname);
10631064
}

0 commit comments

Comments
 (0)