Show
Ignore:
Timestamp:
01/21/09 08:45:09 (5 years ago)
Author:
alex94040
Message:

Fixes #25 (Large floats don't validate). Code by VexedPanda?, code review by alex94040.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/wwwroot/includes/qcodo/_core/framework/QType.class.php

    r22 r48  
    123123 
    124124                                case QType::Integer: 
     125                                        if (strlen($mixItem) == 0) 
     126                                                return null; 
     127                                        if(($mixItem !== true) && ((((string)(int) $mixItem) === ((string) $mixItem)) 
     128                                                                || preg_match('/^-?\d+$/',$mixItem) === 1)) 
     129                                                return $mixItem; 
     130                                        else 
     131                                                throw new QInvalidCastException(sprintf('Invalid integer: %s', $mixItem)); 
    125132                                case QType::Float: 
    126133                                        if (strlen($mixItem) == 0) 
    127134                                                return null; 
     135                                        if (!is_numeric($mixItem))  
     136                                                throw new QInvalidCastException(sprintf('Invalid float: %s', $mixItem));  
    128137                                        return $mixItem; 
    129138                         
     
    215224                 
    216225                /** 
    217                  * Used by the Qcodo Code Generator to allow for the code generation of 
     226                 * Used by the QCubed Code Generator to allow for the code generation of 
    218227                 * the actual "Type::Xxx" constant, instead of the text of the constant, 
    219228                 * in generated code. 
     
    285294                 
    286295                /** 
    287                  * Used by the Qcodo Code Generator and QSoapService class to allow for the xml generation of 
     296                 * Used by the QCubed Code Generator and QSoapService class to allow for the xml generation of 
    288297                 * the actual "s:type" Soap Variable types. 
    289298                 *