Introduce WP_MAX_MEMORY_LIMIT constant for the high memory limit we set when image processing and unzipping.

Ensure it is always filterable by plugins as well as configurable in wp-config
Fixes #13847 props hakre


git-svn-id: https://develop.svn.wordpress.org/trunk@17749 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Peter Westwood 2011-04-28 16:25:36 +00:00
parent f504e221e1
commit 8f1955ddf5
6 changed files with 10 additions and 6 deletions

View File

@ -106,7 +106,7 @@ else
require(ABSPATH . 'wp-admin/menu.php'); require(ABSPATH . 'wp-admin/menu.php');
if ( current_user_can( 'manage_options' ) ) if ( current_user_can( 'manage_options' ) )
@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', '256M' ) ); @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
do_action('admin_init'); do_action('admin_init');

View File

@ -518,7 +518,7 @@ function unzip_file($file, $to) {
return new WP_Error('fs_unavailable', __('Could not access filesystem.')); return new WP_Error('fs_unavailable', __('Could not access filesystem.'));
// Unzip can use a lot of memory, but not this much hopefully // Unzip can use a lot of memory, but not this much hopefully
@ini_set('memory_limit', '256M'); @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
$needed_dirs = array(); $needed_dirs = array();
$to = trailingslashit($to); $to = trailingslashit($to);

View File

@ -391,7 +391,7 @@ function image_edit_apply_changes($img, $changes) {
function stream_preview_image($post_id) { function stream_preview_image($post_id) {
$post = get_post($post_id); $post = get_post($post_id);
@ini_set('memory_limit', '256M'); @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
$img = load_image_to_edit( $post_id, $post->post_mime_type, array(400, 400) ); $img = load_image_to_edit( $post_id, $post->post_mime_type, array(400, 400) );
if ( !is_resource($img) ) if ( !is_resource($img) )
@ -496,7 +496,7 @@ function wp_save_image($post_id) {
$return = new stdClass; $return = new stdClass;
$success = $delete = $scaled = $nocrop = false; $success = $delete = $scaled = $nocrop = false;
$post = get_post($post_id); $post = get_post($post_id);
@ini_set('memory_limit', '256M'); @ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
$img = load_image_to_edit($post_id, $post->post_mime_type); $img = load_image_to_edit($post_id, $post->post_mime_type);
if ( !is_resource($img) ) { if ( !is_resource($img) ) {

View File

@ -24,6 +24,10 @@ function wp_initial_constants( ) {
} }
} }
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
}
/** /**
* The $blog_id global, which you can change in the config allows you to create a simple * The $blog_id global, which you can change in the config allows you to create a simple
* multiple blog installation using just one WordPress and changing $blog_id around. * multiple blog installation using just one WordPress and changing $blog_id around.

View File

@ -250,7 +250,7 @@ function wp_load_image( $file ) {
return __('The GD image library is not installed.'); return __('The GD image library is not installed.');
// Set artificially high because GD uses uncompressed images in memory // Set artificially high because GD uses uncompressed images in memory
@ini_set('memory_limit', '256M'); @ini_set( 'memory_limit', apply_filters( 'image_memory_limit', WP_MAX_MEMORY_LIMIT ) );
$image = imagecreatefromstring( file_get_contents( $file ) ); $image = imagecreatefromstring( file_get_contents( $file ) );
if ( !is_resource( $image ) ) if ( !is_resource( $image ) )

View File

@ -20,7 +20,7 @@ require( ABSPATH . WPINC . '/load.php' );
require( ABSPATH . WPINC . '/default-constants.php' ); require( ABSPATH . WPINC . '/default-constants.php' );
require( ABSPATH . WPINC . '/version.php' ); require( ABSPATH . WPINC . '/version.php' );
// Set initial default constants including WP_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR and WP_CACHE. // Set initial default constants including WP_MEMORY_LIMIT, WP_MAX_MEMORY_LIMIT, WP_DEBUG, WP_CONTENT_DIR and WP_CACHE.
wp_initial_constants( ); wp_initial_constants( );
// Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php. // Disable magic quotes at runtime. Magic quotes are added using wpdb later in wp-settings.php.