summaryrefslogtreecommitdiff
path: root/node.h
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2020-10-01 21:02:05 +0900
committernagachika <nagachika@ruby-lang.org>2020-10-01 21:02:05 +0900
commitb35bfa6abb7760e4323a4341dff840f59ddcfde1 (patch)
treef99c71873c8d91e0388040e1858e0de5b203a25e /node.h
parent811b2b0df5e670ad8db7951191232ce3f5b0d978 (diff)
merge revision(s) 35ba2783fe6b3316a6bbc6f00bf975ad7185d6e0,e8edc34f0abe176b24975a1fed1f2c3782f0a252: [Backport #16807]
Use a linked list to eliminate imemo tmp bufs for managing local tables This patch changes local table memory to be managed by a linked list rather than via the garbage collector. It reduces allocations from the GC and also fixes a use-after-free bug in the concurrent-with-sweep compactor I'm working on. Remove unused struct member I accidentally added this in 35ba2783fe6b3316a6bbc6f00bf975ad7185d6e0, and it's making the size of RVALUE be too big. I'm sorry! orz
Diffstat (limited to 'node.h')
-rw-r--r--node.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/node.h b/node.h
index 217b344550..f688f238de 100644
--- a/node.h
+++ b/node.h
@@ -404,6 +404,7 @@ typedef struct rb_ast_struct {
rb_ast_t *rb_ast_new(void);
void rb_ast_mark(rb_ast_t*);
void rb_ast_update_references(rb_ast_t*);
+void rb_ast_add_local_table(rb_ast_t*, ID *buf);
void rb_ast_dispose(rb_ast_t*);
void rb_ast_free(rb_ast_t*);
size_t rb_ast_memsize(const rb_ast_t*);