diff options
| author | Charles.Forsyth <devnull@localhost> | 2007-04-07 09:40:13 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2007-04-07 09:40:13 +0000 |
| commit | b5eeadad52f7e620402f85c9606f45be13323b8d (patch) | |
| tree | 1c6edd4b3d7fc9277266c66b4dab2593f66b19a0 /os/port/xalloc.c | |
| parent | 9dc22068e29604f4b484e746112a9a4efe6fd57f (diff) | |
20070407-1039 os/port changes
Diffstat (limited to 'os/port/xalloc.c')
| -rw-r--r-- | os/port/xalloc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/os/port/xalloc.c b/os/port/xalloc.c index 73310089..286881c2 100644 --- a/os/port/xalloc.c +++ b/os/port/xalloc.c @@ -163,9 +163,14 @@ xmerge(void *vp, void *vq) { Xhdr *p, *q; - p = vp; - if((uchar*)vp+p->size == (uchar*)vq) { - q = vq; + p = (Xhdr*)(((ulong)vp - offsetof(Xhdr, data[0]))); + q = (Xhdr*)(((ulong)vq - offsetof(Xhdr, data[0]))); + if(p->magix != Magichole || q->magix != Magichole) { + xsummary(); + panic("xmerge(%#p, %#p) bad magic %#lux, %#lux\n", + vp, vq, p->magix, q->magix); + } + if((uchar*)p+p->size == (uchar*)q) { p->size += q->size; return 1; } |
