diff options
author | Nobuyoshi Nakada <[email protected]> | 2021-11-23 00:09:41 +0900 |
---|---|---|
committer | Nobuyoshi Nakada <[email protected]> | 2021-11-23 21:03:19 +0900 |
commit | c14f230b26aa4f8abe9ecf3814cfebbe584d77c9 () | |
tree | b4d605d19bc2db444a24d41251e7d204bf3a0d30 /symbol.c | |
parent | eb301d8aecf454681e78cd7ad6d027e67b121857 (diff) |
Assign temporary ID to anonymous ID [Bug #18250]
Dumped iseq binary can not have unnamed symbols/IDs, and ID 0 is stored instead. As `struct rb_id_table` disallows ID 0, also for the distinction, re-assign a new temporary ID based on the local variable table index when loading from the binary, as well as the parser.
Notes: Merged: https://.com/ruby/ruby/pull/5157
-rw-r--r-- | symbol.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -952,6 +952,17 @@ rb_make_internal_id(void) return next_id_base() | ID_INTERNAL | ID_STATIC_SYM; } static int symbols_i(st_data_t key, st_data_t value, st_data_t arg) { |