mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-01-18 08:51:45 -08:00
Peek/poke should not assume addr is in a seg
Copied from Perforce Change: 18767 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
0cd75c1021
commit
4a02272f90
1 changed files with 14 additions and 6 deletions
|
|
@ -1,6 +1,6 @@
|
|||
/* impl.c.arena: ARENA IMPLEMENTATION
|
||||
*
|
||||
* $HopeName: MMsrc!arena.c(trunk.7) $
|
||||
* $HopeName: MMsrc!arena.c(trunk.8) $
|
||||
* Copyright (C) 1997 The Harlequin Group Limited. All rights reserved.
|
||||
*
|
||||
* .readership: Any MPS developer
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
/* finalization */
|
||||
#include "poolmrg.h"
|
||||
|
||||
SRCID(arena, "$HopeName: MMsrc!arena.c(trunk.7) $");
|
||||
SRCID(arena, "$HopeName: MMsrc!arena.c(trunk.8) $");
|
||||
|
||||
|
||||
/* All static data objects are declared here. See .static */
|
||||
|
|
@ -1107,8 +1107,13 @@ Word ArenaPeek(Arena arena, Addr addr)
|
|||
AVERT(Arena, arena);
|
||||
|
||||
b = SegOfAddr(&seg, arena, addr);
|
||||
AVER(b);
|
||||
return ArenaPeekSeg(arena, seg, addr);
|
||||
if(b) {
|
||||
return ArenaPeekSeg(arena, seg, addr);
|
||||
} else {
|
||||
Word w;
|
||||
w = *(Word *)addr;
|
||||
return w;
|
||||
}
|
||||
}
|
||||
|
||||
Word ArenaPeekSeg(Arena arena, Seg seg, Addr addr)
|
||||
|
|
@ -1136,8 +1141,11 @@ void ArenaPoke(Arena arena, Addr addr, Word word)
|
|||
/* can't check word, will check addr shortly */
|
||||
|
||||
b = SegOfAddr(&seg, arena, addr);
|
||||
AVER(b);
|
||||
ArenaPokeSeg(arena, seg, addr, word);
|
||||
if(b) {
|
||||
ArenaPokeSeg(arena, seg, addr, word);
|
||||
} else {
|
||||
*(Word *)addr = word;
|
||||
}
|
||||
}
|
||||
|
||||
void ArenaPokeSeg(Arena arena, Seg seg, Addr addr, Word word)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue