binding_of_caller 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,16 +1,11 @@
1
1
  /* (c) 2011 John Mair (banisterfiend), MIT license */
2
2
 
3
3
  #include <ruby.h>
4
-
5
- #include <ruby/io.h>
6
- #include <ruby/re.h>
7
4
  #include "vm_core.h"
8
5
  #include "gc.h"
9
6
 
10
7
  typedef enum { false, true } bool;
11
8
 
12
- const int max_frame_errors = 4;
13
-
14
9
  static size_t
15
10
  binding_memsize(const void *ptr)
16
11
  {
@@ -59,22 +54,18 @@ binding_alloc(VALUE klass)
59
54
  }
60
55
 
61
56
  static bool valid_frame_p(rb_control_frame_t * cfp, rb_control_frame_t * limit_cfp) {
62
- if (cfp > limit_cfp)
57
+ if (cfp >= limit_cfp)
63
58
  rb_raise(rb_eRuntimeError, "Invalid frame, gone beyond end of stack!");
64
59
 
65
60
  return cfp->iseq && !NIL_P(cfp->self);
66
61
  }
67
62
 
68
63
  static rb_control_frame_t * find_valid_frame(rb_control_frame_t * cfp, rb_control_frame_t * limit_cfp) {
69
- int error_count = 0;
70
-
71
- while (error_count <= max_frame_errors) {
64
+ while (true) {
72
65
  cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(cfp);
73
66
 
74
67
  if (valid_frame_p(cfp, limit_cfp))
75
68
  return cfp;
76
- else
77
- error_count += 1;
78
69
  }
79
70
 
80
71
  // never reached
@@ -100,9 +91,8 @@ static VALUE binding_of_caller(VALUE self, VALUE rb_level)
100
91
  VALUE bindval = binding_alloc(rb_cBinding);
101
92
  rb_binding_t *bind;
102
93
 
103
- if (cfp == 0) {
94
+ if (cfp == 0)
104
95
  rb_raise(rb_eRuntimeError, "Can't create Binding Object on top of Fiber.");
105
- }
106
96
 
107
97
  GetBindingPtr(bindval, bind);
108
98
  bind->env = rb_vm_make_env_object(th, cfp);
@@ -1,3 +1,3 @@
1
1
  module BindingOfCaller
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,37 +1,35 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: binding_of_caller
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.4.1
4
5
  prerelease:
5
- version: 0.4.0
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - John Mair (banisterfiend)
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-10-20 00:00:00 Z
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-10-22 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: bacon
17
- prerelease: false
18
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &70343943988340 !ruby/object:Gem::Requirement
19
17
  none: false
20
- requirements:
18
+ requirements:
21
19
  - - ~>
22
- - !ruby/object:Gem::Version
20
+ - !ruby/object:Gem::Version
23
21
  version: 1.1.0
24
22
  type: :development
25
- version_requirements: *id001
26
- description: Retrieve the binding of a method's caller. Can also retrieve bindings even further up the stack. Currently only works for MRI 1.9.2.
23
+ prerelease: false
24
+ version_requirements: *70343943988340
25
+ description: Retrieve the binding of a method's caller. Can also retrieve bindings
26
+ even further up the stack. Currently only works for MRI 1.9.2.
27
27
  email: jrmair@gmail.com
28
28
  executables: []
29
-
30
- extensions:
29
+ extensions:
31
30
  - ext/binding_of_caller/extconf.rb
32
31
  extra_rdoc_files: []
33
-
34
- files:
32
+ files:
35
33
  - .gemtest
36
34
  - .gitignore
37
35
  - .yardopts
@@ -94,30 +92,28 @@ files:
94
92
  - test/test.rb
95
93
  homepage: http://github.com/banister/binding_of_caller
96
94
  licenses: []
97
-
98
95
  post_install_message:
99
96
  rdoc_options: []
100
-
101
- require_paths:
97
+ require_paths:
102
98
  - lib
103
- required_ruby_version: !ruby/object:Gem::Requirement
99
+ required_ruby_version: !ruby/object:Gem::Requirement
104
100
  none: false
105
- requirements:
106
- - - ">="
107
- - !ruby/object:Gem::Version
108
- version: "0"
109
- required_rubygems_version: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ! '>='
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ required_rubygems_version: !ruby/object:Gem::Requirement
110
106
  none: false
111
- requirements:
112
- - - ">="
113
- - !ruby/object:Gem::Version
114
- version: "0"
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
115
111
  requirements: []
116
-
117
112
  rubyforge_project:
118
- rubygems_version: 1.8.11
113
+ rubygems_version: 1.8.6
119
114
  signing_key:
120
115
  specification_version: 3
121
- summary: Retrieve the binding of a method's caller. Can also retrieve bindings even further up the stack. Currently only works for MRI 1.9.2.
122
- test_files:
116
+ summary: Retrieve the binding of a method's caller. Can also retrieve bindings even
117
+ further up the stack. Currently only works for MRI 1.9.2.
118
+ test_files:
123
119
  - test/test.rb