MagickCore/matrix-private.h \
MagickCore/memory.c \
MagickCore/memory_.h \
+ MagickCore/memory-private.h \
MagickCore/method-attribute.h \
MagickCore/methods.h \
MagickCore/mime.c \
MagickCore/magick-private.h \
MagickCore/magic-private.h \
MagickCore/matrix-private.h \
+ MagickCore/memory-private.h \
MagickCore/methods-private.h \
MagickCore/mime-private.h \
MagickCore/mime-private.h \
--- /dev/null
+/*
+ Copyright 1999-2012 ImageMagick Studio LLC, a non-profit organization
+ dedicated to making software imaging solutions freely available.
+
+ You may not use this file except in compliance with the License.
+ obtain a copy of the License at
+
+ http://www.imagemagick.org/script/license.php
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+ MagickCore private memory methods.
+*/
+#ifndef _MAGICKCORE_MEMORY_PRIVATE_H
+#define _MAGICKCORE_MEMORY_PRIVATE_H
+
+#if defined(__cplusplus) || defined(c_plusplus)
+extern "C" {
+#endif
+
+#define CACHE_LINE_SIZE (16*sizeof(void *))
+#define CacheAlign(size) ((size) < CACHE_LINE_SIZE ? CACHE_LINE_SIZE : (size))
+
+#if defined(__cplusplus) || defined(c_plusplus)
+}
+#endif
+
+#endif
#include "MagickCore/exception.h"
#include "MagickCore/exception-private.h"
#include "MagickCore/memory_.h"
+#include "MagickCore/memory-private.h"
#include "MagickCore/semaphore.h"
#include "MagickCore/string_.h"
\f
#define BlockHeader(block) ((size_t *) (block)-1)
#define BlockSize 4096
#define BlockThreshold 1024
-#define AlignedSize (16*sizeof(void *))
#define MaxBlockExponent 16
#define MaxBlocks ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1)
#define MaxSegments 1024
% o quantum: the number of bytes in each quantum.
%
*/
-
-static inline size_t MagickMax(const size_t x,const size_t y)
-{
- if (x > y)
- return(x);
- return(y);
-}
-
MagickExport void *AcquireAlignedMemory(const size_t count,const size_t quantum)
{
size_t
void
*memory;
- if (posix_memalign(&memory,AlignedSize,MagickMax(size,AlignedSize)) == 0)
+ if (posix_memalign(&memory,CACHE_LINE_SIZE,CacheAlign(size)) == 0)
return(memory);
}
#endif
- return(malloc(MagickMax(size,AlignedSize)));
+ return(malloc(CacheAlign(size)));
}
\f
#if defined(MAGICKCORE_ZERO_CONFIGURATION_SUPPORT)
#include "MagickCore/exception.h"
#include "MagickCore/exception-private.h"
#include "MagickCore/memory_.h"
+#include "MagickCore/memory-private.h"
#include "MagickCore/semaphore.h"
#include "MagickCore/semaphore-private.h"
#include "MagickCore/string_.h"
%
*/
-static inline size_t MagickMax(const size_t x,const size_t y)
+static void *AcquireSemaphoreMemory(const size_t size)
{
- if (x > y)
- return(x);
- return(y);
+#if defined(MAGICKCORE_HAVE_POSIX_MEMALIGN)
+ {
+ void
+ *memory;
+
+ if (posix_memalign(&memory,CACHE_LINE_SIZE,CacheAlign(size)) == 0)
+ return(memory);
+ }
+#endif
+ return(malloc(CacheAlign(size)));
}
MagickExport SemaphoreInfo *AllocateSemaphoreInfo(void)
{
-#define AlignedSize (16*sizeof(void *))
-
SemaphoreInfo
*semaphore_info;
/*
Allocate semaphore.
*/
- semaphore_info=(SemaphoreInfo *) malloc(MagickMax(sizeof(*semaphore_info),
- AlignedSize));
+ semaphore_info=(SemaphoreInfo *) AcquireSemaphoreMemory(
+ sizeof(*semaphore_info));
if (semaphore_info == (SemaphoreInfo *) NULL)
ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed");
(void) ResetMagickMemory(semaphore_info,0,sizeof(SemaphoreInfo));
*/
#define MagickPackageName "ImageMagick"
#define MagickCopyright "Copyright (C) 1999-2012 ImageMagick Studio LLC"
-#define MagickSVNRevision "7544"
+#define MagickSVNRevision "7561"
#define MagickLibVersion 0x700
#define MagickLibVersionText "7.0.0"
#define MagickLibVersionNumber 7,0,0
#define MagickLibAddendum "-0"
#define MagickLibInterface 7
#define MagickLibMinInterface 7
-#define MagickReleaseDate "2012-04-18"
+#define MagickReleaseDate "2012-04-19"
#define MagickChangeDate "20110801"
#define MagickAuthoritativeURL "http://www.imagemagick.org"
#if defined(MAGICKCORE_OPENMP_SUPPORT)
MagickCore/magick-type.h MagickCore/magick.h \
MagickCore/matrix.c MagickCore/matrix.h \
MagickCore/matrix-private.h MagickCore/memory.c \
- MagickCore/memory_.h MagickCore/method-attribute.h \
- MagickCore/methods.h MagickCore/mime.c MagickCore/mime.h \
- MagickCore/module.c MagickCore/module.h MagickCore/monitor.c \
- MagickCore/monitor.h MagickCore/monitor-private.h \
- MagickCore/montage.c MagickCore/montage.h \
- MagickCore/morphology.c MagickCore/morphology.h \
- MagickCore/morphology-private.h MagickCore/nt-base.h \
- MagickCore/nt-base-private.h MagickCore/nt-feature.h \
- MagickCore/option.c MagickCore/option.h MagickCore/paint.c \
- MagickCore/paint.h MagickCore/pixel.c MagickCore/pixel.h \
+ MagickCore/memory_.h MagickCore/memory-private.h \
+ MagickCore/method-attribute.h MagickCore/methods.h \
+ MagickCore/mime.c MagickCore/mime.h MagickCore/module.c \
+ MagickCore/module.h MagickCore/monitor.c MagickCore/monitor.h \
+ MagickCore/monitor-private.h MagickCore/montage.c \
+ MagickCore/montage.h MagickCore/morphology.c \
+ MagickCore/morphology.h MagickCore/morphology-private.h \
+ MagickCore/nt-base.h MagickCore/nt-base-private.h \
+ MagickCore/nt-feature.h MagickCore/option.c \
+ MagickCore/option.h MagickCore/paint.c MagickCore/paint.h \
+ MagickCore/pixel.c MagickCore/pixel.h \
MagickCore/pixel-accessor.h MagickCore/policy.c \
MagickCore/policy.h MagickCore/PreRvIcccm.c \
MagickCore/PreRvIcccm.h MagickCore/prepress.c \
MagickCore/matrix-private.h \
MagickCore/memory.c \
MagickCore/memory_.h \
+ MagickCore/memory-private.h \
MagickCore/method-attribute.h \
MagickCore/methods.h \
MagickCore/mime.c \
MagickCore/magick-private.h \
MagickCore/magic-private.h \
MagickCore/matrix-private.h \
+ MagickCore/memory-private.h \
MagickCore/methods-private.h \
MagickCore/mime-private.h \
MagickCore/mime-private.h \
<name>ImageMagick</name>
<shortdesc xml:lang="en">ImageMagick: convert, edit, and compose images.</shortdesc>
<homepage rdf:resource="http://www.imagemagick.org/"/>
- <created>2012-04-18</created>
+ <created>2012-04-19</created>
<description xml:lang="en">
ImageMagick® is a software suite to create, edit, compose, or convert bitmap images. It can read and write images in a variety of formats (over 100) including DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PhotoCD, PNG, Postscript, SVG, and TIFF. Use ImageMagick to resize, flip, mirror, rotate, distort, shear and transform images, adjust image colors, apply various special effects, or draw text, lines, polygons, ellipses and Bézier curves.
<release>
<Version>
<name>stable</name>
- <created>2012-04-18</created>
+ <created>2012-04-19</created>
<revision>7.0.0</revision>
<patch-level>-0</patch-level>
</Version>
<configure name="VERSION" value="7.0.0"/>
<configure name="LIB_VERSION" value="0x700"/>
<configure name="LIB_VERSION_NUMBER" value="7,0,0,0"/>
- <configure name="SVN_REVISION" value="7544" />
- <configure name="RELEASE_DATE" value="2012-04-18"/>
+ <configure name="SVN_REVISION" value="7561" />
+ <configure name="RELEASE_DATE" value="2012-04-19"/>
<configure name="CONFIGURE" value="./configure "/>
<configure name="PREFIX" value="/usr/local"/>
<configure name="EXEC-PREFIX" value="/usr/local"/>
MAGICK_LIBRARY_VERSION_INFO=$MAGICK_LIBRARY_CURRENT:$MAGICK_LIBRARY_REVISION:$MAGICK_LIBRARY_AGE
-MAGICK_SVN_REVISION=7544
+MAGICK_SVN_REVISION=7561