memory 0.8.0 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e3be5bbd2ea825e556faa064af09cfd77043d7ca04cc2767d7dffe9efa877b4b
4
- data.tar.gz: 286b7693641ebf10c643e03baeb678dfa4e4135c4cd3b709b20b2dc608a61edd
3
+ metadata.gz: 9d7f868ef07c0e024374dc7bbbe474a202f0c4bd8b78d625a4de2e3c13266a79
4
+ data.tar.gz: 87a8916345566abdeefcd5997c2cb53994bbd3a029fa82831800f85d6c63d8b3
5
5
  SHA512:
6
- metadata.gz: 2eddc8c03c592d5ef1a898af3b8fb72e71ed526473ad70cb74f4c905080be35c1d50ac3271e05da292e390e900a25fafe85a996d6f18b89016ca731d1f84ba4d
7
- data.tar.gz: 535bcded6a5eb23536443d729c0a27034898b8240805b4d2180f9b18185d788b13572f9f73671be76fd47af50b6277659f9f5305ebba7a235d2440c595d6acf5
6
+ metadata.gz: ff2aad7a36062a3b117c130b2e849556c3fade72da6c3998746ee0cce2dd917c95231a06f354907be3945bc9f4f6674fcc172435523e79a45245962537c5837b
7
+ data.tar.gz: 3942a110b76836d49e2c0cf5c289e6b07a87f357a4d6be106f0c370106a5e3fcaca3a24d4a0835342d6add44425dfa20e55c6003dbb3064c8ad4e85536deb238
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/memory/usage.rb CHANGED
@@ -44,10 +44,14 @@ module Memory
44
44
  queue = [root]
45
45
  while queue.any?
46
46
  object = queue.shift
47
+
47
48
  # Skip modules and symbols, they are usually "global":
48
49
  next if object.is_a?(Module)
49
50
  # Note that `reachable_objects_from` does not include symbols, numbers, or other value types, AFAICT.
50
51
 
52
+ # Skip internal objects - they don't behave correctly when added to `seen` and create unbounded recursion:
53
+ next if object.is_a?(ObjectSpace::InternalObjectWrapper)
54
+
51
55
  # Skip objects we have already seen:
52
56
  next if seen.include?(object)
53
57
 
@@ -7,5 +7,5 @@
7
7
  # Copyright, 2020-2025, by Samuel Williams.
8
8
 
9
9
  module Memory
10
- VERSION = "0.8.0"
10
+ VERSION = "0.8.1"
11
11
  end
data/readme.md CHANGED
@@ -94,6 +94,10 @@ end
94
94
 
95
95
  Please see the [project releases](https://socketry.github.io/memory/releases/index) for all releases.
96
96
 
97
+ ### v0.8.1
98
+
99
+ - Skip over `ObjectSpace::InternalObjectWrapper` instances in `Memory::Usage.of` to avoid unbounded recursion.
100
+
97
101
  ### v0.8.0
98
102
 
99
103
  - Removed old `RSpec` integration.
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.8.1
4
+
5
+ - Skip over `ObjectSpace::InternalObjectWrapper` instances in `Memory::Usage.of` to avoid unbounded recursion.
6
+
3
7
  ## v0.8.0
4
8
 
5
9
  - Removed old `RSpec` integration.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: memory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Saffron
metadata.gz.sig CHANGED
Binary file