fix segv in is_quote etc
This commit is contained in:
		
							parent
							
								
									c3d221f2da
								
							
						
					
					
						commit
						7358e0933c
					
				
							
								
								
									
										12
									
								
								src/write.c
								
								
								
								
							
							
						
						
									
										12
									
								
								src/write.c
								
								
								
								
							|  | @ -13,28 +13,32 @@ static void write(pic_state *, pic_value, XFILE *file); | ||||||
| static bool | static bool | ||||||
| is_quote(pic_state *pic, pic_value pair) | is_quote(pic_state *pic, pic_value pair) | ||||||
| { | { | ||||||
|   return pic_nil_p(pic_cddr(pic, pair)) |   return pic_pair_p(pic_cdr(pic, pair)) | ||||||
|  |     && pic_nil_p(pic_cddr(pic, pair)) | ||||||
|     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sQUOTE)); |     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sQUOTE)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static bool | static bool | ||||||
| is_unquote(pic_state *pic, pic_value pair) | is_unquote(pic_state *pic, pic_value pair) | ||||||
| { | { | ||||||
|   return pic_nil_p(pic_cddr(pic, pair)) |   return pic_pair_p(pic_cdr(pic, pair)) | ||||||
|  |     && pic_nil_p(pic_cddr(pic, pair)) | ||||||
|     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sUNQUOTE)); |     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sUNQUOTE)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static bool | static bool | ||||||
| is_unquote_splicing(pic_state *pic, pic_value pair) | is_unquote_splicing(pic_state *pic, pic_value pair) | ||||||
| { | { | ||||||
|   return pic_nil_p(pic_cddr(pic, pair)) |   return pic_pair_p(pic_cdr(pic, pair)) | ||||||
|  |     && pic_nil_p(pic_cddr(pic, pair)) | ||||||
|     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sUNQUOTE_SPLICING)); |     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sUNQUOTE_SPLICING)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| static bool | static bool | ||||||
| is_quasiquote(pic_state *pic, pic_value pair) | is_quasiquote(pic_state *pic, pic_value pair) | ||||||
| { | { | ||||||
|   return pic_nil_p(pic_cddr(pic, pair)) |   return pic_pair_p(pic_cdr(pic, pair)) | ||||||
|  |     && pic_nil_p(pic_cddr(pic, pair)) | ||||||
|     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sQUASIQUOTE)); |     && pic_eq_p(pic_car(pic, pair), pic_symbol_value(pic->sQUASIQUOTE)); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki