Don't try to get an integer representation of float.
	
		
			
	
		
	
	
		
	
		
			All checks were successful
		
		
	
	
		
			
				
	
				 The build was successful.
				
			
		
		
	
	
				
					
				
			
		
			All checks were successful
		
		
	
	 The build was successful.
				
			This commit is contained in:
		| @@ -329,29 +329,6 @@ static sxi32 MemObjBooleanValue(ph7_value *pObj) { | ||||
| 	/* NOT REACHED */ | ||||
| 	return 0; | ||||
| } | ||||
| /* | ||||
|  * If the ph7_value is of type real,try to make it an integer also. | ||||
|  */ | ||||
| static sxi32 MemObjTryIntger(ph7_value *pObj) { | ||||
| 	pObj->x.iVal = MemObjRealToInt(&(*pObj)); | ||||
| 	/* Only mark the value as an integer if | ||||
| 	** | ||||
| 	**    (1) the round-trip conversion real->int->real is a no-op, and | ||||
| 	**    (2) The integer is neither the largest nor the smallest | ||||
| 	**        possible integer | ||||
| 	** | ||||
| 	** The second and third terms in the following conditional enforces | ||||
| 	** the second condition under the assumption that addition overflow causes | ||||
| 	** values to wrap around.  On x86 hardware, the third term is always | ||||
| 	** true and could be omitted.  But we leave it in because other | ||||
| 	** architectures might behave differently. | ||||
| 	*/ | ||||
| 	if(pObj->rVal == (ph7_real)pObj->x.iVal && pObj->x.iVal > SMALLEST_INT64 | ||||
| 			&& pObj->x.iVal < LARGEST_INT64) { | ||||
| 		pObj->iFlags |= MEMOBJ_INT; | ||||
| 	} | ||||
| 	return SXRET_OK; | ||||
| } | ||||
| /* | ||||
|  * Convert a ph7_value to type integer.Invalidate any prior representations. | ||||
|  */ | ||||
| @@ -653,17 +630,6 @@ PH7_PRIVATE sxi32 PH7_MemObjToNumeric(ph7_value *pObj) { | ||||
| 	} | ||||
| 	return SXRET_OK; | ||||
| } | ||||
| /* | ||||
|  * Try a get an integer representation of the given ph7_value. | ||||
|  * If the ph7_value is not of type real,this function is a no-op. | ||||
|  */ | ||||
| PH7_PRIVATE sxi32 PH7_MemObjTryInteger(ph7_value *pObj) { | ||||
| 	if(pObj->iFlags & MEMOBJ_REAL) { | ||||
| 		/* Work only with reals */ | ||||
| 		MemObjTryIntger(&(*pObj)); | ||||
| 	} | ||||
| 	return SXRET_OK; | ||||
| } | ||||
| /* | ||||
|  * Initialize a ph7_value to the null type. | ||||
|  */ | ||||
| @@ -1075,8 +1041,6 @@ PH7_PRIVATE sxi32 PH7_MemObjAdd(ph7_value *pObj1, ph7_value *pObj2, int bAddStor | ||||
| 			b = pObj2->rVal; | ||||
| 			pObj1->rVal = a + b; | ||||
| 			MemObjSetType(pObj1, MEMOBJ_REAL); | ||||
| 			/* Try to get an integer representation also */ | ||||
| 			MemObjTryIntger(&(*pObj1)); | ||||
| 		} else { | ||||
| 			/* Integer arithmetic */ | ||||
| 			sxi64 a, b; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user