MagickCore  6.8.5
memory.c File Reference
Include dependency graph for memory.c:

Data Structures

struct  _DataSegmentInfo
struct  _MemoryInfo
struct  _MagickMemoryMethods

Macros

#define BlockFooter(block, size)   ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t)))
#define BlockHeader(block)   ((size_t *) (block)-1)
#define BlockSize   4096
#define BlockThreshold   1024
#define MaxBlockExponent   16
#define MaxBlocks   ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1)
#define MaxSegments   1024
#define MemoryGuard   ((0xdeadbeef << 31)+0xdeafdeed)
#define NextBlock(block)   ((char *) (block)+SizeOfBlock(block))
#define NextBlockInList(block)   (*(void **) (block))
#define PreviousBlock(block)   ((char *) (block)-(*((size_t *) (block)-2)))
#define PreviousBlockBit   0x01
#define PreviousBlockInList(block)   (*((void **) (block)+1))
#define SegmentSize   (2*1024*1024)
#define SizeMask   (~0x01)
#define SizeOfBlock(block)   (*BlockHeader(block) & SizeMask)
#define AlignedExtent(size, alignment)   (((size)+((alignment)-1)) & ~((alignment)-1))

Typedefs

typedef struct _DataSegmentInfo DataSegmentInfo
typedef struct _MemoryInfo MemoryInfo
typedef struct _MagickMemoryMethods MagickMemoryMethods

Functions

MagickExport void * AcquireAlignedMemory (const size_t count, const size_t quantum)
MagickExport void * AcquireMagickMemory (const size_t size)
MagickExport void * AcquireQuantumMemory (const size_t count, const size_t quantum)
MagickExport void * CopyMagickMemory (void *destination, const void *source, const size_t size)
MagickExport void DestroyMagickMemory (void)
MagickExport void GetMagickMemoryMethods (AcquireMemoryHandler *acquire_memory_handler, ResizeMemoryHandler *resize_memory_handler, DestroyMemoryHandler *destroy_memory_handler)
MagickExport void * RelinquishAlignedMemory (void *memory)
MagickExport void * RelinquishMagickMemory (void *memory)
MagickExport void * ResetMagickMemory (void *memory, int byte, const size_t size)
MagickExport void * ResizeMagickMemory (void *memory, const size_t size)
MagickExport void * ResizeQuantumMemory (void *memory, const size_t count, const size_t quantum)
MagickExport void SetMagickMemoryMethods (AcquireMemoryHandler acquire_memory_handler, ResizeMemoryHandler resize_memory_handler, DestroyMemoryHandler destroy_memory_handler)

Variables

static MagickMemoryMethods memory_methods

Macro Definition Documentation

#define AlignedExtent (   size,
  alignment 
)    (((size)+((alignment)-1)) & ~((alignment)-1))
#define BlockFooter (   block,
  size 
)    ((size_t *) ((char *) (block)+(size)-2*sizeof(size_t)))

Referenced by RelinquishMagickMemory().

#define BlockHeader (   block)    ((size_t *) (block)-1)

Referenced by RelinquishMagickMemory().

#define BlockSize   4096
#define BlockThreshold   1024
#define MaxBlockExponent   16
#define MaxBlocks   ((BlockThreshold/(4*sizeof(size_t)))+MaxBlockExponent+1)

Referenced by AcquireMagickMemory().

#define MaxSegments   1024

Referenced by AcquireMagickMemory().

#define MemoryGuard   ((0xdeadbeef << 31)+0xdeafdeed)
#define NextBlock (   block)    ((char *) (block)+SizeOfBlock(block))

Referenced by RelinquishMagickMemory().

#define NextBlockInList (   block)    (*(void **) (block))
#define PreviousBlock (   block)    ((char *) (block)-(*((size_t *) (block)-2)))

Referenced by RelinquishMagickMemory().

#define PreviousBlockBit   0x01

Referenced by RelinquishMagickMemory().

#define PreviousBlockInList (   block)    (*((void **) (block)+1))
#define SegmentSize   (2*1024*1024)

Referenced by AcquireMagickMemory().

#define SizeMask   (~0x01)
#define SizeOfBlock (   block)    (*BlockHeader(block) & SizeMask)

Referenced by RelinquishMagickMemory().

Typedef Documentation

typedef struct _MemoryInfo MemoryInfo

Function Documentation

MagickExport void* AcquireMagickMemory ( const size_t  size)

References _MagickMemoryMethods::acquire_memory_handler, AcquireSemaphoreInfo(), LockSemaphoreInfo(), MagickFalse, MaxBlocks, MaxSegments, memory_methods, ResetMagickMemory(), SegmentSize, SizeMask, and UnlockSemaphoreInfo().

Referenced by AcquireDistributeCacheInfo(), AcquireDrawInfo(), AcquireExceptionInfo(), AcquireFxInfo(), AcquireImage(), AcquireImageInfo(), AcquireKernelBuiltIn(), AcquirePixelList(), AcquireQuantizeInfo(), AcquireQuantumInfo(), AcquireQuantumMemory(), AcquireRadonInfo(), AcquireRandomInfo(), AcquireResampleFilter(), AcquireResizeFilter(), AcquireSignatureInfo(), AcquireStreamInfo(), AcquireStringInfo(), AcquireTimerInfo(), AcquireTokenInfo(), AddChildToXMLTree(), AddValueToSplayTree(), AppendValueToLinkedList(), Ascii85Initialize(), Classify(), ClassifyImageColors(), CloneBlobInfo(), CloneDrawInfo(), CloneImage(), CloneImageView(), CloneKernelInfo(), CloneMontageInfo(), CloneQuantizeInfo(), ConvertPathToPolygon(), DrawImage(), GetCubeInfo(), GetImageAttribute(), GetImageDynamicThreshold(), GetNodeInfo(), GetThresholdMapFile(), InitializeIntervalTree(), InsertValueInLinkedList(), InsertValueInSortedLinkedList(), IsHistogramImage(), IsPaletteImage(), ListFiles(), LoadCoderList(), LoadCoderLists(), LoadColorList(), LoadColorLists(), LoadConfigureList(), LoadConfigureLists(), LoadDelegateList(), LoadLocaleList(), LoadLogList(), LoadLogLists(), LoadMagicList(), LoadMagicLists(), LoadMimeList(), LoadPolicyList(), LoadPolicyLists(), LoadTypeList(), MagickCreateThreadKey(), NewHashmap(), NewImageView(), NewImageViewRegion(), NewLinkedList(), NewSplayTree(), NewXMLTreeTag(), ParseInternalDoctype(), ParseKernelArray(), ParseProcessingInstructions(), PutEntryInHashmap(), ReacquireMemory(), ResizeMagickMemory(), SetImageRegistry(), SetMagickInfo(), and ThrowException().

MagickExport void* AcquireQuantumMemory ( const size_t  count,
const size_t  quantum 
)

References AcquireMagickMemory().

Referenced by AccelerateConvolveImage(), access_utf8(), AcquireContributionThreadSet(), AcquireFxInfo(), AcquireFxThreadSet(), AcquireHistogramThreadSet(), AcquireImageColormap(), AcquireMagickMatrix(), AcquirePixelCacheNexus(), AcquirePixelList(), AcquirePixelListThreadSet(), AcquirePixelThreadSet(), AcquirePolygonThreadSet(), AcquireQuantumPixels(), AcquireSignatureInfo(), AcquireString(), AcquireStringInfo(), AcquireUniqueSymbolicLink(), AllocateString(), BalanceSplayTree(), Base64Decode(), Base64Encode(), BlobToStringInfo(), Classify(), CloneDrawInfo(), CloneImage(), ClutImageChannel(), ColorDecisionListImage(), ColorFloodfillImage(), CompareImageLayers(), ConfigureFileToStringInfo(), ConstantString(), ContrastStretchImageChannel(), ConvertLatin1ToUTF8(), ConvertPathToPolygon(), ConvertPrimitiveToPath(), ConvertUTF16ToUTF8(), CopyDelegateFile(), DeleteImages(), DeskewImage(), DespeckleImage(), DistortImage(), DrawDashPolygon(), DrawImage(), EqualizeImageChannel(), EscapeString(), ExpandFilenames(), ExportImagePixels(), FileToBlob(), FileToImage(), FloodfillPaintImage(), fopen_utf8(), GammaImageChannel(), GaussJordanElimination(), GenerateCoefficients(), Get8BIMProperty(), GetCoderInfoList(), GetCoderList(), GetColorInfoList(), GetColorList(), GetCommandOptions(), GetConfigureInfoList(), GetConfigureList(), GetCubeInfo(), GetDelegateInfoList(), GetDelegateList(), GetExecutionPath(), GetEXIFProperty(), GetImageChannelDepth(), GetImageChannelDistortion(), GetImageChannelDistortions(), GetImageChannelFeatures(), GetImageChannelStatistics(), GetImageDynamicThreshold(), GetImageHistogram(), GetImageViewException(), GetIPTCProperty(), GetLocaleInfoList(), GetLocaleList(), GetLogInfoList(), GetLogList(), GetMagicInfoList(), GetMagickInfoList(), GetMagickList(), GetMagicList(), GetMimeInfoList(), GetMimeList(), GetNodeInfo(), GetPathComponents(), GetPolicyInfoList(), GetPolicyList(), GetThresholdMapFile(), GetTypeInfoList(), GetTypeList(), GradientImage(), HuffmanDecodeImage(), HuffmanEncodeImage(), IdentifyImage(), ImageListToArray(), ImagesToBlob(), ImageToBlob(), ImageToFile(), ImportImagePixels(), IncreaseHashmapCapacity(), InitializeIntervalTree(), InjectImageBlob(), IterateOverSplayTree(), LinearStretchImage(), ListFiles(), LZWEncodeImage(), MatteFloodfillImage(), MontageImageList(), MorphologyPrimitive(), MotionBlurImageChannel(), NewHashmap(), NewXMLTree(), open_utf8(), OptimalTau(), OptimizeLayerFrames(), PackbitsEncodeImage(), ParseEntities(), ParseInternalDoctype(), ParseProcessingInstructions(), PingBlob(), popen_utf8(), RadialBlurImageChannel(), remove_utf8(), rename_utf8(), RGBTransformImage(), SampleImage(), ScaleImage(), ScaleSpace(), SegmentImage(), SetGrayscaleImage(), SetImageChannelDepth(), SetStringInfoLength(), SetXMLTreeAttribute(), SigmoidalContrastImageChannel(), SortColormapByIntensity(), stat_utf8(), StreamImagePixels(), StringInfoToHexString(), StringInfoToString(), StringToArgv(), StringToArrayOfDoubles(), StringToList(), TraceBezier(), TraceStrokePolygon(), TransformRGBImage(), and WaveImage().

MagickExport void GetMagickMemoryMethods ( AcquireMemoryHandler acquire_memory_handler,
ResizeMemoryHandler resize_memory_handler,
DestroyMemoryHandler destroy_memory_handler 
)
MagickExport void* RelinquishMagickMemory ( void *  memory)

References BlockFooter, BlockHeader, _MagickMemoryMethods::destroy_memory_handler, LockSemaphoreInfo(), memory_methods, NextBlock, PreviousBlock, PreviousBlockBit, SizeMask, SizeOfBlock, and UnlockSemaphoreInfo().

Referenced by AccelerateConvolveImage(), access_utf8(), AcquireFxInfo(), AcquireMagickMatrix(), AcquirePolygonThreadSet(), AcquireUniqueSymbolicLink(), AddPathToXMLTree(), AnnotateImage(), BalanceSplayTree(), Base64Decode(), CanonicalXMLContent(), Classify(), ClearLinkedList(), ClutImageChannel(), ColorDecisionListImage(), ColorFloodfillImage(), CompareImageLayers(), ContrastStretchImageChannel(), ConvertPathToPolygon(), CopyDelegateFile(), DeleteImages(), DeleteNodeByValueFromSplayTree(), DeleteNodeFromSplayTree(), DeskewImage(), DespeckleImage(), DestroyAttribute(), DestroyBlob(), DestroyCoderNode(), DestroyColorCube(), DestroyColorElement(), DestroyConfigureElement(), DestroyContributionThreadSet(), DestroyCubeInfo(), DestroyDelegate(), DestroyDistributeCacheInfo(), DestroyDrawInfo(), DestroyEdge(), DestroyExceptionElement(), DestroyExceptionInfo(), DestroyFxInfo(), DestroyFxThreadSet(), DestroyHashmap(), DestroyHistogramThreadSet(), DestroyImage(), DestroyImageInfo(), DestroyImageView(), DestroyKernelInfo(), DestroyLinkedList(), DestroyLocaleNode(), DestroyLogElement(), DestroyMagicElement(), DestroyMagickNode(), DestroyMimeElement(), DestroyMontageInfo(), DestroyPixelCache(), DestroyPixelCacheNexus(), DestroyPixelList(), DestroyPixelListThreadSet(), DestroyPixelStream(), DestroyPixelThreadSet(), DestroyPolicyElement(), DestroyPolygonInfo(), DestroyPolygonThreadSet(), DestroyQuantizeInfo(), DestroyQuantumInfo(), DestroyQuantumPixels(), DestroyRadonInfo(), DestroyRandomInfo(), DestroyRegistryNode(), DestroyResampleFilter(), DestroyResizeFilter(), DestroySignatureInfo(), DestroySplayTree(), DestroyStreamInfo(), DestroyString(), DestroyStringInfo(), DestroyStringList(), DestroyThresholdMap(), DestroyTimerInfo(), DestroyTokenInfo(), DestroyTypeNode(), DestroyXMLTree(), DestroyXMLTreeAttributes(), DistortImage(), DrawDashPolygon(), DrawImage(), DrawStrokePolygon(), EqualizeImageChannel(), ExpandFilenames(), ExportImagePixels(), FileToBlob(), FileToImage(), FloodfillPaintImage(), fopen_utf8(), FreeNodes(), GammaImageChannel(), GaussJordanElimination(), GenerateCoefficients(), GetConfigureOptions(), GetConfigurePaths(), GetDelegateCommand(), GetExecutionPath(), GetHostname(), GetImageAttribute(), GetImageChannelDepth(), GetImageChannelDistortion(), GetImageChannelDistortions(), GetImageChannelFeatures(), GetImageChannelMean(), GetImageDynamicThreshold(), GetLocaleOptions(), GetMultilineTypeMetrics(), GetNormalizedCrossCorrelationDistortion(), GetNumberColors(), GetXMLTreePath(), GetXMPProperty(), HuffmanDecodeImage(), HuffmanEncodeImage(), IdentifyImage(), ImageToBlob(), ImageToFile(), ImportImagePixels(), IncreaseHashmapCapacity(), InitializeIntervalTree(), InjectImageBlob(), InsertValueInSortedLinkedList(), InvokeDelegate(), IterateOverSplayTree(), LinearStretchImage(), ListCoderInfo(), ListColorInfo(), ListConfigureInfo(), ListDelegateInfo(), ListFiles(), ListLocaleInfo(), ListLogInfo(), ListMagicInfo(), ListMagickInfo(), ListMimeInfo(), ListPolicyInfo(), ListTypeInfo(), LoadCoderList(), LoadCoderLists(), LoadColorList(), LoadConfigureList(), LoadDelegateList(), LoadLocaleList(), LoadLogList(), LoadMagicList(), LoadPolicyList(), LoadTypeList(), LogMagickEventList(), LZWEncodeImage(), MagickDeleteThreadKey(), MatteFloodfillImage(), MontageImageList(), MorphologyPrimitive(), MotionBlurImageChannel(), open_utf8(), OpenMagickStream(), OptimalTau(), OptimizeLayerFrames(), PackbitsEncodeImage(), ParseInternalDoctype(), PingBlob(), popen_utf8(), PreviewImage(), ProfileImage(), PutEntryInHashmap(), RadialBlurImageChannel(), ReacquireMemory(), ReadInlineImage(), RelinquishMagickMatrix(), remove_utf8(), RemoveElementByValueFromLinkedList(), RemoveElementFromLinkedList(), RemoveEntryFromHashmap(), RemoveLastElementFromLinkedList(), RemoveNodeByValueFromSplayTree(), RemoveNodeFromSplayTree(), rename_utf8(), ResetSplayTree(), ResizeMagickMemory(), ResizeQuantumMemory(), RGBTransformImage(), SampleImage(), ScaleImage(), ScaleSpace(), SegmentImage(), SetGrayscaleImage(), SetImageArtifact(), SetImageChannelDepth(), SetImageOption(), SetImageProfile(), SetImageProperty(), SetImageRegistry(), SigmoidalContrastImageChannel(), SortColormapByIntensity(), SparseColorImage(), stat_utf8(), StreamImagePixels(), StringToArgv(), SystemCommand(), TraceBezier(), TraceStrokePolygon(), TransformImages(), TransformRGBImage(), and WaveImage().

MagickExport void* ResetMagickMemory ( void *  memory,
int  byte,
const size_t  size 
)

Referenced by AcquireContributionThreadSet(), AcquireDistributeCacheInfo(), AcquireFxInfo(), AcquireFxThreadSet(), AcquireHistogramThreadSet(), AcquireImage(), AcquireKernelBuiltIn(), AcquireMagickMemory(), AcquirePixelCacheNexus(), AcquirePixelList(), AcquirePixelListThreadSet(), AcquirePixelThreadSet(), AcquirePolygonThreadSet(), AcquireQuantumPixels(), AcquireRadonInfo(), AcquireRandomInfo(), AcquireRandomInfoThreadSet(), AcquireResampleFilter(), AcquireResampleFilterThreadSet(), AcquireResizeFilter(), AcquireSignatureInfo(), AcquireStreamInfo(), AcquireStringInfo(), AcquireTimerInfo(), AcquireVirtualCacheView(), AdaptiveBlurImageChannel(), AdaptiveSharpenImageChannel(), AddChildToXMLTree(), AllocateSemaphoreInfo(), Ascii85Initialize(), Classify(), CloneCacheView(), CloneImage(), CloneImageView(), ConnectPixelCacheServer(), ContrastStretchImageChannel(), ConvertPathToPolygon(), DespeckleImage(), DestroyMagickMemory(), DestroyRandomInfo(), DistortResizeImage(), DistributePixelCacheServer(), DitherImage(), EdgeImage(), EnhanceImage(), EqualizeImageChannel(), FinalizeSignature(), FormatMagickTime(), GammaImageChannel(), GaussJordanElimination(), GetAbsoluteDistortion(), GetAffineMatrix(), GetBlobInfo(), GetCubeInfo(), GetDrawInfo(), GetExceptionInfo(), GetFuzzDistortion(), GetImageAttribute(), GetImageChannelDistortion(), GetImageChannelDistortions(), GetImageChannelFeatures(), GetImageChannelStatistics(), GetImageDynamicThreshold(), GetImageInfo(), GetImageQuantizeError(), GetMeanAbsoluteDistortion(), GetMeanSquaredDistortion(), GetMontageInfo(), GetMultilineTypeMetrics(), GetNodeInfo(), GetPeakAbsoluteDistortion(), GetPixelCacheMethods(), GetQuantizeInfo(), GetQuantumInfo(), GetTimerInfo(), GetTypeMetrics(), GradientImage(), HorizontalFilter(), HuffmanEncodeImage(), IdentityAffine(), IncreaseHashmapCapacity(), LinearStretchImage(), LoadCoderList(), LoadCoderLists(), LoadColorList(), LoadColorLists(), LoadConfigureList(), LoadConfigureLists(), LoadDelegateList(), LoadLocaleList(), LoadLogList(), LoadLogLists(), LoadMagicList(), LoadMagicLists(), LoadMimeList(), LoadPolicyList(), LoadPolicyLists(), LoadTypeList(), MontageImageList(), NewHashmap(), NewImageView(), NewImageViewRegion(), NewLinkedList(), NewSplayTree(), NewXMLTreeTag(), OilPaintImage(), OpenBlob(), ParseKernelArray(), QueryMagickColorCompliance(), ResetRadonCells(), ResetStringInfo(), RGBTransformImage(), ScaleImage(), SetGeometry(), SetGeometryInfo(), SetImageColorspace(), SetImageInfo(), SetImageProperty(), SetImageRegistry(), SetMagickInfo(), SetStringInfo(), SharpenImageChannel(), SigmoidalContrastImageChannel(), ThrowException(), TracePSClippath(), TraceSVGClippath(), TransformSignature(), VerticalFilter(), and WriteStreamImage().

Variable Documentation