@@ -73,23 +73,34 @@ bool berryRun(bvm *vm, const char *prog) {
73
73
}
74
74
75
75
void berryRunClosure (bvm * vm , int closureId ) {
76
+ //int s1 = Berry_GetStackSizeCurrent();
76
77
if (!be_getglobal (vm , "run_closure" )) {
77
78
return ;
78
79
}
79
80
be_pushint (vm , closureId );
80
81
// call run_closure(closureId)
81
82
be_call (vm , 1 );
83
+ //int s2 = Berry_GetStackSizeCurrent();
84
+ be_pop (vm , 2 );
85
+ //int s3 = Berry_GetStackSizeCurrent();
86
+ //printf("%i %i %i\n", s1, s2, s3);
82
87
}
83
88
void berryRunClosureBytes (bvm * vm , int closureId , byte * data , int len ) {
89
+ //int s1 = Berry_GetStackSizeCurrent();
84
90
if (!be_getglobal (vm , "run_closure" )) {
85
91
return ;
86
92
}
87
93
be_pushint (vm , closureId );
88
94
be_pushbytes (vm , data , len );
89
95
// call run_closure(closureId)
90
96
be_call (vm , 2 );
97
+ //int s2 = Berry_GetStackSizeCurrent();
98
+ be_pop (vm , 3 );
99
+ //int s3 = Berry_GetStackSizeCurrent();
100
+ //printf("%i %i %i\n", s1, s2, s3);
91
101
}
92
102
void berryRunClosureIntBytes (bvm * vm , int closureId , int x , const byte * data , int len ) {
103
+ //int s1 = Berry_GetStackSizeCurrent();
93
104
if (!be_getglobal (vm , "run_closure" )) {
94
105
return ;
95
106
}
@@ -98,8 +109,13 @@ void berryRunClosureIntBytes(bvm *vm, int closureId, int x, const byte *data, in
98
109
be_pushbytes (vm , data , len );
99
110
// call run_closure(closureId)
100
111
be_call (vm , 3 );
112
+ //int s2 = Berry_GetStackSizeCurrent();
113
+ be_pop (vm , 4 );
114
+ //int s3 = Berry_GetStackSizeCurrent();
115
+ //printf("%i %i %i\n", s1, s2, s3);
101
116
}
102
117
void berryRunClosureIntInt (bvm * vm , int closureId , int x , int y ) {
118
+ //int s1 = Berry_GetStackSizeCurrent();
103
119
if (!be_getglobal (vm , "run_closure" )) {
104
120
return ;
105
121
}
@@ -108,29 +124,59 @@ void berryRunClosureIntInt(bvm *vm, int closureId, int x, int y) {
108
124
be_pushint (vm , y );
109
125
// call run_closure(closureId)
110
126
be_call (vm , 3 );
127
+ //int s2 = Berry_GetStackSizeCurrent();
128
+ be_pop (vm , 4 );
129
+ //int s3 = Berry_GetStackSizeCurrent();
130
+ //printf("%i %i %i\n", s1, s2, s3);
131
+ }
132
+ void berryRunClosureInt (bvm * vm , int closureId , int x ) {
133
+ int s1 = Berry_GetStackSizeCurrent ();
134
+ if (!be_getglobal (vm , "run_closure" )) {
135
+ return ;
136
+ }
137
+ be_pushint (vm , closureId );
138
+ be_pushint (vm , x );
139
+ be_call (vm , 2 );
140
+ //int s2 = Berry_GetStackSizeCurrent();
141
+ be_pop (vm , 3 );
142
+ //int s3 = Berry_GetStackSizeCurrent();
143
+ //printf("%i %i %i\n", s1, s2, s3);
111
144
}
112
145
void berryRunClosureStr (bvm * vm , int closureId , const char * x , const char * y ) {
146
+ //int s1 = Berry_GetStackSizeCurrent();
113
147
if (!be_getglobal (vm , "run_closure" )) {
114
148
return ;
115
149
}
116
150
// call run_closure(closureId)
117
151
be_pushint (vm , closureId );
118
152
be_pushstring (vm , x );
153
+ //int s2;
119
154
if (y ) {
120
155
be_pushstring (vm , y );
121
156
be_call (vm , 3 );
157
+ //s2 = Berry_GetStackSizeCurrent();
158
+ be_pop (vm , 4 );
122
159
}
123
160
else {
124
161
be_call (vm , 2 );
162
+ //s2 = Berry_GetStackSizeCurrent();
163
+ be_pop (vm , 3 );
125
164
}
165
+ //int s3 = Berry_GetStackSizeCurrent();
166
+ //printf("%i %i %i\n", s1, s2, s3);
126
167
}
127
168
void berryRemoveClosure (bvm * vm , int closureId ) {
169
+ //int s1 = Berry_GetStackSizeCurrent();
128
170
if (!be_getglobal (vm , "remove_closure" )) {
129
171
return ;
130
172
}
131
173
be_pushint (vm , closureId );
132
174
// call remove_closure(closureId)
133
175
be_call (vm , 1 );
176
+ //int s2 = Berry_GetStackSizeCurrent();
177
+ be_pop (vm , 2 );
178
+ //int s3 = Berry_GetStackSizeCurrent();
179
+ //printf("%i %i %i\n", s1, s2, s3);
134
180
}
135
181
136
182
void berryFreeAllClosures (bvm * vm ) {
0 commit comments