mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-21 03:52:16 -08:00
Change.mps.dylan.kinglet.160296:
Next-method calls should not have to explicitly name the superclass Copied from Perforce Change: 21070 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
864f5e9bdf
commit
09c8a90815
2 changed files with 18 additions and 7 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/* impl.c.buffer: ALLOCATION BUFFER IMPLEMENTATION
|
||||
*
|
||||
* $HopeName: MMsrc!buffer.c(trunk.55) $
|
||||
* $HopeName: MMsrc!buffer.c(trunk.56) $
|
||||
* Copyright (C) 1999. Harlequin Limited. All rights reserved.
|
||||
*
|
||||
* .purpose: This is (part of) the implementation of allocation buffers.
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
#include "mpm.h"
|
||||
|
||||
SRCID(buffer, "$HopeName: MMsrc!buffer.c(trunk.55) $");
|
||||
SRCID(buffer, "$HopeName: MMsrc!buffer.c(trunk.56) $");
|
||||
|
||||
|
||||
/* forward declarations */
|
||||
|
|
@ -1370,7 +1370,7 @@ static Res segBufInit (Buffer buffer, Pool pool, va_list args)
|
|||
segbuf = BufferSegBuf(buffer);
|
||||
|
||||
/* Initialize the superclass fields first via next-method call */
|
||||
super = EnsureBufferClass();
|
||||
super = BUFFER_SUPERCLASS(SegBufClass);
|
||||
res = super->init(buffer, pool, args);
|
||||
if (res != ResOK)
|
||||
return res;
|
||||
|
|
@ -1398,7 +1398,7 @@ static void segBufFinish (Buffer buffer)
|
|||
segbuf->sig = SigInvalid;
|
||||
|
||||
/* finish the superclass fields last */
|
||||
super = EnsureBufferClass();
|
||||
super = BUFFER_SUPERCLASS(SegBufClass);
|
||||
super->finish(buffer);
|
||||
}
|
||||
|
||||
|
|
@ -1534,7 +1534,7 @@ static Res segBufDescribe(Buffer buffer, mps_lib_FILE *stream)
|
|||
return ResFAIL;
|
||||
|
||||
/* Describe the superclass fields first via next-method call */
|
||||
super = EnsureBufferClass();
|
||||
super = BUFFER_SUPERCLASS(SegBufClass);
|
||||
res = super->describe(buffer, stream);
|
||||
if(res != ResOK)
|
||||
return res;
|
||||
|
|
@ -1592,7 +1592,7 @@ static Res rankBufInit (Buffer buffer, Pool pool, va_list args)
|
|||
AVER(RankCheck(rank));
|
||||
|
||||
/* Initialize the superclass fields first via next-method call */
|
||||
super = EnsureSegBufClass();
|
||||
super = BUFFER_SUPERCLASS(RankBufClass);
|
||||
res = super->init(buffer, pool, args);
|
||||
if (res != ResOK)
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/* impl.h.mpm: MEMORY POOL MANAGER DEFINITIONS
|
||||
*
|
||||
* $HopeName: MMsrc!mpm.h(trunk.128) $
|
||||
* $HopeName: MMsrc!mpm.h(trunk.129) $
|
||||
* Copyright (C) 1999. Harlequin Limited. All rights reserved.
|
||||
*/
|
||||
|
||||
|
|
@ -441,6 +441,9 @@ extern AbstractCollectPoolClass EnsureAbstractCollectPoolClass(void);
|
|||
#define DEFINE_POOL_CLASS(className, var) \
|
||||
DEFINE_ALIAS_CLASS(className, PoolClass, var)
|
||||
|
||||
#define POOL_SUPERCLASS(className) \
|
||||
(PoolClass)SUPERCLASS(className)
|
||||
|
||||
|
||||
/* Message Interface -- see design.mps.message */
|
||||
|
||||
|
|
@ -612,6 +615,9 @@ extern void ActionPoll(Arena arena);
|
|||
#define DEFINE_ARENA_CLASS(className, var) \
|
||||
DEFINE_ALIAS_CLASS(className, ArenaClass, var)
|
||||
|
||||
#define ARENA_SUPERCLASS(className) \
|
||||
(ArenaClass)SUPERCLASS(className)
|
||||
|
||||
extern AbstractArenaClass EnsureAbstractArenaClass(void);
|
||||
extern Bool ArenaClassCheck(ArenaClass class);
|
||||
extern Bool ArenaCheck(Arena arena);
|
||||
|
|
@ -830,6 +836,9 @@ extern void SegClassMixInNoSplitMerge(SegClass class);
|
|||
#define DEFINE_SEG_CLASS(className, var) \
|
||||
DEFINE_ALIAS_CLASS(className, SegClass, var)
|
||||
|
||||
#define SEG_SUPERCLASS(className) \
|
||||
(SegClass)SUPERCLASS(className)
|
||||
|
||||
extern Size SegSize(Seg seg);
|
||||
extern Addr (SegBase)(Seg seg);
|
||||
extern Addr (SegLimit)(Seg seg);
|
||||
|
|
@ -934,6 +943,8 @@ extern void BufferFrameSetState(Buffer buffer, FrameState state);
|
|||
#define DEFINE_BUFFER_CLASS(className, var) \
|
||||
DEFINE_ALIAS_CLASS(className, BufferClass, var)
|
||||
|
||||
#define BUFFER_SUPERCLASS(className) \
|
||||
(BufferClass)SUPERCLASS(className)
|
||||
|
||||
extern Bool BufferClassCheck(BufferClass class);
|
||||
extern BufferClass EnsureBufferClass(void);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue