From b6ebc494a27e81ac7ce752e8f9fe181f812a5e34 Mon Sep 17 00:00:00 2001 From: Julian Rother <julianr@fsmpi.rwth-aachen.de> Date: Wed, 1 Nov 2017 23:47:13 +0100 Subject: [PATCH] Got rid of JSTR_SIZE --- remux.c | 7 +++---- thumbnail.c | 6 +++--- util.h | 6 +++--- util/json.c | 16 +++++----------- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/remux.c b/remux.c index 02723c9..0eb4c39 100644 --- a/remux.c +++ b/remux.c @@ -9,13 +9,12 @@ static AVRational chapter_time_base = {1, 1}; void parse_dict(AVDictionary **d, char *s) { char *val; - char key[JSTR_SIZE], value[JSTR_SIZE]; for (s = jenter(s); s; s = jnext(s)) { - if (val = jstrb(jvalue(s), 0, value)) - av_dict_set(d, jstrb(s, 0, key), val, 0); + if (val = jstr(jvalue(s), 0)) + av_dict_set(d, jstr(s, 0), val, 0); else - av_dict_set_int(d, jstrb(s, 0, key), jint(jvalue(s), 0), 0); + av_dict_set_int(d, jstr(s, 0), jint(jvalue(s), 0), 0); } } diff --git a/thumbnail.c b/thumbnail.c index 0266bcc..047639f 100644 --- a/thumbnail.c +++ b/thumbnail.c @@ -25,7 +25,7 @@ AVFrame *scale_frame(AVFrame *frame, enum AVPixelFormat pix_fmt, int main(int argc, char *argv[]) { int err, vidx; - char lectureid[JSTR_SIZE], *src, *tmp, *dest; + char *src, *tmp, *dest; AVFormatContext *demux, *mux; AVCodecContext *dec, *enc; AVPacket pkt; @@ -37,10 +37,10 @@ int main(int argc, char *argv[]) /* Prepare arguments */ jobid = atoi(argv[1]); - jstrb(jlookup(argv[4], "lectureid"), "-1", lectureid); src = mprintf("%s/%s", CONFIG_VIDEOS_RELEASED, jstr(jlookup(argv[4], "path"), "")); tmp = mprintf("%s/.tmp-%i", CONFIG_VIDEOS_TMP, jobid); - dest = mprintf("%s/thumbnail/l_%s.jpg", CONFIG_VIDEOS_RELEASED, lectureid); + dest = mprintf("%s/thumbnail/l_%s.jpg", CONFIG_VIDEOS_RELEASED, + jstr(jlookup(argv[4], "lectureid"), "0")); ping_job(jobid, "running", 0); /* Open src */ diff --git a/util.h b/util.h index 1a86f0f..76870b3 100644 --- a/util.h +++ b/util.h @@ -19,11 +19,11 @@ int ping_job(int id, char *state, char *status, ...); void job_failed(char *msg, ...); /* JSON parser */ -#define JSTR_SIZE 100 +#define JSON_KEY_SIZE 100 ssize_t jbin(char *s, char *buf, size_t len); -char *jstrb(char *s, char *err, char *buf); -char *jstr(char *s, char *err); +char *jstrb(char *s, char *err, char *buf, size_t len); +#define jstr(s, e) jstrb(s, e, (char[JSON_KEY_SIZE]){0}, JSON_KEY_SIZE) int jint(char *s, int err); char *jenter(char *s); char *jnext(char *s); diff --git a/util/json.c b/util/json.c index 9fb84e2..3eb4459 100644 --- a/util/json.c +++ b/util/json.c @@ -135,22 +135,16 @@ ssize_t jbin(char *s, char *buf, size_t len) return i; } -char *jstrb(char *s, char *err, char *buf) +char *jstrb(char *s, char *err, char *buf, size_t len) { ssize_t res; - res = jbin(s, buf, JSTR_SIZE); - if (res == -1 || res+1 >= JSTR_SIZE) + res = jbin(s, buf, len); + if (res == -1 || res+1 >= len) return err; buf[res] = 0; return buf; } -char *jstr(char *s, char *err) -{ - static __thread char buf[JSTR_SIZE]; - return jstrb(s, err, buf); -} - int jint(char *s, int err) { if (!s) @@ -199,14 +193,14 @@ char *jvalue(char *s) char *jlookup(char *s, char *key) { - static __thread char buf[JSTR_SIZE]; + static __thread char buf[JSON_KEY_SIZE]; if (!s) return 0; s = skip_ws(s); if (*s != '{') return 0; for (s = skip_ws(s+1); s; s = jnext(s)) - if (!strcmp(jstrb(s, "INVALID KEY", buf), key)) + if (!strcmp(jstrb(s, "INVALID KEY", BL(buf)), key)) return jvalue(s); return 0; } -- GitLab