From 317e0752babd85e1eae8706ae364a2cf3d308068 Mon Sep 17 00:00:00 2001 From: jjgarcia Date: Mon, 27 Jun 2005 08:15:52 +0000 Subject: [PATCH] Mark some blocks, which contain no pointers (for instance bytecodes) as atomic --- src/c/compiler.d | 2 +- src/c/read.d | 2 +- src/c/string.d | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/c/compiler.d b/src/c/compiler.d index 9e113fd71..5b2ee7ca4 100644 --- a/src/c/compiler.d +++ b/src/c/compiler.d @@ -155,7 +155,7 @@ asm_end(cl_index beginning) { bytecodes = cl_alloc_object(t_bytecodes); bytecodes->bytecodes.code_size = code_size; bytecodes->bytecodes.data_size = data_size; - bytecodes->bytecodes.code = cl_alloc(code_size * sizeof(cl_opcode)); + bytecodes->bytecodes.code = cl_alloc_atomic(code_size * sizeof(cl_opcode)); bytecodes->bytecodes.data = (cl_object*)cl_alloc(data_size * sizeof(cl_object)); bytecodes->bytecodes.lex = Cnil; for (i = 0, code = (cl_opcode *)bytecodes->bytecodes.code; i < code_size; i++) { diff --git a/src/c/read.d b/src/c/read.d index 651c2336e..3ee4fad68 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -744,7 +744,7 @@ sharp_Y_reader(cl_object in, cl_object c, cl_object d) rv->bytecodes.definition = CAR(x); x = CDR(x); rv->bytecodes.code_size = fixint(cl_list_length(CAR(x))); - rv->bytecodes.code = cl_alloc(rv->bytecodes.code_size * sizeof(uint16_t)); + rv->bytecodes.code = cl_alloc_atomic(rv->bytecodes.code_size * sizeof(uint16_t)); for ( i=0, nth=CAR(x) ; !endp(nth) ; i++, nth=CDR(nth) ) ((cl_opcode*)(rv->bytecodes.code))[i] = fixint(CAR(nth)); x = CDR(x); diff --git a/src/c/string.d b/src/c/string.d index a890525bb..31b2c983e 100644 --- a/src/c/string.d +++ b/src/c/string.d @@ -701,7 +701,7 @@ ecl_string_push_extend(cl_object s, int c) if (s->string.dim >= ADIMLIM/2) FEerror("Can't extend the string.", 0); new_length = (s->string.dim + 1) * 2; - p = (char *)cl_alloc(new_length+1); p[new_length] = 0; + p = (char *)cl_alloc_atomic(new_length+1); p[new_length] = 0; memcpy(p, s->string.self, s->string.dim * sizeof(char)); s->string.dim = new_length; adjust_displaced(s, p - (char *)s->string.self);