mirror of
https://github.com/janet-lang/janet
synced 2024-12-01 04:19:55 +00:00
Add a few asserts to quiet some of the -fanalyze calls in gcc 13.
This commit is contained in:
parent
5de889419f
commit
d0aa7ef590
@ -314,6 +314,7 @@ static Janet doframe(JanetStackFrame *frame) {
|
|||||||
if (frame->func && frame->pc) {
|
if (frame->func && frame->pc) {
|
||||||
Janet *stack = (Janet *)frame + JANET_FRAME_SIZE;
|
Janet *stack = (Janet *)frame + JANET_FRAME_SIZE;
|
||||||
JanetArray *slots;
|
JanetArray *slots;
|
||||||
|
janet_assert(def != NULL, "def != NULL");
|
||||||
off = (int32_t)(frame->pc - def->bytecode);
|
off = (int32_t)(frame->pc - def->bytecode);
|
||||||
janet_table_put(t, janet_ckeywordv("pc"), janet_wrap_integer(off));
|
janet_table_put(t, janet_ckeywordv("pc"), janet_wrap_integer(off));
|
||||||
if (def->sourcemap) {
|
if (def->sourcemap) {
|
||||||
|
@ -81,6 +81,7 @@ JanetFiber *janet_fiber_reset(JanetFiber *fiber, JanetFunction *callee, int32_t
|
|||||||
}
|
}
|
||||||
fiber->stacktop = newstacktop;
|
fiber->stacktop = newstacktop;
|
||||||
}
|
}
|
||||||
|
/* Don't panic on failure since we use this to implement janet_pcall */
|
||||||
if (janet_fiber_funcframe(fiber, callee)) return NULL;
|
if (janet_fiber_funcframe(fiber, callee)) return NULL;
|
||||||
janet_fiber_frame(fiber)->flags |= JANET_STACKFRAME_ENTRANCE;
|
janet_fiber_frame(fiber)->flags |= JANET_STACKFRAME_ENTRANCE;
|
||||||
#ifdef JANET_EV
|
#ifdef JANET_EV
|
||||||
@ -92,7 +93,9 @@ JanetFiber *janet_fiber_reset(JanetFiber *fiber, JanetFunction *callee, int32_t
|
|||||||
|
|
||||||
/* Create a new fiber with argn values on the stack. */
|
/* Create a new fiber with argn values on the stack. */
|
||||||
JanetFiber *janet_fiber(JanetFunction *callee, int32_t capacity, int32_t argc, const Janet *argv) {
|
JanetFiber *janet_fiber(JanetFunction *callee, int32_t capacity, int32_t argc, const Janet *argv) {
|
||||||
return janet_fiber_reset(fiber_alloc(capacity), callee, argc, argv);
|
JanetFiber *result = janet_fiber_reset(fiber_alloc(capacity), callee, argc, argv);
|
||||||
|
if (NULL == result) janet_panic("cannot create fiber");
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef JANET_DEBUG
|
#ifdef JANET_DEBUG
|
||||||
|
@ -775,7 +775,7 @@ static const char *get_fmt_mapping(char c) {
|
|||||||
if (format_mappings[i].c == c)
|
if (format_mappings[i].c == c)
|
||||||
return format_mappings[i].mapping;
|
return format_mappings[i].mapping;
|
||||||
}
|
}
|
||||||
return NULL;
|
janet_assert(0, "bad format mapping");
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char *scanformat(
|
static const char *scanformat(
|
||||||
|
@ -1019,6 +1019,7 @@ static JanetSlot janetc_fn(JanetFopts opts, int32_t argn, const Janet *argv) {
|
|||||||
for (i = 0; i < paramcount; i++) {
|
for (i = 0; i < paramcount; i++) {
|
||||||
Janet param = params[i];
|
Janet param = params[i];
|
||||||
if (!janet_checktype(param, JANET_SYMBOL)) {
|
if (!janet_checktype(param, JANET_SYMBOL)) {
|
||||||
|
janet_assert(janet_v_count(destructed_params) > j, "out of bounds");
|
||||||
JanetSlot reg = destructed_params[j++];
|
JanetSlot reg = destructed_params[j++];
|
||||||
destructure(c, param, reg, defleaf, NULL);
|
destructure(c, param, reg, defleaf, NULL);
|
||||||
janetc_freeslot(c, reg);
|
janetc_freeslot(c, reg);
|
||||||
|
@ -108,6 +108,7 @@ static const uint8_t **janet_symcache_findmem(
|
|||||||
}
|
}
|
||||||
notfound:
|
notfound:
|
||||||
*success = 0;
|
*success = 0;
|
||||||
|
janet_assert(firstEmpty != NULL, "symcache failed to get memory");
|
||||||
return firstEmpty;
|
return firstEmpty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -499,7 +499,7 @@ typedef struct {
|
|||||||
static void namebuf_init(NameBuf *namebuf, const char *prefix) {
|
static void namebuf_init(NameBuf *namebuf, const char *prefix) {
|
||||||
size_t plen = strlen(prefix);
|
size_t plen = strlen(prefix);
|
||||||
namebuf->plen = plen;
|
namebuf->plen = plen;
|
||||||
namebuf->buf = janet_malloc(namebuf->plen + 256);
|
namebuf->buf = janet_smalloc(namebuf->plen + 256);
|
||||||
if (NULL == namebuf->buf) {
|
if (NULL == namebuf->buf) {
|
||||||
JANET_OUT_OF_MEMORY;
|
JANET_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
@ -508,12 +508,12 @@ static void namebuf_init(NameBuf *namebuf, const char *prefix) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void namebuf_deinit(NameBuf *namebuf) {
|
static void namebuf_deinit(NameBuf *namebuf) {
|
||||||
janet_free(namebuf->buf);
|
janet_sfree(namebuf->buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *namebuf_name(NameBuf *namebuf, const char *suffix) {
|
static char *namebuf_name(NameBuf *namebuf, const char *suffix) {
|
||||||
size_t slen = strlen(suffix);
|
size_t slen = strlen(suffix);
|
||||||
namebuf->buf = janet_realloc(namebuf->buf, namebuf->plen + 2 + slen);
|
namebuf->buf = janet_srealloc(namebuf->buf, namebuf->plen + 2 + slen);
|
||||||
if (NULL == namebuf->buf) {
|
if (NULL == namebuf->buf) {
|
||||||
JANET_OUT_OF_MEMORY;
|
JANET_OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ void *janet_v_grow(void *v, int32_t increment, int32_t itemsize) {
|
|||||||
|
|
||||||
/* Convert a buffer to normal allocated memory (forget capacity) */
|
/* Convert a buffer to normal allocated memory (forget capacity) */
|
||||||
void *janet_v_flattenmem(void *v, int32_t itemsize) {
|
void *janet_v_flattenmem(void *v, int32_t itemsize) {
|
||||||
int32_t *p;
|
char *p;
|
||||||
if (NULL == v) return NULL;
|
if (NULL == v) return NULL;
|
||||||
size_t size = (size_t) itemsize * janet_v__cnt(v);
|
size_t size = (size_t) itemsize * janet_v__cnt(v);
|
||||||
p = janet_malloc(size);
|
p = janet_malloc(size);
|
||||||
|
@ -1513,14 +1513,14 @@ JanetSignal janet_pcall(
|
|||||||
JanetFiber *fiber;
|
JanetFiber *fiber;
|
||||||
if (f && *f) {
|
if (f && *f) {
|
||||||
fiber = janet_fiber_reset(*f, fun, argc, argv);
|
fiber = janet_fiber_reset(*f, fun, argc, argv);
|
||||||
|
if (NULL == fiber) {
|
||||||
|
*out = janet_cstringv("arity mismatch");
|
||||||
|
return JANET_SIGNAL_ERROR;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
fiber = janet_fiber(fun, 64, argc, argv);
|
fiber = janet_fiber(fun, 64, argc, argv);
|
||||||
}
|
}
|
||||||
if (f) *f = fiber;
|
if (f) *f = fiber;
|
||||||
if (!fiber) {
|
|
||||||
*out = janet_cstringv("arity mismatch");
|
|
||||||
return JANET_SIGNAL_ERROR;
|
|
||||||
}
|
|
||||||
return janet_continue(fiber, janet_wrap_nil(), out);
|
return janet_continue(fiber, janet_wrap_nil(), out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user