fix benz's issue 29
This commit is contained in:
		
							parent
							
								
									df13e35044
								
							
						
					
					
						commit
						8587fe6dfc
					
				| 
						 | 
					@ -341,7 +341,8 @@ traverse(struct writer_control *p, pic_value obj)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  switch (pic_type(obj)) {
 | 
					  switch (pic_type(obj)) {
 | 
				
			||||||
  case PIC_TT_PAIR:
 | 
					  case PIC_TT_PAIR:
 | 
				
			||||||
  case PIC_TT_VECTOR: {
 | 
					  case PIC_TT_VECTOR:
 | 
				
			||||||
 | 
					  case PIC_TT_DICT: {
 | 
				
			||||||
    khash_t(l) *h = &p->labels;
 | 
					    khash_t(l) *h = &p->labels;
 | 
				
			||||||
    khiter_t it;
 | 
					    khiter_t it;
 | 
				
			||||||
    int ret;
 | 
					    int ret;
 | 
				
			||||||
| 
						 | 
					@ -355,12 +356,18 @@ traverse(struct writer_control *p, pic_value obj)
 | 
				
			||||||
        /* pair */
 | 
					        /* pair */
 | 
				
			||||||
        traverse(p, pic_car(pic, obj));
 | 
					        traverse(p, pic_car(pic, obj));
 | 
				
			||||||
        traverse(p, pic_cdr(pic, obj));
 | 
					        traverse(p, pic_cdr(pic, obj));
 | 
				
			||||||
      } else {
 | 
					      } else if (pic_vec_p(obj)) {
 | 
				
			||||||
        /* vector */
 | 
					        /* vector */
 | 
				
			||||||
        size_t i;
 | 
					        size_t i;
 | 
				
			||||||
        for (i = 0; i < pic_vec_ptr(obj)->len; ++i) {
 | 
					        for (i = 0; i < pic_vec_ptr(obj)->len; ++i) {
 | 
				
			||||||
          traverse(p, pic_vec_ptr(obj)->data[i]);
 | 
					          traverse(p, pic_vec_ptr(obj)->data[i]);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					      } else {
 | 
				
			||||||
 | 
					        /* dictionary */
 | 
				
			||||||
 | 
					        pic_sym *sym;
 | 
				
			||||||
 | 
					        pic_dict_for_each (sym, pic_dict_ptr(obj), it) {
 | 
				
			||||||
 | 
					          traverse(p, pic_dict_ref(pic, pic_dict_ptr(obj), sym));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      if (p->op == OP_WRITE) {
 | 
					      if (p->op == OP_WRITE) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue