rename 'disc' as 'memory'

the old 'disc' flag to open defaulted TRUE and disabled read via disc if you
set it FALSE, which was very confusing

replace it with a flag called 'memory' which defaults FALSE and forces
read via memory if set TRUE

'disc' is still there and still works, it's just tagged as deprecated

see https://github.com/jcupitt/libvips/issues/677
This commit is contained in:
John Cupitt 2017-07-07 09:45:49 +01:00
parent 7d98b39843
commit 9a1c3f9405
4 changed files with 35 additions and 13 deletions

View File

@ -9,6 +9,7 @@
- add vips_thumbnail_image() - add vips_thumbnail_image()
- better prefix guessing on Windows, thanks tumagonx - better prefix guessing on Windows, thanks tumagonx
- savers support a "page_height" option for multipage save - savers support a "page_height" option for multipage save
- rename 'disc' as 'memory' and default off
12/6/17 started 8.5.7 12/6/17 started 8.5.7
- transform cmyk->rgb automatically on write if there's an embedded profile - transform cmyk->rgb automatically on write if there's an embedded profile

View File

@ -740,12 +740,18 @@ vips_foreign_load_temp( VipsForeignLoad *load )
return( vips_image_new() ); return( vips_image_new() );
} }
/* ->memory used to be called ->disc and default TRUE. If it's been
* forced FALSE, set memory TRUE.
*/
if( !load->disc )
load->memory = TRUE;
/* We open via disc if: /* We open via disc if:
* - 'disc' is set * - 'memory' is off
* - the uncompressed image will be larger than * - the uncompressed image will be larger than
* vips_get_disc_threshold() * vips_get_disc_threshold()
*/ */
if( load->disc && if( !load->memory &&
image_size > disc_threshold ) { image_size > disc_threshold ) {
#ifdef DEBUG #ifdef DEBUG
printf( "vips_foreign_load_temp: disc temp\n" ); printf( "vips_foreign_load_temp: disc temp\n" );
@ -997,12 +1003,12 @@ vips_foreign_load_class_init( VipsForeignLoadClass *class )
G_STRUCT_OFFSET( VipsForeignLoad, flags ), G_STRUCT_OFFSET( VipsForeignLoad, flags ),
VIPS_TYPE_FOREIGN_FLAGS, VIPS_FOREIGN_NONE ); VIPS_TYPE_FOREIGN_FLAGS, VIPS_FOREIGN_NONE );
VIPS_ARG_BOOL( class, "disc", 7, VIPS_ARG_BOOL( class, "memory", 7,
_( "Disc" ), _( "Memory" ),
_( "Open to disc" ), _( "Force open via memory" ),
VIPS_ARGUMENT_OPTIONAL_INPUT, VIPS_ARGUMENT_OPTIONAL_INPUT,
G_STRUCT_OFFSET( VipsForeignLoad, disc ), G_STRUCT_OFFSET( VipsForeignLoad, memory ),
TRUE ); FALSE );
VIPS_ARG_ENUM( class, "access", 8, VIPS_ARG_ENUM( class, "access", 8,
_( "Access" ), _( "Access" ),
@ -1025,6 +1031,13 @@ vips_foreign_load_class_init( VipsForeignLoadClass *class )
G_STRUCT_OFFSET( VipsForeignLoad, fail ), G_STRUCT_OFFSET( VipsForeignLoad, fail ),
FALSE ); FALSE );
VIPS_ARG_BOOL( class, "disc", 12,
_( "Disc" ),
_( "Open to disc" ),
VIPS_ARGUMENT_OPTIONAL_INPUT | VIPS_ARGUMENT_DEPRECATED,
G_STRUCT_OFFSET( VipsForeignLoad, disc ),
TRUE );
} }
static void static void

View File

@ -119,9 +119,9 @@ typedef struct _VipsForeignLoad {
VipsForeign parent_object; VipsForeign parent_object;
/*< private >*/ /*< private >*/
/* Open to disc (default is to open to memory). /* Set TRUE to force open via memory.
*/ */
gboolean disc; gboolean memory;
/* Type of access upstream wants and the loader must supply. /* Type of access upstream wants and the loader must supply.
*/ */
@ -153,6 +153,11 @@ typedef struct _VipsForeignLoad {
/* Set this to tag the operation as nocache. /* Set this to tag the operation as nocache.
*/ */
gboolean nocache; gboolean nocache;
/* Deprecated: the memory option used to be called disc and default
* TRUE.
*/
gboolean disc;
} VipsForeignLoad; } VipsForeignLoad;
typedef struct _VipsForeignLoadClass { typedef struct _VipsForeignLoadClass {

View File

@ -1831,7 +1831,7 @@ vips_filename_get_options( const char *vips_filename )
* Optional arguments: * Optional arguments:
* *
* * @access: hint #VipsAccess mode to loader * * @access: hint #VipsAccess mode to loader
* * @disc: load via a temporary disc file * * @memory: force load via memory
* *
* vips_image_new_from_file() opens @name for reading. It can load files * vips_image_new_from_file() opens @name for reading. It can load files
* in many image formats, including VIPS, TIFF, PNG, JPEG, FITS, Matlab, * in many image formats, including VIPS, TIFF, PNG, JPEG, FITS, Matlab,
@ -1856,12 +1856,15 @@ vips_filename_get_options( const char *vips_filename )
* *
* In #VIPS_ACCESS_RANDOM mode, small images are decompressed to memory and * In #VIPS_ACCESS_RANDOM mode, small images are decompressed to memory and
* then processed from there. Large images are decompressed to temporary * then processed from there. Large images are decompressed to temporary
* random-access files on disc and then processed from there. Set @disc to * random-access files on disc and then processed from there.
* %TRUE to force loading via disc. See vips_image_new_temp_file() for an *
* Set @memory to %TRUE to force loading via memory. The default is to load
* large random access images via temporary disc files. See
* vips_image_new_temp_file() for an
* explanation of how VIPS selects a location for the temporary file. * explanation of how VIPS selects a location for the temporary file.
* *
* The disc threshold can be set with the "--vips-disc-threshold" * The disc threshold can be set with the "--vips-disc-threshold"
* command-line argument, or the VIPS_DISC_THRESHOLD environment variable. * command-line argument, or the `VIPS_DISC_THRESHOLD` environment variable.
* The value is a simple integer, but can take a unit postfix of "k", * The value is a simple integer, but can take a unit postfix of "k",
* "m" or "g" to indicate kilobytes, megabytes or gigabytes. * "m" or "g" to indicate kilobytes, megabytes or gigabytes.
* The default threshold is 100 MB. * The default threshold is 100 MB.