mirror of
https://github.com/janet-lang/janet
synced 2025-05-05 17:04:15 +00:00
Minor fixes for meson minimum build.
Also, fix regression that looses function name information.
This commit is contained in:
parent
c97d3cf359
commit
68a12d1d17
@ -722,6 +722,8 @@ void janet_def_addflags(JanetFuncDef *def) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Compile a funcdef */
|
/* Compile a funcdef */
|
||||||
|
/* Once the various other settings of the FuncDef have been tweaked,
|
||||||
|
* call janet_def_addflags to set the proper flags for the funcdef */
|
||||||
JanetFuncDef *janetc_pop_funcdef(JanetCompiler *c) {
|
JanetFuncDef *janetc_pop_funcdef(JanetCompiler *c) {
|
||||||
JanetScope *scope = c->scope;
|
JanetScope *scope = c->scope;
|
||||||
JanetFuncDef *def = janet_funcdef_alloc();
|
JanetFuncDef *def = janet_funcdef_alloc();
|
||||||
@ -789,9 +791,6 @@ JanetFuncDef *janetc_pop_funcdef(JanetCompiler *c) {
|
|||||||
/* Pop the scope */
|
/* Pop the scope */
|
||||||
janetc_popscope(c);
|
janetc_popscope(c);
|
||||||
|
|
||||||
/* Finalize some flags */
|
|
||||||
janet_def_addflags(def);
|
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -843,6 +842,7 @@ JanetCompileResult janet_compile(Janet source, JanetTable *env, const uint8_t *w
|
|||||||
if (c.result.status == JANET_COMPILE_OK) {
|
if (c.result.status == JANET_COMPILE_OK) {
|
||||||
JanetFuncDef *def = janetc_pop_funcdef(&c);
|
JanetFuncDef *def = janetc_pop_funcdef(&c);
|
||||||
def->name = janet_cstring("_thunk");
|
def->name = janet_cstring("_thunk");
|
||||||
|
janet_def_addflags(def);
|
||||||
c.result.funcdef = def;
|
c.result.funcdef = def;
|
||||||
} else {
|
} else {
|
||||||
c.result.error_mapping = c.current_mapping;
|
c.result.error_mapping = c.current_mapping;
|
||||||
|
@ -649,6 +649,7 @@ static JanetSlot janetc_while(JanetFopts opts, int32_t argn, const Janet *argv)
|
|||||||
/* Compile function */
|
/* Compile function */
|
||||||
JanetFuncDef *def = janetc_pop_funcdef(c);
|
JanetFuncDef *def = janetc_pop_funcdef(c);
|
||||||
def->name = janet_cstring("_while");
|
def->name = janet_cstring("_while");
|
||||||
|
janet_def_addflags(def);
|
||||||
int32_t defindex = janetc_addfuncdef(c, def);
|
int32_t defindex = janetc_addfuncdef(c, def);
|
||||||
/* And then load the closure and call it. */
|
/* And then load the closure and call it. */
|
||||||
int32_t cloreg = janetc_regalloc_temp(&c->scope->ra, JANETC_REGTEMP_0);
|
int32_t cloreg = janetc_regalloc_temp(&c->scope->ra, JANETC_REGTEMP_0);
|
||||||
@ -823,6 +824,7 @@ static JanetSlot janetc_fn(JanetFopts opts, int32_t argn, const Janet *argv) {
|
|||||||
if (structarg) def->flags |= JANET_FUNCDEF_FLAG_STRUCTARG;
|
if (structarg) def->flags |= JANET_FUNCDEF_FLAG_STRUCTARG;
|
||||||
|
|
||||||
if (selfref) def->name = janet_unwrap_symbol(head);
|
if (selfref) def->name = janet_unwrap_symbol(head);
|
||||||
|
janet_def_addflags(def);
|
||||||
defindex = janetc_addfuncdef(c, def);
|
defindex = janetc_addfuncdef(c, def);
|
||||||
|
|
||||||
/* Ensure enough slots for vararg function. */
|
/* Ensure enough slots for vararg function. */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user