why did you change do_alloca() to potentially less efficient emalloc()?