mirror of
https://gitlab.com/embeddable-common-lisp/ecl.git
synced 2026-01-20 19:42:30 -08:00
Mark some blocks, which contain no pointers (for instance bytecodes) as atomic
This commit is contained in:
parent
7cc625e136
commit
317e0752ba
3 changed files with 3 additions and 3 deletions
|
|
@ -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++) {
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue