Changeset: 90933e6c6b36 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/90933e6c6b36
Modified Files:
monetdb5/modules/atoms/str.c
monetdb5/modules/kernel/batstr.c
monetdb5/modules/mal/pcre.c
monetdb5/modules/mal/txtsim.c
sql/backends/monet5/UDF/udf/udf.c
sql/backends/monet5/UDF/udf/udf.h
sql/backends/monet5/sql_user.c
sql/backends/monet5/sql_user.h
Branch: Dec2023
Log Message:
Properly use const for str parameters to C stubs for MAL functions.
const str *val (which was used in many places) is not the same as const
* const *val (which is what it really is).
The pointer itself can be changed (i.e. val), but not *val and not
**val, since they belong to the caller.
This also fixes #7509. But Lucas, please take a closer look.
diffs (truncated from 982 to 300 lines):
diff --git a/monetdb5/modules/atoms/str.c b/monetdb5/modules/atoms/str.c
--- a/monetdb5/modules/atoms/str.c
+++ b/monetdb5/modules/atoms/str.c
@@ -3488,7 +3488,7 @@ STRlike(const char *s, const char *pat,
}
static str
-STRlikewrap3(bit *ret, const str *s, const str *pat, const str *esc)
+STRlikewrap3(bit *ret, const char *const *s, const char *const *pat, const
char *const *esc)
{
if (strNil(*s) || strNil(*pat) || strNil(*esc))
*ret = bit_nil;
@@ -3498,7 +3498,7 @@ STRlikewrap3(bit *ret, const str *s, con
}
static str
-STRlikewrap(bit *ret, const str *s, const str *pat)
+STRlikewrap(bit *ret, const char *const *s, const char *const *pat)
{
if (strNil(*s) || strNil(*pat))
*ret = bit_nil;
@@ -3508,7 +3508,7 @@ STRlikewrap(bit *ret, const str *s, cons
}
static str
-STRtostr(str *res, const str *src)
+STRtostr(str *res, const char *const *src)
{
if (*src == 0)
*res = GDKstrdup(str_nil);
@@ -3520,7 +3520,7 @@ STRtostr(str *res, const str *src)
}
static str
-STRLength(int *res, const str *arg1)
+STRLength(int *res, const char *const *arg1)
{
const char *s = *arg1;
@@ -3529,7 +3529,7 @@ STRLength(int *res, const str *arg1)
}
static str
-STRBytes(int *res, const str *arg1)
+STRBytes(int *res, const char *const *arg1)
{
const char *s = *arg1;
@@ -3553,7 +3553,7 @@ str_tail(str *buf, size_t *buflen, const
}
static str
-STRTail(str *res, const str *arg1, const int *offset)
+STRTail(str *res, const char *const *arg1, const int *offset)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -3609,7 +3609,7 @@ str_Sub_String(str *buf, size_t *buflen,
}
static str
-STRSubString(str *res, const str *arg1, const int *offset, const int *length)
+STRSubString(str *res, const char *const *arg1, const int *offset, const int
*length)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -3698,7 +3698,7 @@ str_wchr_at(int *res, const char *s, int
}
static str
-STRWChrAt(int *res, const str *arg1, const int *at)
+STRWChrAt(int *res, const char *const *arg1, const int *at)
{
return str_wchr_at(res, *arg1, *at);
}
@@ -3711,7 +3711,7 @@ str_lower(str *buf, size_t *buflen, cons
}
static inline str
-STRlower(str *res, const str *arg1)
+STRlower(str *res, const char *const *arg1)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -3752,7 +3752,7 @@ str_upper(str *buf, size_t *buflen, cons
}
static str
-STRupper(str *res, const str *arg1)
+STRupper(str *res, const char *const *arg1)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -3948,10 +3948,11 @@ STRstr_search(Client cntxt, MalBlkPtr mb
(void) cntxt;
(void) mb;
bit *res = getArgReference(stk, pci, 0);
- const str *haystack = getArgReference(stk, pci, 1),
- *needle = getArgReference(stk, pci, 2);
+ const char *const *haystack = getArgReference(stk, pci, 1);
+ const char *const *needle = getArgReference(stk, pci, 2);
bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
- str s = *haystack, h = *needle, msg = MAL_SUCCEED;
+ const char *s = *haystack, *h = *needle;
+ char *msg = MAL_SUCCEED;
if (strNil(s) || strNil(h)) {
*res = bit_nil;
} else {
@@ -4009,10 +4010,11 @@ STRrevstr_search(Client cntxt, MalBlkPtr
(void) cntxt;
(void) mb;
bit *res = getArgReference(stk, pci, 0);
- const str *haystack = getArgReference(stk, pci, 1);
- const str *needle = getArgReference(stk, pci, 2);
+ const char *const *haystack = getArgReference(stk, pci, 1);
+ const char *const *needle = getArgReference(stk, pci, 2);
bit icase = pci->argc == 4 && *getArgReference_bit(stk, pci, 3);
- str s = *haystack, h = *needle, msg = MAL_SUCCEED;
+ const char *s = *haystack, *h = *needle;
+ char *msg = MAL_SUCCEED;
if (strNil(s) || strNil(h)) {
*res = bit_nil;
} else {
@@ -4181,7 +4183,7 @@ str_strip(str *buf, size_t *buflen, cons
/* remove all whitespace from either side of arg1 */
static str
-STRStrip(str *res, const str *arg1)
+STRStrip(str *res, const char *const *arg1)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4222,7 +4224,7 @@ str_ltrim(str *buf, size_t *buflen, cons
/* remove all whitespace from the start (left) of arg1 */
static str
-STRLtrim(str *res, const str *arg1)
+STRLtrim(str *res, const char *const *arg1)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4263,7 +4265,7 @@ str_rtrim(str *buf, size_t *buflen, cons
/* remove all whitespace from the end (right) of arg1 */
static str
-STRRtrim(str *res, const str *arg1)
+STRRtrim(str *res, const char *const *arg1)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4343,7 +4345,7 @@ str_strip2(str *buf, size_t *buflen, con
/* remove the longest string containing only characters from arg2 from
* either side of arg1 */
static str
-STRStrip2(str *res, const str *arg1, const str *arg2)
+STRStrip2(str *res, const char *const *arg1, const char *const *arg2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1, *s2 = *arg2;
@@ -4397,7 +4399,7 @@ str_ltrim2(str *buf, size_t *buflen, con
/* remove the longest string containing only characters from arg2 from
* the start (left) of arg1 */
static str
-STRLtrim2(str *res, const str *arg1, const str *arg2)
+STRLtrim2(str *res, const char *const *arg1, const char *const *arg2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1, *s2 = *arg2;
@@ -4451,7 +4453,7 @@ str_rtrim2(str *buf, size_t *buflen, con
/* remove the longest string containing only characters from arg2 from
* the end (right) of arg1 */
static str
-STRRtrim2(str *res, const str *arg1, const str *arg2)
+STRRtrim2(str *res, const char *const *arg1, const char *const *arg2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1, *s2 = *arg2;
@@ -4551,7 +4553,7 @@ str_lpad(str *buf, size_t *buflen, const
* Result: ' hi'
*/
static str
-STRLpad(str *res, const str *arg1, const int *len)
+STRLpad(str *res, const char *const *arg1, const int *len)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4592,7 +4594,7 @@ str_rpad(str *buf, size_t *buflen, const
* Result: 'hi '
*/
static str
-STRRpad(str *res, const str *arg1, const int *len)
+STRRpad(str *res, const char *const *arg1, const int *len)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4633,7 +4635,7 @@ str_lpad3(str *buf, size_t *buflen, cons
* Result: xyxhi
*/
static str
-STRLpad3(str *res, const str *arg1, const int *len, const str *arg2)
+STRLpad3(str *res, const char *const *arg1, const int *len, const char *const
*arg2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1, *s2 = *arg2;
@@ -4675,7 +4677,7 @@ str_rpad3(str *buf, size_t *buflen, cons
* Result: hixyx
*/
static str
-STRRpad3(str *res, const str *arg1, const int *len, const str *arg2)
+STRRpad3(str *res, const char *const *arg1, const int *len, const char *const
*arg2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1, *s2 = *arg2;
@@ -4748,7 +4750,7 @@ str_substitute(str *buf, size_t *buflen,
}
static str
-STRSubstitute(str *res, const str *arg1, const str *arg2, const str *arg3,
+STRSubstitute(str *res, const char *const *arg1, const char *const *arg2,
const char *const *arg3,
const bit *g)
{
str buf = NULL, msg = MAL_SUCCEED;
@@ -4777,7 +4779,7 @@ STRSubstitute(str *res, const str *arg1,
}
static str
-STRascii(int *ret, const str *s)
+STRascii(int *ret, const char *const *s)
{
return str_wchr_at(ret, *s, 0);
}
@@ -4792,7 +4794,7 @@ str_substring_tail(str *buf, size_t *buf
}
static str
-STRsubstringTail(str *res, const str *arg1, const int *start)
+STRsubstringTail(str *res, const char *const *arg1, const int *start)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4830,7 +4832,7 @@ str_sub_string(str *buf, size_t *buflen,
}
static str
-STRsubstring(str *res, const str *arg1, const int *start, const int *ll)
+STRsubstring(str *res, const char *const *arg1, const int *start, const int
*ll)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4859,7 +4861,7 @@ STRsubstring(str *res, const str *arg1,
}
static str
-STRprefix(str *res, const str *arg1, const int *ll)
+STRprefix(str *res, const char *const *arg1, const int *ll)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4895,7 +4897,7 @@ str_suffix(str *buf, size_t *buflen, con
}
static str
-STRsuffix(str *res, const str *arg1, const int *ll)
+STRsuffix(str *res, const char *const *arg1, const int *ll)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *arg1;
@@ -4936,7 +4938,7 @@ str_locate2(const char *needle, const ch
}
static str
-STRlocate3(int *ret, const str *needle, const str *haystack, const int *start)
+STRlocate3(int *ret, const char *const *needle, const char *const *haystack,
const int *start)
{
const char *s = *needle, *s2 = *haystack;
int st = *start;
@@ -4948,7 +4950,7 @@ STRlocate3(int *ret, const str *needle,
}
static str
-STRlocate(int *ret, const str *needle, const str *haystack)
+STRlocate(int *ret, const char *const *needle, const char *const *haystack)
{
const char *s = *needle, *s2 = *haystack;
@@ -4989,8 +4991,8 @@ str_insert(str *buf, size_t *buflen, con
}
static str
-STRinsert(str *res, const str *input, const int *start, const int *nchars,
- const str *input2)
+STRinsert(str *res, const char *const *input, const int *start, const int
*nchars,
+ const char *const *input2)
{
str buf = NULL, msg = MAL_SUCCEED;
const char *s = *input, *s2 = *input2;
@@ -5019,7 +5021,7 @@ STRinsert(str *res, const str *input, co
}
static str
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]