From 194e496e13927f9b2db685ebfe85baafb71cc4db Mon Sep 17 00:00:00 2001 From: Jon Rafkind Date: Mon, 19 Oct 2009 16:50:08 +0000 Subject: [PATCH] * remove checks for x<0 when x is unsigned * change void* pointer arithmetic to char* * make some gc functions consistent svn: r16368 --- src/mzscheme/gc2/alloc_cache.c | 6 +++--- src/mzscheme/gc2/newgc.c | 13 +++++++------ src/mzscheme/gc2/vm.c | 2 +- src/mzscheme/src/char.c | 3 +-- src/mzscheme/src/numstr.c | 2 ++ src/mzscheme/src/string.c | 4 ---- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/src/mzscheme/gc2/alloc_cache.c b/src/mzscheme/gc2/alloc_cache.c index 87d10eb57c..3ac34b305a 100644 --- a/src/mzscheme/gc2/alloc_cache.c +++ b/src/mzscheme/gc2/alloc_cache.c @@ -103,7 +103,7 @@ inline static void *alloc_cache_find_pages(FreeBlock *blockfree, size_t len, siz return NULL; } -static void alloc_cache_return_mem(VM *vm, void *p, size_t len, int zeroed) +static void alloc_cache_return_mem(VM *vm, char *p, size_t len, int zeroed) { int i; FreeBlock *blockfree = vm->freeblocks; @@ -186,7 +186,7 @@ static void vm_flush_freed_pages(VM *vm) static void *vm_malloc_pages(VM *vm, size_t len, size_t alignment, int dirty_ok) { - void *r; + char *r; FreeBlock *blockfree = vm->freeblocks; if (!page_size) @@ -206,7 +206,7 @@ static void *vm_malloc_pages(VM *vm, size_t len, size_t alignment, int dirty_ok) if (alignment) { /* We allocated too large so we can choose the alignment. */ size_t extra = alignment; - void *real_r = (void *)(((unsigned long)r + (alignment - 1)) & (~(alignment - 1))); + char *real_r = (char*)(((unsigned long)r + (alignment - 1)) & (~(alignment - 1))); long pre_extra = real_r - r; /* in front extra */ diff --git a/src/mzscheme/gc2/newgc.c b/src/mzscheme/gc2/newgc.c index e15b9aa797..71027763ee 100644 --- a/src/mzscheme/gc2/newgc.c +++ b/src/mzscheme/gc2/newgc.c @@ -183,7 +183,8 @@ void GC_set_collect_inform_callback(void (*func)(int major_gc, long pre_used, lo /*****************************************************************************/ static void garbage_collect(NewGC*, int); -static void out_of_memory() +/* do not use the gc parameter or check if its NULL in the future */ +static void out_of_memory(NewGC* gc) { if (GC_report_out_of_memory) GC_report_out_of_memory(); @@ -193,7 +194,7 @@ static void out_of_memory() static void *ofm_malloc(size_t size) { void *ptr = malloc(size); - if (!ptr) out_of_memory(); + if (!ptr) out_of_memory(NULL); return ptr; } @@ -226,7 +227,7 @@ inline static void check_used_against_max(NewGC *gc, size_t len) gc->used_pages -= delta; GC_out_of_memory(); } - out_of_memory(); + out_of_memory(NULL); } } } @@ -244,7 +245,7 @@ static void *malloc_pages(NewGC *gc, size_t len, size_t alignment) void *ptr; check_used_against_max(gc, len); ptr = vm_malloc_pages(gc->vm, len, alignment, 0); - if (!ptr) out_of_memory(); + if (!ptr) out_of_memory(NULL); return ptr; } @@ -253,7 +254,7 @@ static void *malloc_dirty_pages(NewGC *gc, size_t len, size_t alignment) void *ptr; check_used_against_max(gc, len); ptr = vm_malloc_pages(gc->vm, len, alignment, 1); - if (!ptr) out_of_memory(); + if (!ptr) out_of_memory(NULL); return ptr; } @@ -701,7 +702,7 @@ static void *allocate_medium(const size_t request_size_bytes, const int type) inline static mpage *gen0_create_new_mpage(NewGC *gc) { mpage *newmpage; - newmpage = malloc_mpage(gc); + newmpage = malloc_mpage(); newmpage->addr = malloc_dirty_pages(gc, GEN0_PAGE_SIZE, APAGE_SIZE); newmpage->size_class = 0; newmpage->size = PREFIX_SIZE; diff --git a/src/mzscheme/gc2/vm.c b/src/mzscheme/gc2/vm.c index 587bf18246..74a675d28d 100644 --- a/src/mzscheme/gc2/vm.c +++ b/src/mzscheme/gc2/vm.c @@ -15,7 +15,7 @@ static inline size_t vm_round_up_to_page_size(size_t len, size_t page_size) { #if !( defined(_WIN32) || defined(OSKIT) ) typedef struct { - void *start; + char *start; long len; short age; short zeroed; diff --git a/src/mzscheme/src/char.c b/src/mzscheme/src/char.c index 0d383272c6..543b598c5b 100644 --- a/src/mzscheme/src/char.c +++ b/src/mzscheme/src/char.c @@ -269,8 +269,7 @@ Scheme_Object *scheme_make_char(mzchar ch) Scheme_Object *scheme_make_char_or_nul(mzchar v) { - if ((v >= 0) - && (v <= 0x10FFFF) + if ((v <= 0x10FFFF) && ((v < 0xD800) || (v > 0xDFFF))) return scheme_make_char(v); diff --git a/src/mzscheme/src/numstr.c b/src/mzscheme/src/numstr.c index bb6057fd0d..2f71c47a87 100644 --- a/src/mzscheme/src/numstr.c +++ b/src/mzscheme/src/numstr.c @@ -1734,6 +1734,8 @@ static Scheme_Object *bytes_to_integer (int argc, Scheme_Object *argv[]) #endif break; } + + /* throw an error here */ } #define MZ_U8HI 0 diff --git a/src/mzscheme/src/string.c b/src/mzscheme/src/string.c index 1827706d9e..f2bb274bd9 100644 --- a/src/mzscheme/src/string.c +++ b/src/mzscheme/src/string.c @@ -2774,7 +2774,6 @@ static char *locale_recase(int to_up, s = in XFORM_OK_PLUS id; wl = mz_mbsnrtowcs(NULL, &s, iilen, 0, &state); s = NULL; - if (wl < 0) return NULL; /* Allocate space */ if (wl < MZ_WC_BUF_SIZE) { @@ -2788,7 +2787,6 @@ static char *locale_recase(int to_up, s = in XFORM_OK_PLUS id; wl2 = mz_mbsnrtowcs(wc, &s, iilen, wl + 1, &state); s = NULL; - if (wl2 < 0) return NULL; /* Very strange! */ wc[wl] = 0; /* just in case */ @@ -2813,7 +2811,6 @@ static char *locale_recase(int to_up, ws = wc; ml = mz_wcsnrtombs(NULL, (const wchar_t **)&ws, wl, 0, &state); ws = NULL; - if (ml < 0) return NULL; /* Allocate space */ *oolen = ml; @@ -2827,7 +2824,6 @@ static char *locale_recase(int to_up, ws = wc; ml2 = mz_wcsnrtombs(out + od, (const wchar_t **)&ws, wl, ml + 1, &state); ws = NULL; - if (ml2 < 0) return NULL; /* Very strange! */ out[od + ml] = 0;