[tracker: 2/5] libtracker-data: Solve signed vs unsigned pointer compiler warnings
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker: 2/5] libtracker-data: Solve signed vs unsigned pointer compiler warnings
- Date: Sat, 8 May 2021 16:19:01 +0000 (UTC)
commit 0a18f05c226aad733090adad3ac5b0bcabdcc736
Author: Daniele Nicolodi <daniele grinta net>
Date: Thu May 6 13:35:32 2021 +0200
libtracker-data: Solve signed vs unsigned pointer compiler warnings
sqlite3_value_text() and sqlite3_column_text() return types are 'const
unsigned char *' however GLib string functions take 'const
gchar *' (aka 'const char *') arguments. This results in warnings
about the conversion between pointers of different size.
The most effective way to solve the problem is to have trivial macro
wrappers around these function that cast the return types to the
expected ones. Unfortunately there is not a header file where it makes
sense to place these macros without having them defined in places
where they may be unwanted. Adding one more header file only for these
seems too much, simply copy them where needed.
src/libtracker-data/tracker-db-interface-sqlite.c | 3 +++
src/libtracker-data/tracker-vtab-service.c | 4 ++++
src/libtracker-data/tracker-vtab-triples.c | 4 ++++
3 files changed, 11 insertions(+)
---
diff --git a/src/libtracker-data/tracker-db-interface-sqlite.c
b/src/libtracker-data/tracker-db-interface-sqlite.c
index 5adac80be..8e97f37f0 100644
--- a/src/libtracker-data/tracker-db-interface-sqlite.c
+++ b/src/libtracker-data/tracker-db-interface-sqlite.c
@@ -59,6 +59,9 @@
#include "tracker-vtab-service.h"
#include "tracker-vtab-triples.h"
+/* Avoid casts everywhere. */
+#define sqlite3_value_text(x) ((const gchar *) sqlite3_value_text(x))
+
typedef struct {
TrackerDBStatement *head;
TrackerDBStatement *tail;
diff --git a/src/libtracker-data/tracker-vtab-service.c b/src/libtracker-data/tracker-vtab-service.c
index 469f05f4d..77e8d7c4b 100644
--- a/src/libtracker-data/tracker-vtab-service.c
+++ b/src/libtracker-data/tracker-vtab-service.c
@@ -33,6 +33,10 @@
#define COL_FIRST_PARAMETER COL_LAST
#define COL_FIRST_VARIABLE (COL_LAST + (N_PARAMETERS * 2))
+/* Avoid casts everywhere. */
+#define sqlite3_value_text(x) ((const gchar *) sqlite3_value_text(x))
+#define sqlite3_column_text(x, y) ((const gchar *) sqlite3_column_text(x, y))
+
typedef struct {
sqlite3 *db;
TrackerDataManager *data_manager;
diff --git a/src/libtracker-data/tracker-vtab-triples.c b/src/libtracker-data/tracker-vtab-triples.c
index c9a0a2f40..1ef067a68 100644
--- a/src/libtracker-data/tracker-vtab-triples.c
+++ b/src/libtracker-data/tracker-vtab-triples.c
@@ -23,6 +23,10 @@
#include "tracker-ontologies.h"
#include "tracker-vtab-triples.h"
+/* Avoid casts everywhere. */
+#define sqlite3_value_text(x) ((const gchar *) sqlite3_value_text(x))
+#define sqlite3_column_text(x, y) ((const gchar *) sqlite3_column_text(x, y))
+
/* Define some constraints for older SQLite, we will never get
* those in older versions, and simplifies checks in code.
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]