diff options
Diffstat (limited to 'media-libs/jpeg/files/jpeg-7-maxmem_sysconf.patch')
-rw-r--r-- | media-libs/jpeg/files/jpeg-7-maxmem_sysconf.patch | 49 |
1 files changed, 0 insertions, 49 deletions
diff --git a/media-libs/jpeg/files/jpeg-7-maxmem_sysconf.patch b/media-libs/jpeg/files/jpeg-7-maxmem_sysconf.patch deleted file mode 100644 index 9ea87d4fa399..000000000000 --- a/media-libs/jpeg/files/jpeg-7-maxmem_sysconf.patch +++ /dev/null @@ -1,49 +0,0 @@ -# Make a reasonable guess about memory limits using sysconf(). -# includes 5% slop factor as suggested in documentation. - ---- jpeg-7/jmemansi.c -+++ jpeg-7/jmemansi.c -@@ -12,6 +12,15 @@ - * is shoved onto the user. - */ - -+#include <unistd.h> -+ -+#ifdef __FreeBSD__ -+# include <sys/types.h> -+# include <sys/sysctl.h> -+# include <sys/vmmeter.h> -+# include <vm/vm_param.h> -+#endif -+ - #define JPEG_INTERNALS - #include "jinclude.h" - #include "jpeglib.h" -@@ -157,7 +166,26 @@ - GLOBAL(long) - jpeg_mem_init (j_common_ptr cinfo) - { -- return DEFAULT_MAX_MEM; /* default for max_memory_to_use */ -+#ifdef _SC_AVPHYS_PAGES -+ long phys_size; -+ -+ if ((phys_size = sysconf(_SC_AVPHYS_PAGES)) == -1) -+ return DEFAULT_MAX_MEM; /* default for max_memory_to_use */ -+ if ((phys_size *= sysconf(_SC_PAGESIZE)) < 0) -+ return DEFAULT_MAX_MEM; -+ return (long) (phys_size * 0.95); -+#elif defined(HAVE_SYSCTL) && defined(HW_PHYSMEM) -+ /* This works on *bsd and darwin. */ -+ unsigned int physmem; -+ size_t len = sizeof physmem; -+ static int mib[2] = { CTL_HW, HW_PHYSMEM }; -+ -+ if (sysctl (mib, ARRAY_SIZE (mib), &physmem, &len, NULL, 0) == 0 -+ && len == sizeof (physmem)) -+ return (long) (physmem * 0.95); -+#endif -+ -+ return DEFAULT_MAX_MEM; - } - - GLOBAL(void) |