fix broken pic_float_p
This commit is contained in:
		
							parent
							
								
									dcb3820054
								
							
						
					
					
						commit
						ae376b4903
					
				|  | @ -43,7 +43,7 @@ typedef struct { | |||
| } pic_value; | ||||
| 
 | ||||
| #define pic_ptr(v) ((void *)((long long)0xffffffffffff & (long long)(v).u.data)) | ||||
| #define pic_vtype(v) (((v).u.type_ & 0xf0000)>>16) | ||||
| #define pic_vtype(v) (((unsigned)0xfff00000 >= (v).u.type_) ? PIC_VTYPE_FLOAT : (((v).u.type_ & 0xf0000)>>16)) | ||||
| #define pic_init_value(v,vtype) (((v).u.type_ = ((unsigned int)0xfff00000|(unsigned int)((vtype)<<16))), (v).u.i = 0) | ||||
| 
 | ||||
| #else | ||||
|  |  | |||
							
								
								
									
										38
									
								
								src/value.c
								
								
								
								
							
							
						
						
									
										38
									
								
								src/value.c
								
								
								
								
							|  | @ -3,14 +3,9 @@ | |||
| 
 | ||||
| #include "picrin.h" | ||||
| 
 | ||||
| #if PIC_NAN_BOXING | ||||
| 
 | ||||
| enum pic_tt | ||||
| pic_type(pic_value v) | ||||
| { | ||||
|   if ((int)0xfff00000 >= v.u.type_) | ||||
|     return PIC_TT_FLOAT; | ||||
| 
 | ||||
|   switch (pic_vtype(v)) { | ||||
|   case PIC_VTYPE_NIL: | ||||
|     return PIC_TT_NIL; | ||||
|  | @ -37,39 +32,6 @@ pic_type(pic_value v) | |||
|   abort(); | ||||
| } | ||||
| 
 | ||||
| #else | ||||
| 
 | ||||
| enum pic_tt | ||||
| pic_type(pic_value v) | ||||
| { | ||||
|   switch (pic_vtype(v)) { | ||||
|   case PIC_VTYPE_NIL: | ||||
|     return PIC_TT_NIL; | ||||
|   case PIC_VTYPE_TRUE: | ||||
|     return PIC_TT_BOOL; | ||||
|   case PIC_VTYPE_FALSE: | ||||
|     return PIC_TT_BOOL; | ||||
|   case PIC_VTYPE_UNDEF: | ||||
|     return PIC_TT_UNDEF; | ||||
|   case PIC_VTYPE_FLOAT: | ||||
|     return PIC_TT_FLOAT; | ||||
|   case PIC_VTYPE_INT: | ||||
|     return PIC_TT_INT; | ||||
|   case PIC_VTYPE_SYMBOL: | ||||
|     return PIC_TT_SYMBOL; | ||||
|   case PIC_VTYPE_CHAR: | ||||
|     return PIC_TT_CHAR; | ||||
|   case PIC_VTYPE_EOF: | ||||
|     return PIC_TT_EOF; | ||||
|   case PIC_VTYPE_HEAP: | ||||
|     return ((struct pic_object *)v.u.data)->tt; | ||||
|   } | ||||
|   /* logic flaw (suppress warnings gcc will emit) */ | ||||
|   abort(); | ||||
| } | ||||
| 
 | ||||
| #endif | ||||
| 
 | ||||
| const char * | ||||
| pic_type_repr(enum pic_tt tt) | ||||
| { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Yuichi Nishiwaki
						Yuichi Nishiwaki