emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Emacs-diffs] trunk r114515: * bytecode.c (exec_byte_code): Use some


From: Stefan Monnier
Subject: Re: [Emacs-diffs] trunk r114515: * bytecode.c (exec_byte_code): Use some more volatile variables
Date: Fri, 04 Oct 2013 10:05:21 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Could we declare those new vars just locally within the Bpushhandler code?


        Stefan


> +  Lisp_Object *volatile vectorp_volatile;
>  #ifdef BYTE_CODE_SAFE
> -  ptrdiff_t const_length;
> -  Lisp_Object *stacke;
> -  ptrdiff_t bytestr_length;
> +  ptrdiff_t volatile const_length;
> +  Lisp_Object *volatile stacke;
> +  ptrdiff_t volatile bytestr_length;
>  #endif
>    struct byte_stack stack;
> +  struct byte_stack volatile stack_volatile;
>    Lisp_Object *top;
>    Lisp_Object result;
>    enum handlertype type;
> @@ -1119,16 +1122,25 @@
>           PUSH_HANDLER (c, tag, type);
>           c->bytecode_dest = dest;
>           c->bytecode_top = top;
> +         count_volatile = count;
> +         stack_volatile = stack;
> +         vectorp_volatile = vectorp;
> +
>           if (sys_setjmp (c->jmp))
>             {
>               struct handler *c = handlerlist;
> +             int dest;
>               top = c->bytecode_top;
> -             int dest = c->bytecode_dest;
> +             dest = c->bytecode_dest;
>               handlerlist = c->next;
>               PUSH (c->val);
>               CHECK_RANGE (dest);
> +             stack = stack_volatile;
>               stack.pc = stack.byte_string_start + dest;
>             }
> +
> +         count = count_volatile;
> +         vectorp = vectorp_volatile;
>           NEXT;
>         }
 



> _______________________________________________
> Emacs-diffs mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/emacs-diffs



reply via email to

[Prev in Thread] Current Thread [Next in Thread]