Fixed gcc10 bugs
authorJeroen van der Heijden <jeroen@transceptor.technology>
Thu, 23 Jul 2020 12:07:20 +0000 (14:07 +0200)
committerJeroen van der Heijden <jeroen@transceptor.technology>
Thu, 23 Jul 2020 12:07:20 +0000 (14:07 +0200)
include/siri/db/listener.h
include/siri/db/props.h
src/siri/db/listener.c
src/siri/db/props.c
src/siri/db/query.c

index eec69f5d9f10a79cd2f27d096eac6ece41bbe60c..7f0b4fd1a1215472d618bd7c774d99f8464b6e40 100644 (file)
@@ -7,19 +7,9 @@
 #include <uv.h>
 #include <siri/grammar/grammar.h>
 
-static uv_async_cb SIRIDB_NODE_ENTER[CLERI_END];
-static uv_async_cb SIRIDB_NODE_EXIT[CLERI_END];
-
 void siridb_init_listener(void);
 
-static inline uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid)
-{
-    return SIRIDB_NODE_ENTER[gid];
-}
-
-static inline uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid)
-{
-    return SIRIDB_NODE_EXIT[gid];
-}
+uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid);
+uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid);
 
 #endif  /* SIRIDB_LISTENER_H_ */
index 1144579bd7f60fdbfcfab98784f39f6567bc6933..3dccc8dc5316a592339cbcbc89f3e35310716325 100644 (file)
 
 void siridb_init_props(void);
 
-static char * WHO_AM_I = NULL;
 
 typedef void (* siridb_props_cb)(
         siridb_t * siridb,
         qp_packer_t * packer,
         int flags);
 
-static siridb_props_cb SIRIDB_PROPS[KW_COUNT];
+siridb_props_cb props_get_cb(int i);
+void props_set_who_am_i(char * s);
+char * props_get_who_am_i(void);
 
-static inline void props_set_who_am_i(char * s)
-{
-    WHO_AM_I = s;
-}
-
-static inline char * props_get_who_am_i(void)
-{
-    return WHO_AM_I;
-}
-
-static inline siridb_props_cb props_get_cb(int i)
-{
-    return SIRIDB_PROPS[i];
-}
 
 #endif  /* SIRIDB_PROPS_H_ */
index 9f9657a3e088c1d791afd359dacd99ef910c7bba..969364ec56e348501b56c7e05f840c51f2439ba1 100644 (file)
 #include <sys/time.h>
 
 
+static uv_async_cb SIRIDB_NODE_ENTER[CLERI_END];
+static uv_async_cb SIRIDB_NODE_EXIT[CLERI_END];
+
+uv_async_cb siridb_node_get_enter(enum cleri_grammar_ids gid)
+{
+    return SIRIDB_NODE_ENTER[gid];
+}
+
+uv_async_cb siridb_node_get_exit(enum cleri_grammar_ids gid)
+{
+    return SIRIDB_NODE_EXIT[gid];
+}
+
+
 #define MAX_ITERATE_COUNT 10000       /* ten-thousand  */
 #define MAX_BATCH_REQUIRE_SHARD 100   /* after reading 100 shards, iterate  */
 
index 0706131e0f7ca3089898831199029a7d3ce15953..a555bf25f079993c14424bc95760810eb776e527 100644 (file)
@@ -28,6 +28,30 @@ if (map)                                \
     qp_add_raw(packer, (const unsigned char *) "value", 5);     \
 }
 
+static siridb_props_cb SIRIDB_PROPS[KW_COUNT];
+
+siridb_props_cb props_get_cb(int i)
+{
+    return SIRIDB_PROPS[i];
+}
+
+static void props_set_cb(int i, siridb_props_cb cb)
+{
+    SIRIDB_PROPS[i] = cb;
+}
+
+static char * WHO_AM_I = NULL;
+
+void props_set_who_am_i(char * s)
+{
+    WHO_AM_I = s;
+}
+
+char * props_get_who_am_i(void)
+{
+    return WHO_AM_I;
+}
+
 static void prop_active_handles(
         siridb_t * siridb,
         qp_packer_t * packer,
@@ -183,83 +207,83 @@ void siridb_init_props(void)
 
     for (i = 0; i < KW_COUNT; i++)
     {
-        SIRIDB_PROPS[i] = NULL;
+        props_set_cb(i, NULL);
     }
 
-    SIRIDB_PROPS[CLERI_GID_K_ACTIVE_HANDLES - KW_OFFSET] =
-            prop_active_handles;
-    SIRIDB_PROPS[CLERI_GID_K_ACTIVE_TASKS - KW_OFFSET] =
-            prop_active_tasks;
-    SIRIDB_PROPS[CLERI_GID_K_BUFFER_PATH - KW_OFFSET] =
-            prop_buffer_path;
-    SIRIDB_PROPS[CLERI_GID_K_BUFFER_SIZE - KW_OFFSET] =
-            prop_buffer_size;
-    SIRIDB_PROPS[CLERI_GID_K_DBNAME - KW_OFFSET] =
-            prop_dbname;
-    SIRIDB_PROPS[CLERI_GID_K_DBPATH - KW_OFFSET] =
-            prop_dbpath;
-    SIRIDB_PROPS[CLERI_GID_K_DROP_THRESHOLD - KW_OFFSET] =
-            prop_drop_threshold;
-    SIRIDB_PROPS[CLERI_GID_K_DURATION_LOG - KW_OFFSET] =
-            prop_duration_log;
-    SIRIDB_PROPS[CLERI_GID_K_DURATION_NUM - KW_OFFSET] =
-            prop_duration_num;
-    SIRIDB_PROPS[CLERI_GID_K_FIFO_FILES - KW_OFFSET] =
-            prop_fifo_files;
-    SIRIDB_PROPS[CLERI_GID_K_EXPIRATION_LOG - KW_OFFSET] =
-            prop_expiration_log;
-    SIRIDB_PROPS[CLERI_GID_K_EXPIRATION_NUM - KW_OFFSET] =
-            prop_expiration_num;
-    SIRIDB_PROPS[CLERI_GID_K_IDLE_PERCENTAGE - KW_OFFSET] =
-            prop_idle_percentage;
-    SIRIDB_PROPS[CLERI_GID_K_IDLE_TIME - KW_OFFSET] =
-            prop_idle_time;
-    SIRIDB_PROPS[CLERI_GID_K_IP_SUPPORT - KW_OFFSET] =
-            prop_ip_support;
-    SIRIDB_PROPS[CLERI_GID_K_LIBUV - KW_OFFSET] =
-            prop_libuv;
-    SIRIDB_PROPS[CLERI_GID_K_LIST_LIMIT - KW_OFFSET] =
-            prop_list_limit;
-    SIRIDB_PROPS[CLERI_GID_K_MAX_OPEN_FILES - KW_OFFSET] =
-            prop_max_open_files;
-    SIRIDB_PROPS[CLERI_GID_K_MEM_USAGE - KW_OFFSET] =
-            prop_mem_usage;
-    SIRIDB_PROPS[CLERI_GID_K_LOG_LEVEL - KW_OFFSET] =
-            prop_log_level;
-    SIRIDB_PROPS[CLERI_GID_K_OPEN_FILES - KW_OFFSET] =
-            prop_open_files;
-    SIRIDB_PROPS[CLERI_GID_K_POOL - KW_OFFSET] =
-            prop_pool;
-    SIRIDB_PROPS[CLERI_GID_K_RECEIVED_POINTS - KW_OFFSET] =
-            prop_received_points;
-    SIRIDB_PROPS[CLERI_GID_K_REINDEX_PROGRESS - KW_OFFSET] =
-            prop_reindex_progress;
-    SIRIDB_PROPS[CLERI_GID_K_SELECTED_POINTS - KW_OFFSET] =
-            prop_selected_points;
-    SIRIDB_PROPS[CLERI_GID_K_SELECT_POINTS_LIMIT - KW_OFFSET] =
-            prop_select_points_limit;
-    SIRIDB_PROPS[CLERI_GID_K_SERVER - KW_OFFSET] =
-            prop_server;
-    SIRIDB_PROPS[CLERI_GID_K_STARTUP_TIME - KW_OFFSET] =
-            prop_startup_time;
-    SIRIDB_PROPS[CLERI_GID_K_STATUS - KW_OFFSET] =
-            prop_status;
-    SIRIDB_PROPS[CLERI_GID_K_SYNC_PROGRESS - KW_OFFSET] =
-            prop_sync_progress;
-    SIRIDB_PROPS[CLERI_GID_K_TEE_PIPE_NAME - KW_OFFSET] =
-            prop_tee_pipe_name;
-    SIRIDB_PROPS[CLERI_GID_K_TIMEZONE - KW_OFFSET] =
-            prop_timezone;
-    SIRIDB_PROPS[CLERI_GID_K_TIME_PRECISION - KW_OFFSET] =
-            prop_time_precision;
-    SIRIDB_PROPS[CLERI_GID_K_UPTIME - KW_OFFSET] =
-            prop_uptime;
-    SIRIDB_PROPS[CLERI_GID_K_UUID - KW_OFFSET] =
-            prop_uuid;
-    SIRIDB_PROPS[CLERI_GID_K_VERSION - KW_OFFSET] =
-            prop_version;
-    SIRIDB_PROPS[CLERI_GID_K_WHO_AM_I - KW_OFFSET] =
-            prop_who_am_i;
+    props_set_cb(CLERI_GID_K_ACTIVE_HANDLES - KW_OFFSET,
+            prop_active_handles);
+    props_set_cb(CLERI_GID_K_ACTIVE_TASKS - KW_OFFSET,
+            prop_active_tasks);
+    props_set_cb(CLERI_GID_K_BUFFER_PATH - KW_OFFSET,
+            prop_buffer_path);
+    props_set_cb(CLERI_GID_K_BUFFER_SIZE - KW_OFFSET,
+            prop_buffer_size);
+    props_set_cb(CLERI_GID_K_DBNAME - KW_OFFSET,
+            prop_dbname);
+    props_set_cb(CLERI_GID_K_DBPATH - KW_OFFSET,
+            prop_dbpath);
+    props_set_cb(CLERI_GID_K_DROP_THRESHOLD - KW_OFFSET,
+            prop_drop_threshold);
+    props_set_cb(CLERI_GID_K_DURATION_LOG - KW_OFFSET,
+            prop_duration_log);
+    props_set_cb(CLERI_GID_K_DURATION_NUM - KW_OFFSET,
+            prop_duration_num);
+    props_set_cb(CLERI_GID_K_FIFO_FILES - KW_OFFSET,
+            prop_fifo_files);
+    props_set_cb(CLERI_GID_K_EXPIRATION_LOG - KW_OFFSET,
+            prop_expiration_log);
+    props_set_cb(CLERI_GID_K_EXPIRATION_NUM - KW_OFFSET,
+            prop_expiration_num);
+    props_set_cb(CLERI_GID_K_IDLE_PERCENTAGE - KW_OFFSET,
+            prop_idle_percentage);
+    props_set_cb(CLERI_GID_K_IDLE_TIME - KW_OFFSET,
+            prop_idle_time);
+    props_set_cb(CLERI_GID_K_IP_SUPPORT - KW_OFFSET,
+            prop_ip_support);
+    props_set_cb(CLERI_GID_K_LIBUV - KW_OFFSET,
+            prop_libuv);
+    props_set_cb(CLERI_GID_K_LIST_LIMIT - KW_OFFSET,
+            prop_list_limit);
+    props_set_cb(CLERI_GID_K_MAX_OPEN_FILES - KW_OFFSET,
+            prop_max_open_files);
+    props_set_cb(CLERI_GID_K_MEM_USAGE - KW_OFFSET,
+            prop_mem_usage);
+    props_set_cb(CLERI_GID_K_LOG_LEVEL - KW_OFFSET,
+            prop_log_level);
+    props_set_cb(CLERI_GID_K_OPEN_FILES - KW_OFFSET,
+            prop_open_files);
+    props_set_cb(CLERI_GID_K_POOL - KW_OFFSET,
+            prop_pool);
+    props_set_cb(CLERI_GID_K_RECEIVED_POINTS - KW_OFFSET,
+            prop_received_points);
+    props_set_cb(CLERI_GID_K_REINDEX_PROGRESS - KW_OFFSET,
+            prop_reindex_progress);
+    props_set_cb(CLERI_GID_K_SELECTED_POINTS - KW_OFFSET,
+            prop_selected_points);
+    props_set_cb(CLERI_GID_K_SELECT_POINTS_LIMIT - KW_OFFSET,
+            prop_select_points_limit);
+    props_set_cb(CLERI_GID_K_SERVER - KW_OFFSET,
+            prop_server);
+    props_set_cb(CLERI_GID_K_STARTUP_TIME - KW_OFFSET,
+            prop_startup_time);
+    props_set_cb(CLERI_GID_K_STATUS - KW_OFFSET,
+            prop_status);
+    props_set_cb(CLERI_GID_K_SYNC_PROGRESS - KW_OFFSET,
+            prop_sync_progress);
+    props_set_cb(CLERI_GID_K_TEE_PIPE_NAME - KW_OFFSET,
+            prop_tee_pipe_name);
+    props_set_cb(CLERI_GID_K_TIMEZONE - KW_OFFSET,
+            prop_timezone);
+    props_set_cb(CLERI_GID_K_TIME_PRECISION - KW_OFFSET,
+            prop_time_precision);
+    props_set_cb(CLERI_GID_K_UPTIME - KW_OFFSET,
+            prop_uptime);
+    props_set_cb(CLERI_GID_K_UUID - KW_OFFSET,
+            prop_uuid);
+    props_set_cb(CLERI_GID_K_VERSION - KW_OFFSET,
+            prop_version);
+    props_set_cb(CLERI_GID_K_WHO_AM_I - KW_OFFSET,
+            prop_who_am_i);
 }
 
 static void prop_active_handles(
index 64aaf60c6c8b1e434b7d9d4522c01be3d43f6faa..ae744d09aed227349f009cf1f3dc1ee0d046097a 100644 (file)
@@ -697,6 +697,7 @@ static int QUERY_walk(cleri_node_t * node, siridb_walker_t * walker)
         {
             return EXPR_MEM_ALLOC_ERR;
         }
+
         if (    (func = siridb_node_get_exit(gid)) != NULL &&
                 siridb_walker_insert(walker, node, func))
         {