- if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
- @ini_set('memory_limit', WP_MEMORY_LIMIT);
+ if ( function_exists( 'memory_get_usage' ) ) {
+ $current_limit = @ini_get( 'memory_limit' );
+ $current_limit_int = intval( $current_limit );
+ if ( false !== stripos( $current_limit, 'G' ) )
+ $current_limit_int *= 1024;
+ $wp_limit_int = intval( WP_MEMORY_LIMIT );
+ if ( false !== stripos( WP_MEMORY_LIMIT, 'G' ) )
+ $wp_limit_int *= 1024;
+
+ if ( -1 != $current_limit && ( -1 == WP_MEMORY_LIMIT || $current_limit_int < $wp_limit_int ) )
+ @ini_set( 'memory_limit', WP_MEMORY_LIMIT );
+ }