mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.1 KiB
77 lines
2.1 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992 - 1992.
|
|
//
|
|
// File: otrackp.h
|
|
//
|
|
// Contents: Private definitions for Object Tracking system
|
|
//
|
|
// History: 6-Apr-92 MikeSe Created
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef __OTRACKP_HXX__
|
|
#define __OTRACKP_HXX__
|
|
|
|
// Entry type in history record
|
|
enum FrameType { FT_CREATE, FT_ADDREF, FT_RELEASE };
|
|
|
|
// Number of call frame to record
|
|
#define MAX_CALLERS 8
|
|
|
|
// A single entry in the history
|
|
struct FrameRecord
|
|
{
|
|
FrameRecord *frNext;
|
|
FrameType ft;
|
|
ULONG cRefCount;
|
|
void * callers[MAX_CALLERS];
|
|
};
|
|
|
|
#define TRACK_LINK_SIGNATURE 0x4C53544F
|
|
|
|
#define REFCOUNT_NOT_SET 0xFFFFFFFF
|
|
|
|
// This structure is the root point for the history for an object.
|
|
// It is pointed to by the _tl member variable in the ObjectTracker
|
|
// class (see otrack.hxx).
|
|
|
|
struct TrackLink
|
|
{
|
|
TrackLink *tlNext; // link together
|
|
TrackLink *tlPrev; // ...
|
|
ULONG ulSig; // validity signature
|
|
ObjectTracker *potr; // back link to object
|
|
char *pszName; // class name
|
|
int fTrack; // true if tracking should be done
|
|
FrameRecord *frFirst; // first call frame
|
|
FrameRecord *frLast; // last call frame
|
|
};
|
|
|
|
// This structure holds the name of a class and a flag indicating if
|
|
// object tracking is currently on or off for this class.
|
|
|
|
struct NameEntry
|
|
{
|
|
NameEntry *neNext; // link together
|
|
NameEntry *nePrev; // ...
|
|
int fTrack; // tracking on/off for this class
|
|
char *pszName; // class name
|
|
};
|
|
|
|
#ifdef ANYSTRICT
|
|
|
|
DECLARE_DEBUG(Ot)
|
|
|
|
# define OtDebugOut(x) OtInlineDebugOut x
|
|
# define OtAssert(x) Win4Assert(x)
|
|
|
|
#else
|
|
|
|
# define OtDebugOut(x)
|
|
# define OtAssert(x)
|
|
|
|
#endif
|
|
|
|
#endif // of ifndef __OTRACKP_HXX__
|