11#if REFERENCING_DEBUGGING
15class referencing_debugging;
18class CLASS_DECL_ACME reference_item_array
23 ::reference_item_array * m_preferenceitemarrayParent =
nullptr;
26 ::subparticle* m_psubparticle;
27 ::subparticle* m_psubparticleParent;
28 bool m_bFirstAllocationInformation =
false;
29 ::string m_strFirstAllocation;
31 bool m_bFirstReference;
32 ::iptr m_iLastReferenceCount;
33 ::non_particle_comparable_array < reference_item * > m_itema;
34 ::non_particle_comparable_array < reference_item_array * > m_item2a;
37 reference_item_array(::subparticle * psubparticle, ::subparticle * psubparticleParent);
38 ~reference_item_array();
43 virtual void add_item_array(reference_item_array * pitema);
44 virtual bool erase_item_array(reference_item_array * pitema);
48 virtual void add_item(
bool bIncludeCallStackTrace =
false);
49 virtual void add_referer(::reference_referer * preferer,
bool bIncludeCallStackTrace =
false);
52 virtual ::collection::index find_item(reference_referer * preferer);
55 virtual bool erase_item();
58 virtual bool replace_item(reference_item * preferenceitem);
61 virtual void dump_pending_releases(::string & strDump);
64 void *
operator new(
size_t s)
70 void operator delete(
void *p)