From: Tanaka Akira Date: 2005-11-30T21:07:14+09:00 Subject: [ruby-dev:27896] NEWHEAP, ADD2HEAP and GC NEWHEAP ですが、たとえば、 #define NEWHEAP(cnt) rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parserp->heap, cnt) #define ADD2HEAP(n, ptr) ((parserp->heap = (n))->u1.node = (ptr)) void * rb_parser_malloc(struct parser_params *parserp, size_t size) { NODE *n = NEWHEAP(HEAPCNT(1, size)); return ADD2HEAP(n, xmalloc(size)); } というところで、xmalloc で GC が起こると、u1 が 0 の状態で GC が起動してしまうのはよろしくないんじゃないでしょうか。 -- [田中 哲][たなか あきら][Tanaka Akira]