[macruby-changes] [MacRuby/MacRuby] 68ac3f: fixed RoxorVM::pop_outer() leaks memory. (fixes #1...
noreply at github.com
noreply at github.com
Wed May 18 02:08:29 PDT 2011
Branch: refs/heads/master
Home: https://github.com/MacRuby/MacRuby
Commit: 68ac3fcaf1041ef9b25fb3bc940a47f41505b7e5
https://github.com/MacRuby/MacRuby/commit/68ac3fcaf1041ef9b25fb3bc940a47f41505b7e5
Author: Kouji Takao <kouji at takao7.net>
Date: 2011-05-18 (Wed, 18 May 2011)
Changed paths:
M class.c
M compiler.cpp
M compiler.h
M debugger.cpp
M dispatcher.cpp
M dln.c
M interpreter.cpp
M kernel.c
M proc.c
R spec/frozen/tags/macruby/core/binding/clone_tags.txt
R spec/frozen/tags/macruby/core/binding/dup_tags.txt
M test_vm/block.rb
M test_vm/dispatch.rb
M variable.c
M vm.cpp
M vm.h
M vm_eval.c
Log Message:
-----------
fixed RoxorVM::pop_outer() leaks memory. (fixes #1267)
This changes included many things. See below.
(1) fixed memory leak below.
1.instance_eval { 42 }
But did not below.
1.instance_eval "42"
I think currently MacRuby occurs memory leak in eval().
(2) occurs TypeError exception below. This is CRuby spec.
1.instance_eval "A = 10"
(3) occurs TypeError exception below. This is CRuby spec. (like above)
1.instance_eval "class A; end"
(4) passed failed test in test_vm/block.rb below.
assert ':ok', %{
proc do
def proc_caller(&b) b.call end
def enclosing_method
proc_caller { return :ok }
:nok
end
p enclosing_method
end.call
}
(5) removed outer_mask in RoxorCompiler
Because It is not used now.
(6) supported alias eval, instance_eval, module_eval and class_eval.
(7) set, push and pop outer_stack in runtime.
(8) removed rb_vm_set_outer() and rb_vm_get_outer().
because does not use original outer now.
(9) implemented Binding#dup and Binding#clone.
More information about the macruby-changes
mailing list