• Dmitry Antipov's avatar
    Add macros to allocate temporary Lisp objects with alloca. · c7dfea94
    Dmitry Antipov authored
    Respect MAX_ALLOCA and fall back to regular GC for large objects.
    * character.h (parse_str_as_multibyte): Move prototype to ...
    * lisp.h (parse_str_as_multibyte): ... here.
    (struct Lisp_Cons): Add GCALIGNED attribute if supported.
    (scoped_cons, scoped_list2, build_local_vector, build_local_string):
    New macros.
    (scoped_cons_init, pointer_valid_for_lisp_object, local_vector_init)
    (local_string_init): New functions.
    * alloc.c (verify_alloca) [ENABLE_CHECKING]: New function.
    (init_alloc_once): Call it.
lisp.h 155 KB