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

Version Path
domo-0.0.4 vendor/bundle/ruby/1.9.1/gems/nokogiri-1.4.4/lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4.2-java lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4.1-x86-mswin32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4.1-x86-mingw32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4-x86-mswin32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4-x86-mingw32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4-java lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.4 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3.1-java lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3.1-x86-mswin32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3.1-x86-mingw32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3.1 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3-java lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3-x86-mswin32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3-x86-mingw32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.3 lib/nokogiri/ffi/weak_bucket.rb
glebm-nokogiri-1.4.2.1 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.2.1-x86-mswin32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.2.1-x86-mingw32 lib/nokogiri/ffi/weak_bucket.rb
nokogiri-1.4.2-java lib/nokogiri/ffi/weak_bucket.rb