Bug #4323 ยป proc-hash.patch
proc.c | ||
---|---|---|
{
|
||
st_index_t hash;
|
||
rb_proc_t *proc;
|
||
rb_iseq_t *iseq;
|
||
GetProcPtr(self, proc);
|
||
hash = rb_hash_start((st_index_t)proc->block.iseq);
|
||
if (RUBY_VM_NORMAL_ISEQ_P(iseq = proc->block.iseq))
|
||
hash = rb_memhash(iseq->iseq, iseq->iseq_size * sizeof(VALUE));
|
||
else
|
||
hash = (st_index_t)proc->block.iseq;
|
||
hash = rb_hash_start(hash);
|
||
hash = rb_hash_uint(hash, (st_index_t)proc->envval);
|
||
hash = rb_hash_uint(hash, (st_index_t)proc->block.lfp >> 16);
|
||
hash = rb_hash_end(hash);
|