yarv_generator 0.2.2 → 0.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 649fb103d7d383a977b6105e1b029826e2aff1ee
4
- data.tar.gz: 2486274e4a546f01642e4cce156b65cb423fab2b
3
+ metadata.gz: b3d4a956c5122dad94eb6a5cd46bf134e2603217
4
+ data.tar.gz: 9ac66e7f566b0f619ab17ab03cae536ba0d5d331
5
5
  SHA512:
6
- metadata.gz: 80289c8d0b97954f8db67be5521cf15faf6f36ded4e1b226d66dd6bce2b745efdd62cc50057c69a71219829a2fe2c0048b2584dc20a9cc3102e5f4d2bd9214f1
7
- data.tar.gz: d0dc203221b3611c8cb183f4de73ed356535bf4ddc6ec37e5886d31e0f2436ecc1b28137b56141fdc4de188c099cc77bd2236bfd9481e524e88888b7e310c62d
6
+ metadata.gz: 90d07824dba96aaa7e12a26e27a29fc656fdfe4de7644cd32d44cbf3cd12bce0ec0278115a36f5a96b854050d7992564b086064cbcaf23407cf79c43b3104746
7
+ data.tar.gz: 838eaf818a0b2cddaaad3844970c25d19665f0da9478b688c594f23f529082ed8765086d1b2cf923c4e57bd3e0151f9c234a5f17dbc6dd8731387dd3617e1cb1
@@ -39,16 +39,20 @@ yarv_builder_build_yarv_tree(rb_iseq_t *iseq)
39
39
  VALUE type = yarv_builder_insn_type(iseq);
40
40
  rb_funcall(iseq_object, rb_intern("type="), 1, type);
41
41
 
42
- VALUE local_table = yarv_builder_local_table(iseq);
42
+ VALUE local_table;
43
+ local_table = yarv_builder_local_table(iseq);
43
44
  rb_funcall(iseq_object, rb_intern("local_table="), 1, local_table);
44
45
 
45
- VALUE params = yarv_builder_params(iseq, labels_table);
46
+ VALUE params;
47
+ params = yarv_builder_params(iseq, labels_table);
46
48
  rb_funcall(iseq_object, rb_intern("params="), 1, params);
47
49
 
48
- VALUE catch_table = yarv_builder_catch_table(iseq, labels_table);
50
+ VALUE catch_table;
51
+ catch_table = yarv_builder_catch_table(iseq, labels_table);
49
52
  rb_funcall(iseq_object, rb_intern("catch_table="), 1, catch_table);
50
53
 
51
- VALUE instructions = yarv_builder_instructions(iseq, labels_table);
54
+ VALUE instructions;
55
+ instructions = yarv_builder_instructions(iseq, labels_table);
52
56
  rb_funcall(iseq_object, rb_intern("instructions="), 1, instructions);
53
57
 
54
58
  rb_funcall(iseq_object, rb_intern("label="), 1, iseq->body->location.label);
@@ -103,8 +107,10 @@ yarv_builder_insn_type(rb_iseq_t *iseq)
103
107
  VALUE
104
108
  yarv_builder_local_table(rb_iseq_t *iseq)
105
109
  {
106
- VALUE local_table = rb_ary_new();
107
- for (unsigned int i = 0; i < iseq->body->local_table_size; i++) {
110
+ VALUE local_table;
111
+ local_table = rb_ary_new();
112
+ unsigned int i;
113
+ for (i = 0; i < iseq->body->local_table_size; i++) {
108
114
  ID var_id = iseq->body->local_table[i];
109
115
  if (var_id) {
110
116
  if (rb_id2str(var_id)) {
@@ -130,14 +136,19 @@ yarv_builder_instructions(rb_iseq_t *iseq, st_table *labels_table)
130
136
 
131
137
  VALUE *iseq_original = rb_iseq_original_iseq((rb_iseq_t *)iseq);
132
138
 
133
- for (VALUE *seq = iseq_original; seq < iseq_original + iseq->body->iseq_size; ) {
134
- VALUE insn = *seq++;
135
- int len = insn_len_info[(int)insn];
136
- VALUE operands = rb_ary_new2(len);
139
+ VALUE *seq;
140
+ VALUE insn;
141
+ VALUE *nseq;
142
+ int len;
143
+ int j;
137
144
 
138
- VALUE *nseq = seq + len;
145
+ for (seq = iseq_original; seq < iseq_original + iseq->body->iseq_size; ) {
146
+ insn = *seq++;
147
+ len = insn_len_info[(int)insn];
148
+ VALUE operands = rb_ary_new2(len);
149
+ nseq = seq + len;
139
150
 
140
- for (int j = 0; j < len - 1; j++, seq++) {
151
+ for (j = 0; j < len - 1; j++, seq++) {
141
152
  VALUE operand = Qnil;
142
153
  switch (insn_op_type(insn, j)) {
143
154
  case TS_LINDEX:
@@ -198,7 +209,8 @@ yarv_builder_instructions(rb_iseq_t *iseq, st_table *labels_table)
198
209
  operand = rb_ary_new();
199
210
  rb_hash_foreach(hash, cdhash_each, operand);
200
211
 
201
- for (int i=0; i<RARRAY_LEN(operand); i+=2) {
212
+ int i;
213
+ for (i=0; i<RARRAY_LEN(operand); i+=2) {
202
214
  VALUE pos = FIX2INT(rb_ary_entry(operand, i+1));
203
215
  unsigned long idx = nseq - iseq_original + pos;
204
216
 
@@ -217,8 +229,9 @@ yarv_builder_instructions(rb_iseq_t *iseq, st_table *labels_table)
217
229
  rb_ary_push(instructions, insn_object);
218
230
  }
219
231
 
220
- for (unsigned int i = 0, pos = 0, line_pos = 0; i < RARRAY_LEN(instructions); i++) {
221
- VALUE instruction = RARRAY_AREF(instructions, i);
232
+ unsigned int ip, pos, line_pos;
233
+ for (ip = 0, pos = 0, line_pos = 0; ip < RARRAY_LEN(instructions); ip++) {
234
+ VALUE instruction = RARRAY_AREF(instructions, ip);
222
235
 
223
236
  st_data_t label;
224
237
  if (st_lookup(labels_table, pos, &label)) {
@@ -242,9 +255,10 @@ VALUE yarv_builder_params(rb_iseq_t *iseq, st_table *labels_table) {
242
255
  rb_hash_aset(params, ID2SYM(rb_intern("lead_num")), INT2FIX(iseq->body->param.lead_num));
243
256
  }
244
257
 
258
+ int i;
245
259
  if (iseq->body->param.flags.has_opt) {
246
260
  VALUE opts = rb_ary_new2(iseq->body->param.opt_num);
247
- for (int i = 0; i < iseq->body->param.opt_num; i++) {
261
+ for (i = 0; i < iseq->body->param.opt_num; i++) {
248
262
  VALUE value = iseq->body->param.opt_table[i];
249
263
  register_label(labels_table, value);
250
264
  rb_ary_push(opts, value);
@@ -264,7 +278,7 @@ VALUE yarv_builder_params(rb_iseq_t *iseq, st_table *labels_table) {
264
278
  if (iseq->body->param.flags.has_kw) {
265
279
  VALUE keywords = rb_ary_new();
266
280
  int j = 0;
267
- for (int i = 0; i < iseq->body->param.keyword->num; i++) {
281
+ for (i = 0; i < iseq->body->param.keyword->num; i++) {
268
282
  if (i < iseq->body->param.keyword->required_num) {
269
283
  // Require params
270
284
  rb_ary_push(keywords, ID2SYM(iseq->body->param.keyword->table[i]));
@@ -295,8 +309,9 @@ VALUE yarv_builder_catch_table(rb_iseq_t *iseq, st_table *labels_table) {
295
309
  VALUE catch_table = rb_ary_new();
296
310
  VALUE rb_cYarvCatchEntry = rb_path2class("YarvGenerator::CatchEntry");
297
311
 
312
+ unsigned int i;
298
313
  if (iseq->body->catch_table) {
299
- for (int i = 0; i < iseq->body->catch_table->size; i++) {
314
+ for (i = 0; i < iseq->body->catch_table->size; i++) {
300
315
  VALUE catch_entry = rb_funcall(rb_cYarvCatchEntry, rb_intern("new"), 0);
301
316
 
302
317
  const struct iseq_catch_table_entry *entry = &iseq->body->catch_table->entries[i];
@@ -350,7 +365,8 @@ yarv_builder_call_info(VALUE *seq)
350
365
  struct rb_call_info_with_kwarg *ci_kw = (struct rb_call_info_with_kwarg *)ci;
351
366
  VALUE kw = rb_ary_new2(ci_kw->kw_arg->keyword_len);
352
367
  int len = ci->orig_argc - ci_kw->kw_arg->keyword_len;
353
- for (int i = 0; i < len; i++) {
368
+ int i;
369
+ for (i = 0; i < len; i++) {
354
370
  rb_ary_push(kw, ci_kw->kw_arg->keywords[i]);
355
371
  }
356
372
  rb_funcall(ci_object, rb_intern("kw_arg="), 1, kw);
@@ -1,3 +1,3 @@
1
1
  class YarvGenerator
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yarv_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Minh Nguyen