mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-26 08:41:47 -07:00
Eliminating interface puns that break the strict aliasing rule. the last of the structure puns and casts, i think.
Copied from Perforce Change: 179453 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
9f3c6c49bb
commit
eeef8ade97
4 changed files with 36 additions and 59 deletions
|
|
@ -64,7 +64,7 @@ typedef struct PoolGenStruct {
|
|||
|
||||
#define ChainSig ((Sig)0x519C8A14) /* SIGnature CHAIN */
|
||||
|
||||
typedef struct ChainStruct {
|
||||
typedef struct mps_chain_s {
|
||||
Sig sig;
|
||||
Arena arena;
|
||||
RingStruct chainRing; /* list of chains in the arena */
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
|
||||
#define PoolClassSig ((Sig)0x519C7A55) /* SIGnature pool CLASS */
|
||||
|
||||
typedef struct PoolClassStruct {
|
||||
typedef struct mps_class_s {
|
||||
ProtocolClassStruct protocol;
|
||||
const char *name; /* class name string */
|
||||
size_t size; /* size of outer structure */
|
||||
|
|
@ -93,7 +93,7 @@ typedef struct PoolClassStruct {
|
|||
|
||||
#define PoolSig ((Sig)0x519B0019) /* SIGnature POOL */
|
||||
|
||||
typedef struct PoolStruct { /* generic structure */
|
||||
typedef struct mps_pool_s { /* generic structure */
|
||||
Sig sig; /* <design/sig/> */
|
||||
Serial serial; /* from arena->poolSerial */
|
||||
PoolClass class; /* pool class structure */
|
||||
|
|
@ -218,7 +218,7 @@ typedef struct MessageClassStruct {
|
|||
*
|
||||
* See <design/message/#message.struct>. */
|
||||
|
||||
typedef struct MessageStruct {
|
||||
typedef struct mps_message_s {
|
||||
Sig sig; /* <design/sig/> */
|
||||
Arena arena; /* owning arena */
|
||||
MessageClass class; /* Message Class Structure */
|
||||
|
|
@ -399,7 +399,7 @@ typedef struct SegBufStruct {
|
|||
|
||||
#define FormatSig ((Sig)0x519F63A2) /* Signature FoRMAT */
|
||||
|
||||
typedef struct FormatStruct {
|
||||
typedef struct mps_fmt_s {
|
||||
Sig sig;
|
||||
Serial serial; /* from arena->formatSerial */
|
||||
FormatVariety variety; /* format variety (e.g. A) */
|
||||
|
|
@ -530,7 +530,7 @@ typedef struct ChunkCacheEntryStruct {
|
|||
|
||||
#define ArenaClassSig ((Sig)0x519A6C1A) /* SIGnature ARena CLAss */
|
||||
|
||||
typedef struct ArenaClassStruct {
|
||||
typedef struct mps_arena_class_s {
|
||||
ProtocolClassStruct protocol;
|
||||
char *name; /* class name string */
|
||||
size_t size; /* size of outer structure */
|
||||
|
|
|
|||
|
|
@ -67,10 +67,10 @@ typedef BufferClass SegBufClass; /* <design/buffer/> */
|
|||
typedef BufferClass RankBufClass; /* <design/buffer/> */
|
||||
typedef unsigned BufferMode; /* <design/buffer/> */
|
||||
typedef unsigned FrameState; /* <design/alloc-frame/> */
|
||||
typedef struct FormatStruct *Format; /* design.mps.format */
|
||||
typedef struct mps_fmt_s *Format; /* design.mps.format */
|
||||
typedef struct LockStruct *Lock; /* <code/lock.c>* */
|
||||
typedef struct PoolStruct *Pool; /* <design/pool/> */
|
||||
typedef struct PoolClassStruct *PoolClass; /* <code/poolclas.c> */
|
||||
typedef struct mps_pool_s *Pool; /* <design/pool/> */
|
||||
typedef struct mps_class_s *PoolClass; /* <code/poolclas.c> */
|
||||
typedef PoolClass AbstractPoolClass; /* <code/poolabs.c> */
|
||||
typedef PoolClass AbstractAllocFreePoolClass; /* <code/poolabs.c> */
|
||||
typedef PoolClass AbstractBufferPoolClass; /* <code/poolabs.c> */
|
||||
|
|
@ -79,7 +79,7 @@ typedef PoolClass AbstractScanPoolClass; /* <code/poolabs.c> */
|
|||
typedef PoolClass AbstractCollectPoolClass; /* <code/poolabs.c> */
|
||||
typedef struct TraceStruct *Trace; /* <design/trace/> */
|
||||
typedef struct ScanStateStruct *ScanState; /* <design/trace/> */
|
||||
typedef struct ChainStruct *Chain; /* <design/trace/> */
|
||||
typedef struct mps_chain_s *Chain; /* <design/trace/> */
|
||||
typedef struct TractStruct *Tract; /* <design/arena/> */
|
||||
typedef struct ChunkStruct *Chunk; /* <code/tract.c> */
|
||||
typedef struct ChunkCacheEntryStruct *ChunkCacheEntry; /* <code/tract.c> */
|
||||
|
|
@ -90,7 +90,7 @@ typedef struct SegClassStruct *SegClass; /* <code/seg.c> */
|
|||
typedef SegClass GCSegClass; /* <code/seg.c> */
|
||||
typedef struct SegPrefStruct *SegPref; /* design.mps.pref, <code/locus.c> */
|
||||
typedef int SegPrefKind; /* design.mps.pref, <code/locus.c> */
|
||||
typedef struct ArenaClassStruct *ArenaClass; /* <design/arena/> */
|
||||
typedef struct mps_arena_class_s *ArenaClass; /* <design/arena/> */
|
||||
typedef ArenaClass AbstractArenaClass; /* <code/arena.c> */
|
||||
typedef struct mps_arena_s *Arena; /* <design/arena/> */
|
||||
typedef struct GlobalsStruct *Globals; /* <design/arena/> */
|
||||
|
|
@ -223,7 +223,7 @@ typedef PoolDebugMixin (*PoolDebugMixinMethod)(Pool pool);
|
|||
*/
|
||||
|
||||
typedef unsigned MessageType;
|
||||
typedef struct MessageStruct *Message;
|
||||
typedef struct mps_message_s *Message;
|
||||
typedef struct MessageClassStruct *MessageClass;
|
||||
|
||||
/* Message*Method -- <design/message/> */
|
||||
|
|
|
|||
|
|
@ -324,7 +324,7 @@ mps_res_t mps_arena_create(mps_arena_t *mps_arena_o,
|
|||
/* mps_arena_create_v -- create an arena object */
|
||||
|
||||
mps_res_t mps_arena_create_v(mps_arena_t *mps_arena_o,
|
||||
mps_arena_class_t mps_arena_class, va_list args)
|
||||
mps_arena_class_t arena_class, va_list args)
|
||||
{
|
||||
Arena arena;
|
||||
Res res;
|
||||
|
|
@ -335,7 +335,7 @@ mps_res_t mps_arena_create_v(mps_arena_t *mps_arena_o,
|
|||
|
||||
AVER(mps_arena_o != NULL);
|
||||
|
||||
res = ArenaCreateV(&arena, (ArenaClass)mps_arena_class, args);
|
||||
res = ArenaCreateV(&arena, arena_class, args);
|
||||
if (res != ResOK)
|
||||
return res;
|
||||
|
||||
|
|
@ -584,9 +584,8 @@ mps_res_t mps_fmt_create_fixed(mps_fmt_t *mps_fmt_o,
|
|||
|
||||
/* mps_fmt_destroy -- destroy a format object */
|
||||
|
||||
void mps_fmt_destroy(mps_fmt_t mps_fmt)
|
||||
void mps_fmt_destroy(mps_fmt_t format)
|
||||
{
|
||||
Format format = (Format)mps_fmt;
|
||||
Arena arena;
|
||||
|
||||
AVER(TESTT(Format, format));
|
||||
|
|
@ -612,10 +611,9 @@ mps_res_t mps_pool_create(mps_pool_t *mps_pool_o, mps_arena_t arena,
|
|||
}
|
||||
|
||||
mps_res_t mps_pool_create_v(mps_pool_t *mps_pool_o, mps_arena_t arena,
|
||||
mps_class_t mps_class, va_list args)
|
||||
mps_class_t class, va_list args)
|
||||
{
|
||||
Pool pool;
|
||||
PoolClass class = (PoolClass)mps_class;
|
||||
Res res;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -633,9 +631,8 @@ mps_res_t mps_pool_create_v(mps_pool_t *mps_pool_o, mps_arena_t arena,
|
|||
return res;
|
||||
}
|
||||
|
||||
void mps_pool_destroy(mps_pool_t mps_pool)
|
||||
void mps_pool_destroy(mps_pool_t pool)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
|
||||
AVER(TESTT(Pool, pool));
|
||||
|
|
@ -649,9 +646,8 @@ void mps_pool_destroy(mps_pool_t mps_pool)
|
|||
}
|
||||
|
||||
|
||||
mps_res_t mps_alloc(mps_addr_t *p_o, mps_pool_t mps_pool, size_t size, ...)
|
||||
mps_res_t mps_alloc(mps_addr_t *p_o, mps_pool_t pool, size_t size, ...)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
Addr p;
|
||||
Res res;
|
||||
|
|
@ -693,9 +689,8 @@ mps_res_t mps_alloc_v(mps_addr_t *p_o, mps_pool_t mps_pool, size_t size,
|
|||
}
|
||||
|
||||
|
||||
void mps_free(mps_pool_t mps_pool, mps_addr_t p, size_t size)
|
||||
void mps_free(mps_pool_t pool, mps_addr_t p, size_t size)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
|
||||
AVER(TESTT(Pool, pool));
|
||||
|
|
@ -716,9 +711,8 @@ void mps_free(mps_pool_t mps_pool, mps_addr_t p, size_t size)
|
|||
|
||||
/* mps_ap_create -- create an allocation point */
|
||||
|
||||
mps_res_t mps_ap_create(mps_ap_t *mps_ap_o, mps_pool_t mps_pool, ...)
|
||||
mps_res_t mps_ap_create(mps_ap_t *mps_ap_o, mps_pool_t pool, ...)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
Buffer buf;
|
||||
BufferClass bufclass;
|
||||
|
|
@ -733,7 +727,7 @@ mps_res_t mps_ap_create(mps_ap_t *mps_ap_o, mps_pool_t mps_pool, ...)
|
|||
|
||||
AVERT(Pool, pool);
|
||||
|
||||
va_start(args, mps_pool);
|
||||
va_start(args, pool);
|
||||
bufclass = PoolDefaultBufferClass(pool);
|
||||
res = BufferCreateV(&buf, bufclass, pool, TRUE, args);
|
||||
va_end(args);
|
||||
|
|
@ -749,10 +743,9 @@ mps_res_t mps_ap_create(mps_ap_t *mps_ap_o, mps_pool_t mps_pool, ...)
|
|||
|
||||
/* mps_ap_create_v -- create an allocation point, with varargs */
|
||||
|
||||
mps_res_t mps_ap_create_v(mps_ap_t *mps_ap_o, mps_pool_t mps_pool,
|
||||
mps_res_t mps_ap_create_v(mps_ap_t *mps_ap_o, mps_pool_t pool,
|
||||
va_list args)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
Buffer buf;
|
||||
BufferClass bufclass;
|
||||
|
|
@ -1043,12 +1036,10 @@ mps_bool_t mps_ap_trip(mps_ap_t mps_ap, mps_addr_t p, size_t size)
|
|||
|
||||
/* mps_sac_create -- create an SAC object */
|
||||
|
||||
mps_res_t mps_sac_create(mps_sac_t *mps_sac_o, mps_pool_t mps_pool,
|
||||
size_t classes_count, mps_sac_classes_s *mps_classes)
|
||||
mps_res_t mps_sac_create(mps_sac_t *mps_sac_o, mps_pool_t pool,
|
||||
size_t classes_count, mps_sac_classes_s *classes)
|
||||
{
|
||||
Pool pool = (Pool)mps_pool;
|
||||
Arena arena;
|
||||
SACClasses classes;
|
||||
SAC sac;
|
||||
Res res;
|
||||
|
||||
|
|
@ -1058,7 +1049,6 @@ mps_res_t mps_sac_create(mps_sac_t *mps_sac_o, mps_pool_t mps_pool,
|
|||
|
||||
ArenaEnter(arena);
|
||||
|
||||
classes = (SACClasses)mps_classes;
|
||||
res = SACCreate(&sac, pool, (Count)classes_count, classes);
|
||||
|
||||
ArenaLeave(arena);
|
||||
|
|
@ -1287,11 +1277,10 @@ mps_res_t mps_root_create_fmt(mps_root_t *mps_root_o, mps_arena_t arena,
|
|||
|
||||
mps_res_t mps_root_create_reg(mps_root_t *mps_root_o, mps_arena_t arena,
|
||||
mps_rank_t mps_rank, mps_rm_t mps_rm,
|
||||
mps_thr_t mps_thr, mps_reg_scan_t mps_reg_scan,
|
||||
mps_thr_t thread, mps_reg_scan_t mps_reg_scan,
|
||||
void *reg_scan_p, size_t mps_size)
|
||||
{
|
||||
Rank rank = (Rank)mps_rank;
|
||||
Thread thread = (Thread)mps_thr;
|
||||
Root root;
|
||||
Res res;
|
||||
|
||||
|
|
@ -1321,10 +1310,9 @@ mps_res_t mps_root_create_reg(mps_root_t *mps_root_o, mps_arena_t arena,
|
|||
* See .reg-scan. */
|
||||
|
||||
mps_res_t mps_stack_scan_ambig(mps_ss_t mps_ss,
|
||||
mps_thr_t mps_thr, void *p, size_t s)
|
||||
mps_thr_t thread, void *p, size_t s)
|
||||
{
|
||||
ScanState ss = PARENT(ScanStateStruct, ss_s, mps_ss);
|
||||
Thread thread = (Thread)mps_thr;
|
||||
UNUSED(s);
|
||||
return ThreadScan(ss, thread, p);
|
||||
}
|
||||
|
|
@ -1376,9 +1364,8 @@ mps_res_t mps_thread_reg(mps_thr_t *mps_thr_o, mps_arena_t arena)
|
|||
return MPS_RES_OK;
|
||||
}
|
||||
|
||||
void mps_thread_dereg(mps_thr_t mps_thr)
|
||||
void mps_thread_dereg(mps_thr_t thread)
|
||||
{
|
||||
Thread thread = (Thread)mps_thr;
|
||||
Arena arena;
|
||||
|
||||
AVER(ThreadCheckSimple(thread));
|
||||
|
|
@ -1561,10 +1548,8 @@ mps_bool_t mps_message_get(mps_message_t *mps_message_return,
|
|||
}
|
||||
|
||||
void mps_message_discard(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
||||
MessageDiscard(arena, message);
|
||||
|
|
@ -1578,9 +1563,8 @@ void mps_message_discard(mps_arena_t arena,
|
|||
/* -- All Message Types */
|
||||
|
||||
mps_message_type_t mps_message_type(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
MessageType type;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -1593,9 +1577,8 @@ mps_message_type_t mps_message_type(mps_arena_t arena,
|
|||
}
|
||||
|
||||
mps_clock_t mps_message_clock(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
Clock postedClock;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -1612,9 +1595,8 @@ mps_clock_t mps_message_clock(mps_arena_t arena,
|
|||
|
||||
void mps_message_finalization_ref(mps_addr_t *mps_addr_return,
|
||||
mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
Ref ref;
|
||||
|
||||
AVER(mps_addr_return != NULL);
|
||||
|
|
@ -1631,9 +1613,8 @@ void mps_message_finalization_ref(mps_addr_t *mps_addr_return,
|
|||
/* -- mps_message_type_gc */
|
||||
|
||||
size_t mps_message_gc_live_size(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
Size size;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -1646,9 +1627,8 @@ size_t mps_message_gc_live_size(mps_arena_t arena,
|
|||
}
|
||||
|
||||
size_t mps_message_gc_condemned_size(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
Size size;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -1661,9 +1641,8 @@ size_t mps_message_gc_condemned_size(mps_arena_t arena,
|
|||
}
|
||||
|
||||
size_t mps_message_gc_not_condemned_size(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
Message message = (Message)mps_message;
|
||||
Size size;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
|
@ -1678,10 +1657,9 @@ size_t mps_message_gc_not_condemned_size(mps_arena_t arena,
|
|||
/* -- mps_message_type_gc_start */
|
||||
|
||||
const char *mps_message_gc_start_why(mps_arena_t arena,
|
||||
mps_message_t mps_message)
|
||||
mps_message_t message)
|
||||
{
|
||||
const char *s;
|
||||
Message message = (Message)mps_message;
|
||||
|
||||
ArenaEnter(arena);
|
||||
|
||||
|
|
@ -1885,10 +1863,9 @@ mps_res_t mps_chain_create(mps_chain_t *chain_o, mps_arena_t arena,
|
|||
|
||||
/* mps_chain_destroy -- destroy a chain */
|
||||
|
||||
void mps_chain_destroy(mps_chain_t mps_chain)
|
||||
void mps_chain_destroy(mps_chain_t chain)
|
||||
{
|
||||
Arena arena;
|
||||
Chain chain = (Chain)mps_chain;
|
||||
|
||||
AVER(TESTT(Chain, chain));
|
||||
arena = chain->arena;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue