[MacRuby-devel] [MacRuby] #617: Reopening Symbol Appears to Cause auto malloc[16067]: error for object 0x1016090b0: auto_zone_set_associative_ref
MacRuby
ruby-noreply at macosforge.org
Wed Feb 17 11:21:06 PST 2010
#617: Reopening Symbol Appears to Cause auto malloc[16067]: error for object
0x1016090b0: auto_zone_set_associative_ref
-------------------------------+--------------------------------------------
Reporter: cwdinfo@… | Owner: lsansonetti@…
Type: defect | Status: new
Priority: blocker | Milestone:
Component: MacRuby | Keywords:
-------------------------------+--------------------------------------------
This works in MRI 1.87 and 1.9.1.
{{{
#!/usr/local/bin/macruby
class Predicate
OPERATOR_MAP = {
:gt => '>',
:lt => '<',
:eq => '='
}
def initialize(obj, operator, rhs)
@obj = obj.to_s
@predicate = to_condition(operator, rhs)
end
def gt(rhs)
@predicate << @conjoin
@predicate << to_condition(:gt, rhs)
self
end
def lt(rhs)
@predicate << @conjoin
@predicate << to_condition(:lt, rhs)
self
end
def eq(rhs)
@predicate << @conjoin
@predicate << to_condition(:lt, rhs)
self
end
def and
@conjoin = ' and '
self
end
def or
@conjoin = ' or '
self
end
def to_condition(operator, rhs)
"#{@obj} #{OPERATOR_MAP[operator]} #{rhs}"
end
def to_s
@predicate
end
end
class Symbol
def gt(value)
@predicate = Predicate.new(self, :gt, value)
end
def lt(value)
@predicate = Predicate.new(self, :lt, value)
end
def eq(value)
@predicate = Predicate.new(self, :eq, value)
end
end
puts :start_time.eq('2010-10-01')
puts :start_time.eq('2010-10-01').and.lt('2010-10-03')}}}
}}}
Error is:
{{{
macruby(16067,0x7fff70f36be0) malloc: *** auto malloc[16067]: error for
object 0x1016090b0: auto_zone_set_associative_ref: object should point to
a GC block or a global address, otherwise associations will leak. Break on
auto_zone_association_error() to debug.
}}}
--
Ticket URL: <http://www.macruby.org/trac/ticket/617>
MacRuby <http://macruby.org/>
More information about the MacRuby-devel
mailing list