Sha256: 8dd04923536157de04c62fc9febcac885f02f0ec6401ae755527e339a0bb6345
Contents?: true
Size: 936 Bytes
Versions: 21
Compression:
Stored size: 936 Bytes
Contents
# :stopdoc: if ENV['NOKOGIRI_ID2REF'] || RUBY_PLATFORM !~ /java/ Nokogiri::VERSION_INFO['refs'] = "id2ref" else require 'weakling' Nokogiri::VERSION_INFO['refs'] = "weakling" end require 'singleton' module Nokogiri class WeakBucket include Singleton if Nokogiri::VERSION_INFO['refs'] == "weakling" attr_accessor :bucket def initialize @bucket = Weakling::IdHash.new end def WeakBucket.get_object(cstruct) instance.bucket[cstruct.ruby_node_pointer] end def WeakBucket.set_object(cstruct, object) cstruct.ruby_node_pointer = instance.bucket.add(object) end else def WeakBucket.get_object(cstruct) ptr = cstruct.ruby_node_pointer ptr != 0 ? ObjectSpace._id2ref(ptr) : nil end def WeakBucket.set_object(cstruct, object) cstruct.ruby_node_pointer = object.object_id end end end end # :startdoc:
Version data entries
21 entries across 21 versions & 3 rubygems