From ee0315e6209283e4d9e25be95219140d034d7077 Mon Sep 17 00:00:00 2001 From: Paul Dino Jones Date: Sat, 3 Feb 2024 12:55:54 -0500 Subject: [PATCH] Fix memory allocation on some queries --- src/gilles/gameloop/gameloop.c | 6 +----- src/gilles/gameloop/hoeldb.c | 17 +++++++++-------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/gilles/gameloop/gameloop.c b/src/gilles/gameloop/gameloop.c index bb77e63..33d434b 100644 --- a/src/gilles/gameloop/gameloop.c +++ b/src/gilles/gameloop/gameloop.c @@ -165,13 +165,9 @@ int mainloop(Parameters* p) while (go == true) { - - - getSim(simdata, simmap, &p->simon, &p->sim); - - if (p->simon == true) + if (p->simon == true && simdata->simstatus > 1) { p->program_state = 1; if (p->cli == true) diff --git a/src/gilles/gameloop/hoeldb.c b/src/gilles/gameloop/hoeldb.c index 7a489ad..98600a2 100644 --- a/src/gilles/gameloop/hoeldb.c +++ b/src/gilles/gameloop/hoeldb.c @@ -160,7 +160,6 @@ int getlaps(struct _h_connection* conn, const char* sessionname, LapDbo* laps, i int gettrack(struct _h_connection* conn, const char* trackname) { - json_t* j_result; char* where_clause = h_build_where_clause(conn, "config_name=%s AND track_name=%s", "default", trackname); json_t* j_query = json_pack("{sss[s]s{s{ssss}}}", "table", "track_config", "columns", "track_config_id", "where", " ", "operator", "raw", @@ -170,8 +169,8 @@ int gettrack(struct _h_connection* conn, const char* trackname) int res = h_select(conn, j_query, &j_result, &qq); // Deallocate j_query since it won't be needed anymore - json_decref(j_query); - h_free(where_clause); + //json_decref(j_query); + //h_free(where_clause); int track_config = -1; // Test query execution result if (res == H_OK) @@ -215,8 +214,6 @@ int getdriver(struct _h_connection* conn, const char* driver_name) int res = h_select(conn, j_query, &j_result, &qq); //slogi("here your query: %s", qq); // Deallocate j_query since it won't be needed anymore - json_decref(j_query); - h_free(where_clause); int driver_id = -1; // Test query execution result if (res == H_OK) @@ -459,7 +456,7 @@ int addstint(struct _h_connection* conn, int sessionid, int driverid, int carid, json_object_set_new(values, "game_car_id", json_integer(carid)); json_object_set_new(values, "laps", json_integer(0)); json_object_set_new(values, "valid_laps", json_integer(0)); - json_object_set_new(values, "tyre", json_string("Vintage") ); + json_object_set_new(values, "tyre", json_string(simdata->tyrecompound) ); // best_lap_id json_object_set_new(values, "is_finished", json_integer(0)); @@ -484,6 +481,7 @@ int addstint(struct _h_connection* conn, int sessionid, int driverid, int carid, int addstintlap(struct _h_connection* conn, int stintid, SimData* simdata) { + slogt("adding stint lap"); // stint laps // stint_lap_id | stint_id | sector_1 | sector_2 | sector_3 | grip | tyre | time | cuts | crashes // max_speed | avg_speed | finished_at @@ -496,7 +494,8 @@ int addstintlap(struct _h_connection* conn, int stintid, SimData* simdata) json_t* values = json_object(); json_object_set_new(values, "stint_id", json_integer(stintid)); - json_object_set_new(values, "tyre", json_string("Vintage") ); + json_object_set_new(values, "tyre", json_string(simdata->tyrecompound) ); + json_array_append(json_arr, values); char* qq; int res = h_insert(conn, root, &qq); @@ -553,6 +552,8 @@ int addcar(struct _h_connection* conn, int carid, const char* carname) int addtelemetry(struct _h_connection* conn, int points, int stintid) { + slogt("adding telemetry record"); + json_t* root = json_object(); json_t* json_arr = json_array(); @@ -589,7 +590,7 @@ int closelap(struct _h_connection* conn, int lapid, int sector1, int sector2, in slogt("closing previous lap ", lapid); - char* query = malloc((sizeof(char)*632)); + char* query = malloc((sizeof(char)*650)); sprintf(query, "UPDATE %s SET %s=%i, %s=%i, %s=%i, %s=%i, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, %s=%f, finished_at=NOW() WHERE lap_id=%i;", "laps", "time", simdata->lastlap, "sector_1", sector1, "sector_2", sector2, "sector_3", sector3, "right_front_tyre_temp", simdata->tyretemp[1],