Changeset: 5b6e555b6a59 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/5b6e555b6a59
Modified Files:
gdk/gdk.h
gdk/gdk_atoms.c
sql/backends/monet5/UDF/pyapi3/conversion3.c
Branch: default
Log Message:
Blobs are really sequences of uint8_t (unsigned char).
diffs (65 lines):
diff --git a/gdk/gdk.h b/gdk/gdk.h
--- a/gdk/gdk.h
+++ b/gdk/gdk.h
@@ -479,12 +479,12 @@ typedef union {
#else
lng l[2]; /* force alignment, not otherwise used */
#endif
- uint8_t u[UUID_SIZE];
+ uint8_t u[UUID_SIZE] __attribute__((__nonstring__));
} uuid;
typedef struct {
size_t nitems;
- char data[] __attribute__((__nonstring__));
+ uint8_t data[] __attribute__((__nonstring__));
} blob;
gdk_export size_t blobsize(size_t nitems) __attribute__((__const__));
diff --git a/gdk/gdk_atoms.c b/gdk/gdk_atoms.c
--- a/gdk/gdk_atoms.c
+++ b/gdk/gdk_atoms.c
@@ -1532,11 +1532,8 @@ BLOBtostr(str *tostr, size_t *l, const v
s = *tostr;
for (i = 0; i < p->nitems; i++) {
- int val = (p->data[i] >> 4) & 15;
-
- *s++ = hexit[val];
- val = p->data[i] & 15;
- *s++ = hexit[val];
+ *s++ = hexit[(p->data[i] >> 4) & 15];
+ *s++ = hexit[p->data[i] & 15];
}
*s = '\0';
return (ssize_t) (s - *tostr);
@@ -1593,7 +1590,7 @@ BLOBfromstr(const char *instr, size_t *l
// Read the values of the blob.
*/
for (i = 0; i < nitems; ++i) {
- char res = 0;
+ int res = 0;
for (;;) {
if (*s >= '0' && *s <= '9') {
@@ -1627,7 +1624,7 @@ BLOBfromstr(const char *instr, size_t *l
}
s++;
- result->data[i] = res;
+ result->data[i] = (uint8_t) res;
}
while (GDKisspace(*s))
s++;
diff --git a/sql/backends/monet5/UDF/pyapi3/conversion3.c
b/sql/backends/monet5/UDF/pyapi3/conversion3.c
--- a/sql/backends/monet5/UDF/pyapi3/conversion3.c
+++ b/sql/backends/monet5/UDF/pyapi3/conversion3.c
@@ -229,7 +229,7 @@ PyArrayObject_FromBAT(PyInput *inp, size
data[p] = Py_None;
Py_INCREF(Py_None);
} else {
- data[p] =
PyByteArray_FromStringAndSize(t->data, t->nitems);
+ data[p] = PyByteArray_FromStringAndSize((char
*) t->data, t->nitems);
}
}
bat_iterator_end(&li);
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]