Changeset: abcff04764bb for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=abcff04764bb
Modified Files:
clients/Tests/exports.stable.out
clients/mapiclient/mclient.c
common/stream/stream.c
common/stream/stream.h
Branch: default
Log Message:
Add restrict qualifier to all stream functions with more than one pointer
argument.
diffs (truncated from 994 to 300 lines):
diff --git a/clients/Tests/exports.stable.out b/clients/Tests/exports.stable.out
--- a/clients/Tests/exports.stable.out
+++ b/clients/Tests/exports.stable.out
@@ -2612,20 +2612,20 @@ ssize_t bstream_read(bstream *s, size_t
buffer *buffer_create(size_t size);
void buffer_destroy(buffer *b);
char *buffer_get_buf(buffer *b);
-void buffer_init(buffer *b, char *buf, size_t size);
-stream *buffer_rastream(buffer *b, const char *name);
-stream *buffer_wastream(buffer *b, const char *name);
-stream *callback_stream(void *priv, ssize_t( *read)(void *priv, void *buf,
size_t elmsize, size_t cnt), void( *close)(void *priv), void( *destroy)(void
*priv), const char *name);
+void buffer_init(buffer *restrict b, char *restrict buf, size_t size);
+stream *buffer_rastream(buffer *restrict b, const char *restrict name);
+stream *buffer_wastream(buffer *restrict b, const char *restrict name);
+stream *callback_stream(void *restrict priv, ssize_t( *read)(void *restrict
priv, void *restrict buf, size_t elmsize, size_t cnt), void( *close)(void
*priv), void( *destroy)(void *priv), const char *restrict name);
void close_stream(stream *s);
-stream *file_rastream(FILE *fp, const char *name);
-stream *file_rstream(FILE *fp, const char *name);
-stream *file_wastream(FILE *fp, const char *name);
-stream *file_wstream(FILE *fp, const char *name);
+stream *file_rastream(FILE *restrict fp, const char *restrict name);
+stream *file_rstream(FILE *restrict fp, const char *restrict name);
+stream *file_wastream(FILE *restrict fp, const char *restrict name);
+stream *file_wstream(FILE *restrict fp, const char *restrict name);
FILE *getFile(stream *s);
int getFileNo(stream *s);
size_t getFileSize(stream *s);
-stream *iconv_rstream(stream *ss, const char *charset, const char *name);
-stream *iconv_wstream(stream *ss, const char *charset, const char *name);
+stream *iconv_rstream(stream *restrict ss, const char *restrict charset, const
char *restrict name);
+stream *iconv_wstream(stream *restrict ss, const char *restrict charset, const
char *restrict name);
int isa_block_stream(stream *s);
int isa_fixed_block_stream(stream *s);
int mnstr_byteorder(stream *s);
@@ -2634,48 +2634,48 @@ void mnstr_close(stream *s);
void mnstr_destroy(stream *s);
int mnstr_errnr(stream *s);
char *mnstr_error(stream *s);
-int mnstr_fgetpos(stream *s, fpos_t *p);
+int mnstr_fgetpos(stream *restrict s, fpos_t *restrict p);
int mnstr_flush(stream *s);
-int mnstr_fsetpos(stream *s, fpos_t *p);
+int mnstr_fsetpos(stream *restrict s, fpos_t *restrict p);
int mnstr_fsync(stream *s);
buffer *mnstr_get_buffer(stream *s);
int mnstr_init(void);
int mnstr_isalive(stream *s);
char *mnstr_name(stream *s);
-int mnstr_printf(stream *s, _In_z_ _Printf_format_string_ const char *format,
...) __attribute__((__format__(__printf__, 2, 3)));
-ssize_t mnstr_read(stream *s, void *buf, size_t elmsize, size_t cnt);
-int mnstr_readBte(stream *s, signed char *val);
-int mnstr_readBteArray(stream *s, signed char *val, size_t cnt);
-int mnstr_readChr(stream *s, char *val);
-int mnstr_readHge(stream *s, hge *val);
-int mnstr_readHgeArray(stream *s, hge *val, size_t cnt);
-int mnstr_readInt(stream *s, int *val);
-int mnstr_readIntArray(stream *s, int *val, size_t cnt);
-int mnstr_readLng(stream *s, lng *val);
-int mnstr_readLngArray(stream *s, lng *val, size_t cnt);
-int mnstr_readSht(stream *s, short *val);
-int mnstr_readShtArray(stream *s, short *val, size_t cnt);
-int mnstr_readStr(stream *s, char *val);
-ssize_t mnstr_read_block(stream *s, void *buf, size_t elmsize, size_t cnt);
-ssize_t mnstr_readline(stream *s, void *buf, size_t maxcnt);
+int mnstr_printf(stream *restrict s, _In_z_ _Printf_format_string_ const char
*restrict format, ...) __attribute__((__format__(__printf__, 2, 3)));
+ssize_t mnstr_read(stream *restrict s, void *restrict buf, size_t elmsize,
size_t cnt);
+int mnstr_readBte(stream *restrict s, signed char *restrict val);
+int mnstr_readBteArray(stream *restrict s, signed char *restrict val, size_t
cnt);
+int mnstr_readChr(stream *restrict s, char *restrict val);
+int mnstr_readHge(stream *restrict s, hge *restrict val);
+int mnstr_readHgeArray(stream *restrict s, hge *restrict val, size_t cnt);
+int mnstr_readInt(stream *restrict s, int *restrict val);
+int mnstr_readIntArray(stream *restrict s, int *restrict val, size_t cnt);
+int mnstr_readLng(stream *restrict s, lng *restrict val);
+int mnstr_readLngArray(stream *restrict s, lng *restrict val, size_t cnt);
+int mnstr_readSht(stream *restrict s, short *restrict val);
+int mnstr_readShtArray(stream *restrict s, short *restrict val, size_t cnt);
+int mnstr_readStr(stream *restrict s, char *restrict val);
+ssize_t mnstr_read_block(stream *restrict s, void *restrict buf, size_t
elmsize, size_t cnt);
+ssize_t mnstr_readline(stream *restrict s, void *restrict buf, size_t maxcnt);
void mnstr_set_byteorder(stream *s, char bigendian);
void mnstr_settimeout(stream *s, unsigned int ms, int( *func)(void));
int mnstr_type(stream *s);
-ssize_t mnstr_write(stream *s, const void *buf, size_t elmsize, size_t cnt);
+ssize_t mnstr_write(stream *restrict s, const void *restrict buf, size_t
elmsize, size_t cnt);
int mnstr_writeBte(stream *s, signed char val);
-int mnstr_writeBteArray(stream *s, const signed char *val, size_t cnt);
+int mnstr_writeBteArray(stream *restrict s, const signed char *restrict val,
size_t cnt);
int mnstr_writeChr(stream *s, char val);
int mnstr_writeDbl(stream *s, double val);
int mnstr_writeFlt(stream *s, float val);
int mnstr_writeHge(stream *s, hge val);
-int mnstr_writeHgeArray(stream *s, const hge *val, size_t cnt);
+int mnstr_writeHgeArray(stream *restrict s, const hge *restrict val, size_t
cnt);
int mnstr_writeInt(stream *s, int val);
-int mnstr_writeIntArray(stream *s, const int *val, size_t cnt);
+int mnstr_writeIntArray(stream *restrict s, const int *restrict val, size_t
cnt);
int mnstr_writeLng(stream *s, lng val);
-int mnstr_writeLngArray(stream *s, const lng *val, size_t cnt);
+int mnstr_writeLngArray(stream *restrict s, const lng *restrict val, size_t
cnt);
int mnstr_writeSht(stream *s, short val);
-int mnstr_writeShtArray(stream *s, const short *val, size_t cnt);
-int mnstr_writeStr(stream *s, const char *val);
+int mnstr_writeShtArray(stream *restrict s, const short *restrict val, size_t
cnt);
+int mnstr_writeStr(stream *restrict s, const char *restrict val);
stream *open_rastream(const char *filename);
stream *open_rstream(const char *filename);
stream *open_urlstream(const char *url);
@@ -2686,7 +2686,7 @@ stream *socket_rstream(SOCKET socket, co
stream *socket_wastream(SOCKET socket, const char *name);
stream *socket_wstream(SOCKET socket, const char *name);
stream *stream_blackhole_create(void);
-stream *stream_fwf_create(stream *s, size_t num_fields, size_t *widths, char
filler);
+stream *stream_fwf_create(stream *restrict s, size_t num_fields, size_t
*restrict widths, char filler);
# 21:41:06 >
diff --git a/clients/mapiclient/mclient.c b/clients/mapiclient/mclient.c
--- a/clients/mapiclient/mclient.c
+++ b/clients/mapiclient/mclient.c
@@ -2215,7 +2215,7 @@ struct myread_t {
};
static ssize_t
-myread(void *private, void *buf, size_t elmsize, size_t cnt)
+myread(void *restrict private, void *restrict buf, size_t elmsize, size_t cnt)
{
struct myread_t *p = private;
size_t size = elmsize * cnt;
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -198,16 +198,16 @@ struct stream {
SOCKET s;
} stream_data;
int errnr;
- ssize_t (*read)(stream *s, void *buf, size_t elmsize, size_t cnt);
- ssize_t (*write)(stream *s, const void *buf, size_t elmsize, size_t
cnt);
+ ssize_t (*read)(stream *restrict s, void *restrict buf, size_t elmsize,
size_t cnt);
+ ssize_t (*write)(stream *restrict s, const void *restrict buf, size_t
elmsize, size_t cnt);
void (*close)(stream *s);
void (*clrerr)(stream *s);
char *(*error)(stream *s);
void (*destroy)(stream *s);
int (*flush)(stream *s);
int (*fsync)(stream *s);
- int (*fgetpos)(stream *s, fpos_t *p);
- int (*fsetpos)(stream *s, fpos_t *p);
+ int (*fgetpos)(stream *restrict s, fpos_t *restrict p);
+ int (*fsetpos)(stream *restrict s, fpos_t *restrict p);
void (*update_timeout)(stream *s);
int (*isalive)(stream *s);
};
@@ -361,7 +361,7 @@ cvfilename(const char *filename)
/* Read at most cnt elements of size elmsize from the stream. Returns
* the number of elements actually read or < 0 on failure. */
ssize_t
-mnstr_read(stream *s, void *buf, size_t elmsize, size_t cnt)
+mnstr_read(stream *restrict s, void *restrict buf, size_t elmsize, size_t cnt)
{
if (s == NULL || buf == NULL)
return -1;
@@ -379,7 +379,7 @@ mnstr_read(stream *s, void *buf, size_t
* the stream. Returns the number of characters actually read,
* includes the trailing \n; terminated by a NULL byte. */
ssize_t
-mnstr_readline(stream *s, void *buf, size_t maxcnt)
+mnstr_readline(stream *restrict s, void *restrict buf, size_t maxcnt)
{
char *b = buf, *start = buf;
@@ -439,7 +439,7 @@ mnstr_readline(stream *s, void *buf, siz
* number of elements actually written. If elmsize or cnt equals zero,
* returns cnt. */
ssize_t
-mnstr_write(stream *s, const void *buf, size_t elmsize, size_t cnt)
+mnstr_write(stream *restrict s, const void *restrict buf, size_t elmsize,
size_t cnt)
{
if (s == NULL || buf == NULL)
return -1;
@@ -531,7 +531,7 @@ mnstr_fsync(stream *s)
}
int
-mnstr_fgetpos(stream *s, fpos_t *p)
+mnstr_fgetpos(stream *restrict s, fpos_t *restrict p)
{
if (s == NULL || p == NULL)
return -1;
@@ -546,7 +546,7 @@ mnstr_fgetpos(stream *s, fpos_t *p)
}
int
-mnstr_fsetpos(stream *s, fpos_t *p)
+mnstr_fsetpos(stream *restrict s, fpos_t *restrict p)
{
if (s == NULL)
return -1;
@@ -727,7 +727,7 @@ create_stream(const char *name)
/* streams working on a disk file */
static ssize_t
-file_read(stream *s, void *buf, size_t elmsize, size_t cnt)
+file_read(stream *restrict s, void *restrict buf, size_t elmsize, size_t cnt)
{
FILE *fp = (FILE *) s->stream_data.p;
size_t rc = 0;
@@ -748,7 +748,7 @@ file_read(stream *s, void *buf, size_t e
}
static ssize_t
-file_write(stream *s, const void *buf, size_t elmsize, size_t cnt)
+file_write(stream *restrict s, const void *restrict buf, size_t elmsize,
size_t cnt)
{
FILE *fp = (FILE *) s->stream_data.p;
@@ -842,7 +842,7 @@ file_fsync(stream *s)
}
static int
-file_fgetpos(stream *s, fpos_t *p)
+file_fgetpos(stream *restrict s, fpos_t *restrict p)
{
FILE *fp = (FILE *) s->stream_data.p;
@@ -852,7 +852,7 @@ file_fgetpos(stream *s, fpos_t *p)
}
static int
-file_fsetpos(stream *s, fpos_t *p)
+file_fsetpos(stream *restrict s, fpos_t *restrict p)
{
FILE *fp = (FILE *) s->stream_data.p;
@@ -862,7 +862,7 @@ file_fsetpos(stream *s, fpos_t *p)
}
static stream *
-open_stream(const char *filename, const char *flags)
+open_stream(const char *restrict filename, const char *restrict flags)
{
stream *s;
FILE *fp;
@@ -965,7 +965,7 @@ gzfwrite(const void *buf, z_size_t size,
#endif
static ssize_t
-stream_gzread(stream *s, void *buf, size_t elmsize, size_t cnt)
+stream_gzread(stream *restrict s, void *restrict buf, size_t elmsize, size_t
cnt)
{
gzFile fp = (gzFile) s->stream_data.p;
z_size_t size;
@@ -1004,7 +1004,7 @@ stream_gzread(stream *s, void *buf, size
}
static ssize_t
-stream_gzwrite(stream *s, const void *buf, size_t elmsize, size_t cnt)
+stream_gzwrite(stream *restrict s, const void *restrict buf, size_t elmsize,
size_t cnt)
{
gzFile fp = (gzFile) s->stream_data.p;
z_size_t size;
@@ -1041,7 +1041,7 @@ stream_gzflush(stream *s)
}
static stream *
-open_gzstream(const char *filename, const char *flags)
+open_gzstream(const char *restrict filename, const char *restrict flags)
{
stream *s;
gzFile fp;
@@ -1106,7 +1106,7 @@ open_gzrstream(const char *filename)
}
static stream *
-open_gzwstream(const char *filename, const char *mode)
+open_gzwstream(const char *restrict filename, const char *restrict mode)
{
stream *s;
@@ -1135,7 +1135,7 @@ open_gzrastream(const char *filename)
}
static stream *
-open_gzwastream(const char *filename, const char *mode)
+open_gzwastream(const char *restrict filename, const char *restrict mode)
{
stream *s;
@@ -1178,7 +1178,7 @@ stream_bzclose(stream *s)
}
static ssize_t
-stream_bzread(stream *s, void *buf, size_t elmsize, size_t cnt)
+stream_bzread(stream *restrict s, void *restrict buf, size_t elmsize, size_t
cnt)
{
size_t size = elmsize * cnt;
int err;
@@ -1236,7 +1236,7 @@ stream_bzread(stream *s, void *buf, size
}
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list