heap_dump 0.0.2 → 0.0.3

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.
@@ -434,7 +434,8 @@ static int dump_method_entry_i(ID key, const rb_method_entry_t *me, st_data_t da
434
434
  return ST_CONTINUE;
435
435
  }
436
436
 
437
- static int dump_iv_entry(st_data_t key, VALUE value, walk_ctx_t *ctx){
437
+ static int dump_iv_entry(ID key, VALUE value, walk_ctx_t *ctx){
438
+ yg_cstring(rb_id2name(key));
438
439
  yg_id(value);
439
440
  return ST_CONTINUE;
440
441
  }
@@ -626,14 +627,18 @@ static inline void walk_live_object(VALUE obj, walk_ctx_t *ctx){
626
627
  case T_OBJECT:
627
628
  yg_cstring("class");
628
629
  yg_id(rb_class_of(obj));
629
- yg_cstring("refs"); //ivars
630
- yajl_gen_array_open(ctx->yajl);
631
- {
632
- long i, len = ROBJECT_NUMIV(obj);
633
- VALUE *ptr = ROBJECT_IVPTR(obj);
634
- for (i = 0; i < len; i++) yg_id(*ptr++);
635
- }
636
- yajl_gen_array_close(ctx->yajl);
630
+ // yg_cstring("refs"); //ivars
631
+ // yajl_gen_array_open(ctx->yajl);
632
+ // {
633
+ // long i, len = ROBJECT_NUMIV(obj);
634
+ // VALUE *ptr = ROBJECT_IVPTR(obj);
635
+ // for (i = 0; i < len; i++) yg_id(*ptr++);
636
+ // }
637
+ // yajl_gen_array_close(ctx->yajl);
638
+ yg_cstring("ivs");
639
+ yajl_gen_map_open(ctx->yajl); //TODO: what are iv keys?
640
+ rb_ivar_foreach(obj, dump_iv_entry, (st_data_t)ctx);
641
+ yajl_gen_map_close(ctx->yajl);
637
642
  break;
638
643
 
639
644
  case T_ICLASS:
@@ -660,10 +665,10 @@ static inline void walk_live_object(VALUE obj, walk_ctx_t *ctx){
660
665
 
661
666
  if (RCLASS_EXT(obj)){
662
667
  if(RCLASS_IV_TBL(obj) && RCLASS_IV_TBL(obj)->num_entries > 0){
663
- yg_cstring("refs");
664
- yajl_gen_array_open(ctx->yajl); //TODO: what are iv keys?
668
+ yg_cstring("ivs");
669
+ yajl_gen_map_open(ctx->yajl); //TODO: what are iv keys?
665
670
  st_foreach(RCLASS_IV_TBL(obj), dump_iv_entry, (st_data_t)ctx);
666
- yajl_gen_array_close(ctx->yajl);
671
+ yajl_gen_map_close(ctx->yajl);
667
672
  }
668
673
 
669
674
  #if 0
@@ -1,3 +1,3 @@
1
1
  module HeapDump
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: heap_dump
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-05-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ruby-internal
16
- requirement: &70106505219640 !ruby/object:Gem::Requirement
16
+ requirement: &70147118245260 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.8.5
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70106505219640
24
+ version_requirements: *70147118245260
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yajl-ruby
27
- requirement: &70106505219140 !ruby/object:Gem::Requirement
27
+ requirement: &70147118244680 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.1'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70106505219140
35
+ version_requirements: *70147118244680
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake-compiler
38
- requirement: &70106505218720 !ruby/object:Gem::Requirement
38
+ requirement: &70147118244180 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70106505218720
46
+ version_requirements: *70147118244180
47
47
  description: dump ruby 1.9 heap contents
48
48
  email:
49
49
  - vasilyfedoseyev@gmail.com