SimpleCCObject Class Reference

Override new and delete, so that new returns NULL when no more memory is available, rather than throwing an exception. More...

#include <ccobject.h>

Inheritance diagram for SimpleCCObject:

AttributeEntry BarCreate BarTable BitmapInfo CCObject ChangeGrid CMXImportArrowheads CMXImportArrowShape CMXImportDotDash CMXImportFont CMXImportLineStyle CMXImportOutline CMXImportPen CMXImportProcedure ColourMatrix ColourVector ControlHelper ControlTable GDrawContext ImageAndBitmap Matrix OctreeElement PrintMonitor ProcessGrid TraceBoundaryPoint XMatrix List of all members.

Public Member Functions

void * operator new (size_t, void *p)
void * operator new (size_t nSize)
 This function allocates a block of memory to create a new SimpleCCObject derived thingy. This does not throw an exception, but returns NULL in the event of a failure. In debug builds it also keeps track of all allocations and will give a dump of all reamining blobs of memory when camelot exits.
void operator delete (void *p)
 I think you can work this one out! In debug builds this will also remove items from the memory tracking list.
void * operator new (size_t nSize, LPCSTR lpszFileName, INT32 nLine)
 This functions adds an item into the memory tracking list and stores the filename and line number if it is passed in. Both versions of new call this function to handle all there DEBUG stuff.A version of the new operator that stores the filename etc into the memory tracking structure to help in debugging. This can be activated by including the following line :- MonoOn define new CAM_DEBUG_NEW MonoOff after all the IMPLEMENT_DYNAMIC() etc macros.

Static Public Member Functions

static void MemoryTrackAdd (void *p, LPCSTR Filename, INT32 Line)
static void MemoryDump ()
 Dumps the details of all objects allocated at the time of the call to the Debug window.
static BOOL Init ()
 Declares a preference that allows you to clear memory in delete().

Detailed Description

Override new and delete, so that new returns NULL when no more memory is available, rather than throwing an exception.

Author:
Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
Date:
15/7/93
NB. ALL Camelot objects not derived from OIL class libraries should be be derived from SimpleCCObject in some way, be it directly, or via CCObject. This is so they don't throw exceptions if we try to create them and there is not enough memory.
See also:
-

Definition at line 180 of file ccobject.h.


Member Function Documentation

BOOL SimpleCCObject::Init void   )  [static]
 

Declares a preference that allows you to clear memory in delete().

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
19/4/94
Returns:
TRUE if it worked OK, FALSE if not

Reimplemented in AboutDlg, AI5EPSFilter, AI8EPSFilter, AIEPSFilter, PhotoShopEPSFilter, ArrangeAlignment, OpAlign, AppPrefsDlg, OptionsTabs, GIFAnimationPropertyTabsDlg, GIFAnimationPropertyTabs, FramePropertiesTab, AnimationPropertiesTab, AnimationColoursTab, PreviewInBrowserTab, AnimExOptns, OpApplyAttribToSelected, OpApplyAttrInteractive, OpApplyAttribsToSelected, OpRepeatApplyAttribToSelected, OpApplyAttribToNode, OpReplaceAttributes, BevelAttributeValueIndent, BevelAttributeValueLightAngle, BevelAttributeValueContrast, BevelAttributeValueType, BevelAttributeValueLightTilt, LineWidthAttribute, StartArrowAttribute, EndArrowAttribute, StartCapAttribute, JoinTypeAttribute, MitreLimitAttribute, WindingRuleAttribute, DashPatternAttribute, ArtWorksEPSFilter, OpBackground, BarCreationDlg, BarStatesDlg, BarRedefineStateDlg, DialogBarOp, SystemBarOp, BaseDocument, BitmapEffectBase, BfxOp, BfxDlg, BfxPlugInDlg, BfxHandler, BfxPlugInOp, BfxPlugInUndoOp, CBiasGainDlg, BaseBitmapFilter, OILBitmap, BlobbyOp, BlobbyDlg, BlobbyBar, BlobbyTabDlg, BmapPrevDlg, BitmapListComponentClass, BitmapExportPreviewDialog, GlobalBitmapList, OpDeleteBitmap, BitmapExportOptions, BmpPrefsDlg, PhotoCDDlg, BmpDlg, BrushAttrValue, BrushComponentClass, CNameBrushDlg, CInitBrushNameDlg, CBrushEditDlg, CamelotEPSFilter, BaseCamelotFilter, CDRFilter, ClipRegionAttribute, CMXFilter16, CMXFilter32, CMXImportFilter, CMXTreeDlg, ColourListComponentClass, ColourContext, ColourEditDlg, OpMakeColourLocalToFrame, OpColEditCommand, ColourManager, OpHideColours, OpColourChange, OpRedrawColours, OpCombineShapes, MSPaletteFilter, PaintShopProPaletteFilter, AdobeColourTableFilter, AdobeColourSwatchFilter, CorelPaletteFilter, JCWColourFilter, CorelEPSFilter, Corel3EPSFilter, Corel4EPSFilter, OpCreateFontThumbnails, OpConvertFileFormats, OpCut, OpCopy, OpPaste, OpPasteAttributes, OpDelete, OpDuplicate, OpClone, OpCopyAndTransform, CXFTreeDlg, DaveDlg, OpBevel, OpURLImport, DebugTreeDlg, DocView, OpToggleFore, OpToggleScroll, OpToggleSolidDrag, AcornDrawFilter, EditSelectionOp, EPSFilter, JPEGExportFilter, ExpressView, ExtendSetsDlg, FileListOp, AttrFillGeometry, OpFillNudge, ColourFillAttribute, TranspFillAttribute, FillMappingAttribute, FillEffectAttribute, TranspFillMappingAttribute, StrokeColourAttribute, StrokeTranspAttribute, MouldAttribute, Filter, GenericFilter, VectorFilterFamily, BitmapFilterFamily, GenericEPSFilter, PaletteFilterFamily, ImagemapFilter, ImagemapRenderRegion, ImagemapDlg, FileInfo, FontComponentClass, FontManager, GlobalFractalList, OpGrabFrame, FreeHandEPSFilter, FlareTemplateFilter, FeatherAttrValue, GDrawAsm, OpGroup, OpUngroup, OpUngroupSpecial, OpGuideline, OpNewGuideline, OpSpreadOrigin, OpResetSpreadOrigin, GuidelinePropDlg, WebAddressDlg, HotKey, JPEGImportFilter, ColourImportContext, ImportedColours, OpMenuImport, OpMenuExport, OpDroppedFile, DownloadOp, OpAsynchFontInstall, OpAsynchBitmapImport, OpThumbDownload, OpAsynchClipartImport, OpAddWebFolders, OpAddWebLibrary, InfoBarOp, InfoBarViewOp, DocInfoComponentClass, NodeRenderableInk, OverprintLineAttrValue, OverprintFillAttrValue, PrintOnAllPlatesAttrValue, OpChangeLineJoinOpDesc, OpChangeLineCapOpDesc, Layer, LayerDlg, OpLayerGalChange, LayerNameDlg, OpDisplayLayerGallery, OpDisplayFrameGallery, OpLayerChange, OpMoveToLayer, LayerPropertyTabsDlg, LayerPropertyTabs, OpConvertToBitmap, OpExit, OpRegister, OpUpdate, DocOps, MenuPopupOps, OpToolSelect, HelpOps, WindowOps, ViewOps, DummyOp, OpMakeShapes, OpMakeNodesShapes, OpMakeStroke, OpDragOrigin, NameDialog, CamelotNativeFilter, OpMenuLoad, OpMenuSave, OpSaveAsNativeV1, CamelotNativeEPSFilter, NewColourDlg, NameObjectsDlg, OpDisplayNameGallery, NodeRenderableBounded, OpCreateNodeBitmap, NodeBitmapEffect, VisibleTextNode, AbstractTextChar, TextLine, BaseTextClass, TextStory, ObjectRegistry, OpBarCreation, OpBreakAtPoints, OpDragBox, OpDuplicateBar, OpShortenBar, OpDelBar, OpShowState, OpChangeFeatherSize, OpChangeFeatherProfile, OpCreateFill, OpEditFill, OpUndo, OpRedo, OpShowPrinterColours, OpToggleCompositePreview, OpToggleCyanPreview, OpToggleMagentaPreview, OpToggleYellowPreview, OpToggleKeyPreview, OpToggleSpotPreview, OpToggleMonoPlatePreview, OpOverprintLine, OpOverprintFill, OpPrintOnAllPlates, OpNudge, OpPullOntoGrid, OpSmoothSelection, OpEditRectangle, EditTab, GridTab, OpGridResize, MiscTab, PageTab, OpPageResize, PlugInsTab, PointersTab, SepsDlg, OpShowPrintBorders, ScaleTab, TuneTab, UndoTab, UnitsTab, UnitPropertiesDlg, ViewTab, OpWhatsThis, OpNodePathEditBlob, OpNodePathEditControlBlob, OpNodePathAddEndpoint, OpCloseNodePaths, OpReshapeOrAddPoint, OpNewPath, OpToggleSmooth, OpJoinShapes, OpBreakShapes, OpDeletePoints, OpPathNudge, OpMakeSegmentsLines, OpMakeSegmentsCurves, OpMovePathPoint, OpMenuSelectPathPoints, OpReversePath, OpPenCreateInternal, OpPenEditInternal, OpPenEditPath, OpPenCreatePath, OpPenAddElement, OpPenClosePath, OpAddNewPath, OpAddPathToPath, OpClosePathWithPath, PlugInHandler, PlugInManager, PlugInOp, PlugInUndoOp, Preferences, PreviewDialog, PrintComponentClass, OpPrint, PrintMarkComponentClass, PrintPrefsDlg, PropertyTabs, GuidesPropertiesTab, OpChangeLayerColour, LayerPropertiesTab, PreviewFilter, PreviewFilterBMP, PreviewFilterGIF, PreviewFilterJPEG, PreviewFilterPNG, OpPreviewPopupCommand, QualityAttribute, OpQuality, RenderDemoDlg, RenderRegion, OpRetroSmooth, EPSRenderRegion, SelectAllOp, SelectNoneOp, SelMediaDlg, SGalleryOptionsDlg, SGallerySortDlg, SGallerySearchDlg, OpDisplayTEMPLATEGallery, OpDisplayBitmapGallery, ColourSGallery, OpDisplayColourGallery, ColourNameDlg, LibClipartSGallery, OpDisplayLibClipartGallery, LibFillsSGallery, OpDisplayLibFillsGallery, LineGallery, OpDisplayLineGallery, OpDisplayNameGallery, NameObjectsDlg, OpEditRegularShape, OpDragRegularShape, OpReformShapeEdge, OpShapeToggleElipPoly, OpShapeToggleCurvature, OpShapeToggleStellation, OpShapeToggleSetNumSides, OpShapeMakeRegular, OpSlice, OpShowGrid, OpSnapToGrid, OpSnapToObjects, OpSnapToGuides, OpShowGuides, StandardBar, StrokeTypeAttrValue, VariableWidthAttrValue, StrokeComponentClass, Styles, WizOpStyleComponentClass, FlashFilter, TipsDlg, TemplateDialog, ToolbarDlg, ToolnameDlg, CustomizeBarDlg, TraceOp, TraceDlg, TraceBoundaryPoint, TxtFontTypefaceAttribute, TxtFontSizeAttribute, TxtBoldAttribute, TxtItalicAttribute, TxtUnderlineAttribute, TxtJustificationAttribute, TxtTrackingAttribute, TxtAspectRatioAttribute, TxtScriptAttribute, TxtBaseLineAttribute, TxtLineSpaceAttribute, TxtRulerAttribute, TxtLeftMarginAttribute, TxtRightMarginAttribute, TxtFirstIndentAttribute, UnitListComponentClass, Unit, DocUnitList, URLImportDlg, OpURLImport, UserAttribute, ValueFunction, VectorFileRenderRegion, ViewComponentClass, WebAddressAttribute, CamelotWebFilter, OpSaveAsWeb, OpSaveAsNativeV2, WebPrefsDlg, NativePrefsDlg, XSEPSExportOptions, OpBringToFront, OpPutToBack, OpMoveForwards, OpMoveBackwards, OpMoveToLyrInFront, OpMoveToLyrBehind, OpCombineLayersToFrameLayer, OpCreateNewMould, OpRemoveMould, OpCopyMouldShape, OpPasteEnvelope, OpPastePerspective, OpToggleMouldGrid, OpDetachMould, OpRotateMould, OpRectangularEnvelope, OpRectangularPerspective, OpSelectPathPoints, OpApplyClipView, OpRemoveClipView, OpLiveEffect, OpRetroFit, TextInfoBarOp, TabStopDragOp, OpFitTextToCurve, OpTextKern, OpTextAutoKern, OpTextPaste, OpTogglePrintTextAsShapes, OpDeleteTextStory, OpReverseStoryPath, OpApplyJustificationToStory, OpTextSelection, OpDragStoryPathLeftIndent, OpDragStoryPathRightIndent, OpDragStoryNonPathLeftIndent, OpDragStoryNonPathRightIndent, OpAffectFontChange, OpZoomIn, OpZoomOut, OpZoomTo100, OpZoomTo200, OpZoomTo300, OpZoomTo400, BfxALU, BMPFilter, CamProfile, CamResource, OpClipboardExport, OpClipboardImport, ClipboardView, PasteSpecialDlg, DimScale, BarTable, ControlHelper, ControlTable, ControlList, DialogView, BitmapDragInformation, ColourDragInformation, ColourPickerDragInformation, OpException, OpGBrush, GDrawContext, OpGenericDownload, TI_GIFFilter, GRenderRegion, OpGDraw, HelpDownloadOp, HelpDownloadDlg, OpBitmapDownload, ImageMagickFilter, MaskedFilter, MetaFileFilter, MetafileView, OSRenderRegion, CCPen, OpTogglePressure, PNGFilter, BasePMFilter, PPMFilter, PGMFilter, PBMFilter, PrintProgressDlg, OpToggleDoubleBuffer, OpDisplayFontsGallery, OpClipartImport, OpBitmapImport, SGalleryLinePropertiesDlg, LibSettings, OpTimeDraw, OpClearCache, OpThrottleCache, and StringVar.

Definition at line 191 of file ccobject.cpp.

00192 {
00193     // return TRUE as we do not want Camelot to fail to start over this
00194     return TRUE;
00195 }

void SimpleCCObject::MemoryDump  )  [static]
 

Dumps the details of all objects allocated at the time of the call to the Debug window.

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
15/7/93

Definition at line 660 of file ccobject.cpp.

00661 {
00662 #ifdef _DEBUG
00663     // somewhere to hold the output string
00664     TCHAR               OutputMsg[256];
00665 
00666     // Get a pointer to the head of the list of memory items
00667     MemTrackExtra      *pItem = pHead;
00668     if( pItem != NULL )
00669         TRACE( _T("......Memory Leaks Detected......\n"));
00670 
00671     // loop through it
00672     while( pItem != NULL )
00673     {
00674 PORTNOTE("other","Removed MFC CDumpContext")
00675 #ifndef EXCLUDE_FROM_XARALX
00676             ((CCObject*)(pItem->Start))->Dump(afxDump);
00677 #endif
00678 #if 0 != wxUSE_UNICODE
00679         TCHAR pFilename[22];
00680         camMbstowcs(pFilename, pItem->Filename, 22);
00681 #else
00682         TCHAR* pFilename = pItem->Filename;
00683 #endif
00684         camSnprintf( OutputMsg, 256, _T("allocated in %s at line %d.\n"), pFilename, pItem->LineNum );
00685         TRACE(OutputMsg);
00686 
00687         // Get the next one along
00688         pItem = pItem->pNext;
00689         if (pItem==NULL)
00690             TRACE( _T("\n......End Of Memory Dump......\n"));
00691     }
00692 #endif
00693 }

static void SimpleCCObject::MemoryTrackAdd void *  p,
LPCSTR  Filename,
INT32  Line
[static]
 

void SimpleCCObject::operator delete void *  p  ) 
 

I think you can work this one out! In debug builds this will also remove items from the memory tracking list.

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
15/7/93
Parameters:
p - pointer to the block of mem to free [INPUTS]
Returns:
Errors: Asserts if it discovers that the block you are trying to delete has already been deleted, never existed or is otherwise not valid.

Definition at line 575 of file ccobject.cpp.

00576 {
00577     // behave like normal delete
00578     if (p==NULL)
00579         return;
00580 
00581 #ifdef _DEBUG
00582 //      TRACE( _T("SimpleCCObject::delete at 0x%08x (0x%08x)\n"),p, ((char*)p) - sizeof(MemTrackExtra));
00583     
00584         // Get the real start of the block
00585         p = ((char*)p) - sizeof(MemTrackExtra);
00586 
00587         // find out how big the block is
00588 #if !defined(__WXMAC__)
00589         size_t BlockLen = _msize(p);
00590 #else
00591         size_t BlockLen = malloc_size(p);
00592 #endif
00593 
00594 #ifdef _OUTPUT_DEBUG
00595         TotalMemAllocated -= BlockLen;
00596         TRACE( _T("DeAllocated %ld\n"),TotalMemAllocated);
00597 #endif
00598 
00599         // Find the start of my strange structure
00600         MemTrackExtra* pExtraInfo = (MemTrackExtra*)p;
00601 
00602         // make sure that the guard word is still there
00603         if (pExtraInfo->GuardWord == GUARDWORD)
00604         {
00605             // yep, all seems well, so remove this item from the list
00606             // Update the head of the list if needed
00607             if (pExtraInfo == pHead)
00608                 pHead = pExtraInfo->pNext;
00609 
00610             // Update the next item in the list
00611             if (pExtraInfo->pNext!=NULL)
00612                 pExtraInfo->pNext->pPrev = pExtraInfo->pPrev;
00613 
00614             // update the previous item in the list
00615             if (pExtraInfo->pPrev!=NULL)
00616                 pExtraInfo->pPrev->pNext = pExtraInfo->pNext;
00617 
00618             // Write over the block with the dead memory land fill value
00619             memset(p, OLDLANDFILL, BlockLen);
00620 
00621             // Destroy the guard word
00622             pExtraInfo->GuardWord = DEADGUARD;
00623         }
00624         else
00625         {
00626             if (pExtraInfo->GuardWord == DEADGUARD)
00627                 ENSURE(FALSE, "Memory was de-alloced more than once...\n"); // Debug
00628             else
00629                 ENSURE(FALSE, "ALERT!!!! Memory Tracker thinks that memory is toast...\n"); // Debug
00630 
00631             // either way, the memory is not there to be freed
00632             return;
00633         }
00634     #endif
00635     
00636     // free up the allocation
00637     free(p);
00638 
00639     #ifdef _DEBUG
00640     // and check everything is OK
00641     if (CHECK_MEMORY)
00642         CheckMemory( TRUE );
00643     #endif
00644 }

void * SimpleCCObject::operator new size_t  Size,
LPCSTR  FileName,
INT32  Line
 

This functions adds an item into the memory tracking list and stores the filename and line number if it is passed in. Both versions of new call this function to handle all there DEBUG stuff.A version of the new operator that stores the filename etc into the memory tracking structure to help in debugging. This can be activated by including the following line :- MonoOn define new CAM_DEBUG_NEW MonoOff after all the IMPLEMENT_DYNAMIC() etc macros.

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
23/7/93
Parameters:
size - Number of bytes required [INPUTS] FileName - The name of the file that caused the allocation Line - The line number in the file that caused the allocation
Returns:
a pointer to the allocated block of memory, or NULL if the allocation failed

Reimplemented in DownloadOpParam.

Definition at line 408 of file ccobject.cpp.

00409 {
00410     // First we have to make a note of the function pointer maintained by VC++ thats
00411     // called by malloc if it fails (as it currently throws an exception)
00412     // We have to set it to NULL to stop malloc doing anything when mem runs out
00413 #if !defined(__WXMAC__)
00414     _PNH old_handler = _set_new_handler( NULL );
00415 #else
00416     new_handler pnh = set_new_handler(NULL);
00417 #endif
00418     
00419 #ifdef _OUTPUT_DEBUG
00420     TotalMemAllocated += Size;
00421     TRACE( _T("Allocated %ld\n"),TotalMemAllocated);
00422 #endif
00423 
00424     #ifdef _DEBUG
00425         // We actually want more memory to build our list out of
00426         Size += sizeof(MemTrackExtra);
00427     #endif
00428 
00429     void* pStart = NULL;
00430 
00431     // See if we are supposed to fail this memory claim for low memory simulation
00432 #ifdef _DEBUG
00433     if (FailingMemory)
00434     {
00435         if (Size < BytesBeforeFail)
00436             BytesBeforeFail -= Size;
00437         else
00438             goto Allocated;
00439     }
00440 #endif
00441 
00442     // ask for the actual memory
00443     pStart = malloc(Size);
00444 
00445     // finally repair the function pointer to its old value and return our pointer
00446 #if !defined(__WXMAC__)
00447     _set_new_handler( old_handler );
00448 #else
00449     set_new_handler(pnh);
00450 #endif
00451 
00452     // Do lots of tracking if in Debug mode
00453 #ifdef _DEBUG
00454     if (pStart!=NULL)
00455     {
00456         // Build in all the extra memory tracking info that we like to have
00457         MemoryTrackAdd(pStart, FileName, Line);
00458     }
00459 
00460 Allocated:
00461 // We'll remove the label as well (to get rid of the warning)
00462 #endif
00463     // if the pointer is NULL then we should set the error handler
00464     if (pStart==NULL)
00465     {
00466         TRACE( wxT("ALERT! ALERT! new is about to return NULL, Watch out for unhandled errors\n") );
00467         Error::SetError(_R(IDS_OUT_OF_MEMORY));
00468     }
00469 
00470 //  TRACE( _T("SimpleCCObject::new at 0x%08x (0x%08x)\n"),((char*)pStart) + sizeof(MemTrackExtra), pStart);
00471 
00472 #ifdef _DEBUG
00473     // return the pointer to the space after our tracking info
00474     return (((char*)pStart) + sizeof(MemTrackExtra));
00475 #else
00476     // return the real start of the block
00477     return (pStart);
00478 #endif
00479 }

void * SimpleCCObject::operator new size_t  Size  ) 
 

This function allocates a block of memory to create a new SimpleCCObject derived thingy. This does not throw an exception, but returns NULL in the event of a failure. In debug builds it also keeps track of all allocations and will give a dump of all reamining blobs of memory when camelot exits.

Author:
Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
Date:
15/7/93
Parameters:
size - The number of bytes to allocate [INPUTS]
Returns:
a pointer to the allocated memory (or NULL if the allocation failed)
See also:
SimpleCCObject::delete; SimpleCCObject::MemoryDump

Reimplemented in DownloadOpParam.

Definition at line 499 of file ccobject.cpp.

00500 {
00501     // First we have to make a note of the function pointer maintained by VC++ thats
00502     // called by malloc if it fails (as it currently throws an exception)
00503     // We have to set it to NULL to stop malloc doing anything when mem runs out
00504 #if !defined(__WXMAC__)
00505     _PNH old_handler = _set_new_handler( NULL );
00506 #else
00507     new_handler pnh = set_new_handler(NULL);
00508 #endif
00509 
00510     #ifdef _DEBUG
00511         // We actually want more memory to build our list out of
00512         Size += sizeof(MemTrackExtra);
00513     #endif
00514 
00515 #ifdef _OUTPUT_DEBUG
00516     TotalMemAllocated += Size;
00517     TRACE( _T("Allocated %ld\n"),TotalMemAllocated);
00518 #endif
00519 
00520     // ask for the actual memory
00521     void* pStart = malloc(Size);
00522 
00523     // finally repair the function pointer to its old value and return our pointer
00524 #if !defined(__WXMAC__)
00525     _set_new_handler( old_handler );
00526 #else
00527     set_new_handler(pnh);
00528 #endif
00529 
00530     // Do lots of tracking if in Debug mode
00531 #ifdef _DEBUG
00532     // see if we have a NULL value returned from new
00533     if (pStart!=NULL)
00534     {
00535         // Build in all the extra memory tracking info that we like to have
00536         MemoryTrackAdd(pStart, NULL, 0);
00537     }
00538 #endif
00539 
00540     // if the pointer is NULL then we should set the error handler
00541     if (pStart==NULL)
00542     {
00543         TRACE( wxT("ALERT! ALERT! new is about to return NULL, Watch out for unhandled errors\n") );
00544         Error::SetError(_R(IDS_OUT_OF_MEMORY));
00545     }
00546 
00547 //  TRACE( _T("SimpleCCObject::new at 0x%08x (0x%08x)\n"),((char*)pStart) + sizeof(MemTrackExtra), pStart);
00548 
00549 #ifdef _DEBUG
00550     // return the pointer to the space after our tracking info
00551     return (((char*)pStart) + sizeof(MemTrackExtra));
00552 #else
00553     // return the real start of the block
00554     return (pStart);
00555 #endif
00556 }

void* SimpleCCObject::operator new size_t  ,
void *  p
[inline]
 

Definition at line 188 of file ccobject.h.

00188 { return p; }


The documentation for this class was generated from the following files:
Generated on Sat Nov 10 04:01:15 2007 for Camelot by  doxygen 1.4.4