Followup r82060
authorSam Reed <reedy@users.mediawiki.org>
Thu, 3 Mar 2011 23:22:39 +0000 (23:22 +0000)
committerSam Reed <reedy@users.mediawiki.org>
Thu, 3 Mar 2011 23:22:39 +0000 (23:22 +0000)
Calling intval() on an array of integers isn't going to get people very far

simplify logic, and then only do validation if $min or $max are not null

includes/api/ApiBase.php

index 141d11c..26bb18c 100644 (file)
@@ -727,18 +727,18 @@ abstract class ApiBase {
                                                $enforceLimits = isset ( $paramSettings[self::PARAM_RANGE_ENFORCE] )
                                                                ? $paramSettings[self::PARAM_RANGE_ENFORCE] : false;
 
-                                               if ( !is_null( $min ) || !is_null( $max ) ) {
-                                                       if ( is_array( $value ) ) {
-                                                               $value = array_map( 'intval', $value );
+                                               if ( is_array( $value ) ) {
+                                                       $value = array_map( 'intval', $value );
+                                                       if ( !is_null( $min ) || !is_null( $max ) ) {
                                                                foreach ( $value as &$v ) {
                                                                        $this->validateLimit( $paramName, $v, $min, $max, null, $enforceLimits );
                                                                }
-                                                       } else {
-                                                               $value = intval( $value );
-                                                               $this->validateLimit( $paramName, $value, $min, $max, null, $enforceLimits );
                                                        }
                                                } else {
                                                        $value = intval( $value );
+                                                       if ( !is_null( $min ) || !is_null( $max ) ) {
+                                                               $this->validateLimit( $paramName, $value, $min, $max, null, $enforceLimits );
+                                                       }
                                                }
                                                break;
                                        case 'limit':