summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES2
-rw-r--r--include/version.h2
-rw-r--r--libinterp/heap.c4
3 files changed, 5 insertions, 3 deletions
diff --git a/CHANGES b/CHANGES
index 48e11ba4..d6761e7d 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+20111003
+ libinterp/heap.c:/^dtype discount size of map [issue 258]
20110820
emu/*/devfs.c, emu/port/devfs-posix.c - stubs for osdisksize, Linux implementation of osdisksize
emu/port/devfs-posix.c - also try SOCK_DGRAM for AF_UNIX [issue 269]
diff --git a/include/version.h b/include/version.h
index 7b593714..e25bac6b 100644
--- a/include/version.h
+++ b/include/version.h
@@ -1 +1 @@
-#define VERSION "Fourth Edition (20110820)"
+#define VERSION "Fourth Edition (20111003)"
diff --git a/libinterp/heap.c b/libinterp/heap.c
index 1ac715f7..7da4b2df 100644
--- a/libinterp/heap.c
+++ b/libinterp/heap.c
@@ -158,7 +158,7 @@ freelist(Heap *h, int swept)
l = l->tail;
while(l != (List*)H) {
t = l->t;
- th = D2H((ulong)l);
+ th = D2H(l);
if(th->ref-- != 1)
break;
th->t->ref--; /* should be &Tlist and ref shouldn't go to 0 here nor be 0 already */
@@ -242,7 +242,7 @@ dtype(void (*destroy)(Heap*, int), int size, uchar *map, int mapsize)
{
Type *t;
- t = malloc(sizeof(Type)+mapsize);
+ t = malloc(sizeof(Type)-sizeof(t->map)+mapsize);
if(t != nil) {
t->ref = 1;
t->free = destroy;