1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 04:10:54 -08:00

Check classes after defining them.

Copied from Perforce
 Change: 185228
 ServerID: perforce.ravenbrook.com
This commit is contained in:
Gareth Rees 2014-04-04 12:51:07 +01:00
parent 94e3fff083
commit 673eea41a0
21 changed files with 76 additions and 33 deletions

View file

@ -79,6 +79,7 @@ DEFINE_CLASS(AbstractArenaClass, class)
class->describe = ArenaTrivDescribe;
class->pagesMarkAllocated = NULL;
class->sig = ArenaClassSig;
AVERT(ArenaClass, class);
}

View file

@ -1,7 +1,7 @@
/* arenacl.c: ARENA CLASS USING CLIENT MEMORY
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* .design: See <design/arena/#client>.
*
@ -434,6 +434,7 @@ DEFINE_ARENA_CLASS(ClientArenaClass, this)
this->free = ClientFree;
this->chunkInit = ClientChunkInit;
this->chunkFinish = ClientChunkFinish;
AVERT(ArenaClass, this);
}
@ -447,7 +448,7 @@ mps_arena_class_t mps_arena_class_cl(void)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1159,6 +1159,7 @@ DEFINE_ARENA_CLASS(VMArenaClass, this)
this->compact = VMCompact;
this->describe = VMArenaDescribe;
this->pagesMarkAllocated = VMPagesMarkAllocated;
AVERT(ArenaClass, this);
}

View file

@ -1,7 +1,7 @@
/* buffer.c: ALLOCATION BUFFER IMPLEMENTATION
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* .purpose: This is (part of) the implementation of allocation buffers.
* Several macros which also form part of the implementation are in
@ -1220,6 +1220,7 @@ DEFINE_CLASS(BufferClass, class)
class->setRankSet = bufferNoSetRankSet;
class->reassignSeg = bufferNoReassignSeg;
class->sig = BufferClassSig;
AVERT(BufferClass, class);
}
@ -1472,6 +1473,7 @@ DEFINE_CLASS(SegBufClass, class)
class->rankSet = segBufRankSet;
class->setRankSet = segBufSetRankSet;
class->reassignSeg = segBufReassignSeg;
AVERT(BufferClass, class);
}
@ -1532,12 +1534,13 @@ DEFINE_CLASS(RankBufClass, class)
class->name = "RANKBUF";
class->varargs = rankBufVarargs;
class->init = rankBufInit;
AVERT(BufferClass, class);
}
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -60,6 +60,7 @@ DEFINE_POOL_CLASS(OOMPoolClass, this)
{
INHERIT_CLASS(this, AbstractAllocFreePoolClass);
this->alloc = OOMAlloc;
AVERT(PoolClass, this);
}

View file

@ -1,7 +1,7 @@
/* poolabs.c: ABSTRACT POOL CLASSES
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
* Portions copyright (C) 2002 Global Graphics Software.
*
* PURPOSE
@ -151,36 +151,42 @@ DEFINE_CLASS(AbstractPoolClass, class)
class->debugMixin = PoolNoDebugMixin;
class->labelled = FALSE;
class->sig = PoolClassSig;
AVERT(PoolClass, class);
}
DEFINE_CLASS(AbstractAllocFreePoolClass, class)
{
INHERIT_CLASS(class, AbstractPoolClass);
PoolClassMixInAllocFree(class);
AVERT(PoolClass, class);
}
DEFINE_CLASS(AbstractBufferPoolClass, class)
{
INHERIT_CLASS(class, AbstractPoolClass);
PoolClassMixInBuffer(class);
AVERT(PoolClass, class);
}
DEFINE_CLASS(AbstractSegBufPoolClass, class)
{
INHERIT_CLASS(class, AbstractBufferPoolClass);
class->bufferClass = SegBufClassGet;
AVERT(PoolClass, class);
}
DEFINE_CLASS(AbstractScanPoolClass, class)
{
INHERIT_CLASS(class, AbstractSegBufPoolClass);
PoolClassMixInScan(class);
AVERT(PoolClass, class);
}
DEFINE_CLASS(AbstractCollectPoolClass, class)
{
INHERIT_CLASS(class, AbstractScanPoolClass);
PoolClassMixInCollect(class);
AVERT(PoolClass, class);
}
@ -677,7 +683,7 @@ BufferClass PoolNoBufferClass(void)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -370,6 +370,7 @@ DEFINE_SEG_CLASS(amcSegClass, class)
class->size = sizeof(amcSegStruct);
class->init = AMCSegInit;
class->describe = AMCSegDescribe;
AVERT(SegClass, class);
}
@ -691,6 +692,7 @@ DEFINE_BUFFER_CLASS(amcBufClass, class)
class->size = sizeof(amcBufStruct);
class->init = AMCBufInit;
class->finish = AMCBufFinish;
AVERT(BufferClass, class);
}
@ -2509,6 +2511,7 @@ DEFINE_POOL_CLASS(AMCPoolClass, this)
this->walk = AMCWalk;
this->bufferClass = amcBufClassGet;
this->describe = AMCDescribe;
AVERT(PoolClass, this);
}
@ -2522,6 +2525,7 @@ DEFINE_POOL_CLASS(AMCZPoolClass, this)
this->init = AMCZInit;
this->grey = PoolNoGrey;
this->scan = PoolNoScan;
AVERT(PoolClass, this);
}

View file

@ -1,7 +1,7 @@
/* poolams.c: AUTOMATIC MARK & SWEEP POOL CLASS
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
* Portions copyright (c) 2002 Global Graphics Software.
*
*
@ -609,6 +609,7 @@ DEFINE_CLASS(AMSSegClass, class)
class->merge = AMSSegMerge;
class->split = AMSSegSplit;
class->describe = AMSSegDescribe;
AVERT(SegClass, class);
}
@ -1686,6 +1687,7 @@ DEFINE_CLASS(AMSPoolClass, this)
this->reclaim = AMSReclaim;
this->freewalk = AMSFreeWalk;
this->describe = AMSDescribe;
AVERT(PoolClass, this);
}
@ -1713,6 +1715,7 @@ DEFINE_POOL_CLASS(AMSDebugPoolClass, this)
this->size = sizeof(AMSDebugStruct);
this->varargs = AMSDebugVarargs;
this->debugMixin = AMSDebugMixin;
AVERT(PoolClass, this);
}
@ -1740,7 +1743,7 @@ Bool AMSCheck(AMS ams)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolawl.c: AUTOMATIC WEAK LINKED POOL CLASS
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
*
* DESIGN
@ -288,6 +288,7 @@ DEFINE_SEG_CLASS(AWLSegClass, class)
class->size = sizeof(AWLSegStruct);
class->init = AWLSegInit;
class->finish = AWLSegFinish;
AVERT(SegClass, class);
}
@ -1280,6 +1281,7 @@ DEFINE_POOL_CLASS(AWLPoolClass, this)
this->fixEmergency = AWLFix;
this->reclaim = AWLReclaim;
this->walk = AWLWalk;
AVERT(PoolClass, this);
}
@ -1307,7 +1309,7 @@ static Bool AWLCheck(AWL awl)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poollo.c: LEAF POOL CLASS
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* DESIGN
*
@ -73,6 +73,7 @@ DEFINE_SEG_CLASS(LOSegClass, class)
class->size = sizeof(LOSegStruct);
class->init = loSegInit;
class->finish = loSegFinish;
AVERT(SegClass, class);
}
@ -793,6 +794,7 @@ DEFINE_POOL_CLASS(LOPoolClass, this)
this->fixEmergency = LOFix;
this->reclaim = LOReclaim;
this->walk = LOWalk;
AVERT(PoolClass, this);
}
@ -821,7 +823,7 @@ static Bool LOCheck(LO lo)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolmfs.c: MANUAL FIXED SMALL UNIT POOL
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* This is the implementation of the MFS pool class.
*
@ -347,6 +347,7 @@ DEFINE_POOL_CLASS(MFSPoolClass, this)
this->alloc = MFSAlloc;
this->free = MFSFree;
this->describe = MFSDescribe;
AVERT(PoolClass, this);
}
@ -385,7 +386,7 @@ Bool MFSCheck(MFS mfs)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolmrg.c: MANUAL RANK GUARDIAN POOL
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
* Portions copyright (C) 2002 Global Graphics Software.
*
*
@ -302,6 +302,7 @@ DEFINE_SEG_CLASS(MRGLinkSegClass, class)
class->name = "MRGLSEG";
class->size = sizeof(MRGLinkSegStruct);
class->init = MRGLinkSegInit;
AVERT(SegClass, class);
}
@ -314,6 +315,7 @@ DEFINE_SEG_CLASS(MRGRefSegClass, class)
class->name = "MRGRSEG";
class->size = sizeof(MRGRefSegStruct);
class->init = MRGRefSegInit;
AVERT(SegClass, class);
}
@ -862,6 +864,7 @@ DEFINE_POOL_CLASS(MRGPoolClass, this)
this->blacken = PoolTrivBlacken;
this->scan = MRGScan;
this->describe = MRGDescribe;
AVERT(PoolClass, this);
}
@ -873,7 +876,7 @@ PoolClass PoolClassMRG(void)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolmv.c: MANUAL VARIABLE POOL
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
* Portions copyright (C) 2002 Global Graphics Software.
*
* **** RESTRICTION: This pool may not allocate from the arena control
@ -792,6 +792,7 @@ DEFINE_POOL_CLASS(MVPoolClass, this)
this->alloc = MVAlloc;
this->free = MVFree;
this->describe = MVDescribe;
AVERT(PoolClass, this);
}
@ -811,6 +812,7 @@ DEFINE_POOL_CLASS(MVDebugPoolClass, this)
this->size = sizeof(MVDebugStruct);
this->varargs = MVDebugVarargs;
this->debugMixin = MVDebugMixin;
AVERT(PoolClass, this);
}
@ -901,7 +903,7 @@ Bool MVCheck(MV mv)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolmv2.c: MANUAL VARIABLE-SIZED TEMPORAL POOL
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* .purpose: A manual-variable pool designed to take advantage of
* placement according to predicted deathtime.
@ -145,6 +145,7 @@ DEFINE_POOL_CLASS(MVTPoolClass, this)
this->bufferFill = MVTBufferFill;
this->bufferEmpty = MVTBufferEmpty;
this->describe = MVTDescribe;
AVERT(PoolClass, this);
}
/* Macros */
@ -1488,7 +1489,7 @@ CBS _mps_mvt_cbs(mps_pool_t mps_pool) {
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolmvff.c: First Fit Manual Variable Pool
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
* Portions copyright (C) 2002 Global Graphics Software.
*
* .purpose: This is a pool class for manually managed objects of
@ -720,6 +720,7 @@ DEFINE_POOL_CLASS(MVFFPoolClass, this)
this->bufferFill = MVFFBufferFill;
this->bufferEmpty = MVFFBufferEmpty;
this->describe = MVFFDescribe;
AVERT(PoolClass, this);
}
@ -739,6 +740,7 @@ DEFINE_POOL_CLASS(MVFFDebugPoolClass, this)
this->size = sizeof(MVFFDebugStruct);
this->varargs = MVFFDebugVarargs;
this->debugMixin = MVFFDebugMixin;
AVERT(PoolClass, this);
}
@ -828,7 +830,7 @@ CBS _mps_mvff_cbs(mps_pool_t mps_pool) {
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* pooln.c: NULL POOL CLASS
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*/
#include "pooln.h"
@ -287,6 +287,7 @@ DEFINE_POOL_CLASS(NPoolClass, this)
this->reclaim = NReclaim;
this->traceEnd = NTraceEnd;
this->describe = NDescribe;
AVERT(PoolClass, this);
}
@ -313,7 +314,7 @@ Bool PoolNCheck(PoolN poolN)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* poolsnc.c: STACK NO CHECKING POOL CLASS
*
* $Id$
* Copyright (c) 2001-2013 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* DESIGN
*
@ -185,6 +185,7 @@ DEFINE_BUFFER_CLASS(SNCBufClass, class)
class->size = sizeof(SNCBufStruct);
class->init = SNCBufInit;
class->finish = SNCBufFinish;
AVERT(BufferClass, class);
}
@ -261,6 +262,7 @@ DEFINE_SEG_CLASS(SNCSegClass, class)
class->name = "SNCSEG";
class->size = sizeof(SNCSegStruct);
class->init = sncSegInit;
AVERT(SegClass, class);
}
@ -682,6 +684,7 @@ DEFINE_POOL_CLASS(SNCPoolClass, this)
this->framePopPending = SNCFramePopPending;
this->walk = SNCWalk;
this->bufferClass = SNCBufClassGet;
AVERT(PoolClass, this);
}
@ -707,7 +710,7 @@ static Bool SNCCheck(SNC snc)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2013 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* pool.c: PROTOCOL IMPLEMENTATION
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* DESIGN
*
@ -18,7 +18,7 @@ SRCID(protocol, "$Id$");
Bool ProtocolClassCheck(ProtocolClass class)
{
CHECKS(ProtocolClass, class);
CHECKS(ProtocolClass, class->superclass);
CHECKU(ProtocolClass, class->superclass);
CHECKL(FUNCHECK(class->coerceInst));
CHECKL(FUNCHECK(class->coerceClass));
return TRUE;
@ -118,6 +118,7 @@ DEFINE_CLASS(ProtocolClass, theClass)
theClass->superclass = theClass;
theClass->coerceInst = ProtocolCoerceInst;
theClass->coerceClass = ProtocolCoerceClass;
AVERT(ProtocolClass, theClass);
}
@ -126,7 +127,7 @@ DEFINE_CLASS(ProtocolClass, theClass)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* reserv.c: ARENA RESERVOIR
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* IMPROVEMENTS
*
@ -74,6 +74,7 @@ DEFINE_POOL_CLASS(ReservoirPoolClass, this)
this->offset = offsetof(ReservoirStruct, poolStruct);
this->init = ResPoolInit;
this->finish = ResPoolFinish;
AVERT(PoolClass, this);
}
@ -416,7 +417,7 @@ void ReservoirFinish (Reservoir reservoir)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -1,7 +1,7 @@
/* seg.c: SEGMENTS
*
* $Id$
* Copyright (c) 2001 Ravenbrook Limited. See end of file for license.
* Copyright (c) 2001-2014 Ravenbrook Limited. See end of file for license.
*
* .design: The design for this module is <design/seg/>.
*
@ -1683,6 +1683,7 @@ DEFINE_CLASS(SegClass, class)
class->split = segTrivSplit;
class->describe = segTrivDescribe;
class->sig = SegClassSig;
AVERT(SegClass, class);
}
@ -1707,6 +1708,7 @@ DEFINE_CLASS(GCSegClass, class)
class->merge = gcSegMerge;
class->split = gcSegSplit;
class->describe = gcSegDescribe;
AVERT(SegClass, class);
}
@ -1726,7 +1728,7 @@ void SegClassMixInNoSplitMerge(SegClass class)
/* C. COPYRIGHT AND LICENSE
*
* Copyright (C) 2001-2002 Ravenbrook Limited <http://www.ravenbrook.com/>.
* Copyright (C) 2001-2014 Ravenbrook Limited <http://www.ravenbrook.com/>.
* All rights reserved. This is an open source license. Contact
* Ravenbrook for commercial licensing options.
*

View file

@ -294,6 +294,7 @@ DEFINE_SEG_CLASS(AMSTSegClass, class)
class->finish = amstSegFinish;
class->split = amstSegSplit;
class->merge = amstSegMerge;
AVERT(SegClass, class);
}
@ -674,6 +675,7 @@ DEFINE_POOL_CLASS(AMSTPoolClass, this)
this->init = AMSTInit;
this->finish = AMSTFinish;
this->bufferFill = AMSTBufferFill;
AVERT(PoolClass, this);
}