~ubuntu-branches/ubuntu/hardy/ruby1.8/hardy-updates

« back to all changes in this revision

Viewing changes to debian/patches/138_eval.patch

  • Committer: Bazaar Package Importer
  • Author(s): akira yamada
  • Date: 2007-03-13 22:11:58 UTC
  • mfrom: (1.1.5 upstream)
  • Revision ID: james.westby@ubuntu.com-20070313221158-h3oql37brlaf2go2
Tags: 1.8.6-1
* new upstream version, 1.8.6.
* libruby1.8 conflicts with libopenssl-ruby1.8 (< 1.8.6) (closes: #410018)
* changed packaging style to cdbs from dbs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
--- ruby-1.8.5/eval.c   23 Sep 2006 14:39:29 -0000      1.616.2.195
2
 
+++ ruby-1.8.5/eval.c   4 Oct 2006 08:35:18 -0000       1.616.2.196
3
 
@@ -1106,7 +1106,7 @@ static VALUE rb_yield_0 _((VALUE, VALUE,
4
 
 #define YIELD_FUNC_AVALUE 1
5
 
 #define YIELD_FUNC_SVALUE 2
6
 
 
7
 
-static VALUE rb_call _((VALUE,VALUE,ID,int,const VALUE*,int));
8
 
+static VALUE rb_call _((VALUE,VALUE,ID,int,const VALUE*,int,VALUE));
9
 
 static VALUE module_setup _((VALUE,NODE*));
10
 
 
11
 
 static VALUE massign _((VALUE,NODE*,VALUE,int));
12
 
@@ -3177,7 +3177,7 @@ rb_eval(self, n)
13
 
                    END_CALLARGS;
14
 
                    ruby_current_node = node;
15
 
                    SET_CURRENT_SOURCE();
16
 
-                   result = rb_call(CLASS_OF(recv),recv,each,0,0,0);
17
 
+                   result = rb_call(CLASS_OF(recv),recv,each,0,0,0,self);
18
 
                }
19
 
                POP_ITER();
20
 
            }
21
 
@@ -3418,7 +3418,7 @@ rb_eval(self, n)
22
 
 
23
 
            ruby_current_node = node;
24
 
            SET_CURRENT_SOURCE();
25
 
-           rb_call(CLASS_OF(recv),recv,node->nd_mid,argc,argv,scope);
26
 
+           rb_call(CLASS_OF(recv),recv,node->nd_mid,argc,argv,scope,self);
27
 
            result = argv[argc-1];
28
 
        }
29
 
        break;
30
 
@@ -3436,7 +3436,7 @@ rb_eval(self, n)
31
 
 
32
 
            ruby_current_node = node;
33
 
            SET_CURRENT_SOURCE();
34
 
-           result = rb_call(CLASS_OF(recv),recv,node->nd_mid,argc,argv,0);
35
 
+           result = rb_call(CLASS_OF(recv),recv,node->nd_mid,argc,argv,0,self);
36
 
        }
37
 
        break;
38
 
 
39
 
@@ -3451,13 +3451,13 @@ rb_eval(self, n)
40
 
 
41
 
            ruby_current_node = node;
42
 
            SET_CURRENT_SOURCE();
43
 
-           result = rb_call(CLASS_OF(self),self,node->nd_mid,argc,argv,1);
44
 
+           result = rb_call(CLASS_OF(self),self,node->nd_mid,argc,argv,1,self);
45
 
        }
46
 
        break;
47
 
 
48
 
       case NODE_VCALL:
49
 
        SET_CURRENT_SOURCE();
50
 
-       result = rb_call(CLASS_OF(self),self,node->nd_mid,0,0,2);
51
 
+       result = rb_call(CLASS_OF(self),self,node->nd_mid,0,0,2,self);
52
 
        break;
53
 
 
54
 
       case NODE_SUPER:
55
 
@@ -5253,7 +5253,7 @@ assign(self, lhs, val, pcall)
56
 
                /* attr set */
57
 
                ruby_current_node = lhs;
58
 
                SET_CURRENT_SOURCE();
59
 
-               rb_call(CLASS_OF(recv), recv, lhs->nd_mid, 1, &val, scope);
60
 
+               rb_call(CLASS_OF(recv), recv, lhs->nd_mid, 1, &val, scope, self);
61
 
            }
62
 
            else {
63
 
                /* array set */
64
 
@@ -5264,7 +5264,7 @@ assign(self, lhs, val, pcall)
65
 
                ruby_current_node = lhs;
66
 
                SET_CURRENT_SOURCE();
67
 
                rb_call(CLASS_OF(recv), recv, lhs->nd_mid,
68
 
-                       RARRAY(args)->len, RARRAY(args)->ptr, scope);
69
 
+                       RARRAY(args)->len, RARRAY(args)->ptr, scope, self);
70
 
            }
71
 
        }
72
 
        break;
73
 
@@ -5993,12 +5993,13 @@ rb_call0(klass, recv, id, oid, argc, arg
74
 
 }
75
 
 
76
 
 static VALUE
77
 
-rb_call(klass, recv, mid, argc, argv, scope)
78
 
+rb_call(klass, recv, mid, argc, argv, scope, self)
79
 
     VALUE klass, recv;
80
 
     ID    mid;
81
 
     int argc;                  /* OK */
82
 
     const VALUE *argv;         /* OK */
83
 
     int scope;
84
 
+    VALUE self;
85
 
 {
86
 
     NODE  *body;               /* OK */
87
 
     int    noex;
88
 
@@ -6035,10 +6036,11 @@ rb_call(klass, recv, mid, argc, argv, sc
89
 
        if (noex & NOEX_PROTECTED) {
90
 
            VALUE defined_class = klass;
91
 
 
92
 
+           if (self == Qundef) self = ruby_frame->self;
93
 
            if (TYPE(defined_class) == T_ICLASS) {
94
 
                defined_class = RBASIC(defined_class)->klass;
95
 
            }
96
 
-           if (!rb_obj_is_kind_of(ruby_frame->self, rb_class_real(defined_class)))
97
 
+           if (!rb_obj_is_kind_of(self, rb_class_real(defined_class)))
98
 
                return method_missing(recv, mid, argc, argv, CSTAT_PROT);
99
 
        }
100
 
     }
101
 
@@ -6058,7 +6060,7 @@ rb_apply(recv, mid, args)
102
 
     argc = RARRAY(args)->len; /* Assigns LONG, but argc is INT */
103
 
     argv = ALLOCA_N(VALUE, argc);
104
 
     MEMCPY(argv, RARRAY(args)->ptr, VALUE, argc);
105
 
-    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 1);
106
 
+    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 1, Qundef);
107
 
 }
108
 
 
109
 
 /*
110
 
@@ -6091,7 +6093,7 @@ rb_f_send(argc, argv, recv)
111
 
 
112
 
     vid = *argv++; argc--;
113
 
     PUSH_ITER(rb_block_given_p()?ITER_PRE:ITER_NOT);
114
 
-    vid = rb_call(CLASS_OF(recv), recv, rb_to_id(vid), argc, argv, 1);
115
 
+    vid = rb_call(CLASS_OF(recv), recv, rb_to_id(vid), argc, argv, 1, Qundef);
116
 
     POP_ITER();
117
 
 
118
 
     return vid;
119
 
@@ -6120,7 +6122,7 @@ vafuncall(recv, mid, n, ar)
120
 
        argv = 0;
121
 
     }
122
 
 
123
 
-    return rb_call(CLASS_OF(recv), recv, mid, n, argv, 1);
124
 
+    return rb_call(CLASS_OF(recv), recv, mid, n, argv, 1, Qundef);
125
 
 }
126
 
 
127
 
 VALUE
128
 
@@ -6179,7 +6181,7 @@ rb_funcall2(recv, mid, argc, argv)
129
 
     int argc;
130
 
     const VALUE *argv;
131
 
 {
132
 
-    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 1);
133
 
+    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 1, Qundef);
134
 
 }
135
 
 
136
 
 VALUE
137
 
@@ -6189,7 +6191,7 @@ rb_funcall3(recv, mid, argc, argv)
138
 
     int argc;
139
 
     const VALUE *argv;
140
 
 {
141
 
-    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 0);
142
 
+    return rb_call(CLASS_OF(recv), recv, mid, argc, argv, 0, Qundef);
143
 
 }
144
 
 
145
 
 VALUE
146
 
@@ -6211,7 +6213,7 @@ rb_call_super(argc, argv)
147
 
     }
148
 
 
149
 
     PUSH_ITER(ruby_iter->iter ? ITER_PRE : ITER_NOT);
150
 
-    result = rb_call(RCLASS(klass)->super, self, ruby_frame->orig_func, argc, argv, 3);
151
 
+    result = rb_call(RCLASS(klass)->super, self, ruby_frame->orig_func, argc, argv, 3, Qundef);
152
 
     POP_ITER();
153
 
 
154
 
     return result;