def self.new(parent, name, index=nil)
TMarkID_TBL.mutex.synchronize{
if TMarkID_TBL[parent.path] && TMarkID_TBL[parent.path][name]
obj = TMarkID_TBL[parent.path][name]
else
(obj = self.allocate).instance_eval{
@parent = @t = parent
@tpath = parent.path
@path = @id = name
TMarkID_TBL[@id] = self
TMarkID_TBL[@tpath] = {} unless TMarkID_TBL[@tpath]
TMarkID_TBL[@tpath][@id] = self unless TMarkID_TBL[@tpath][@id]
@t._addtag @id, self
}
obj
end
if obj && index
tk_call_without_enc(parent.path, 'mark', 'set', name,
_get_eval_enc_str(index))
end
obj
}
end