mirror of
https://github.com/postgres/postgres.git
synced 2025-08-21 10:42:50 +03:00
Make various variables const (read-only).
These changes should generally improve correctness/maintainability. A nice side benefit is that several kilobytes move from initialized data to text segment, allowing them to be shared across processes and probably reducing copy-on-write overhead while forking a new backend. Unfortunately this doesn't seem to help libpq in the same way (at least not when it's compiled with -fpic on x86_64), but we can hope the linker at least collects all nominally-const data together even if it's not actually part of the text segment. Also, make pg_encname_tbl[] static in encnames.c, since there seems no very good reason for any other code to use it; per a suggestion from Wim Lewis, who independently submitted a patch that was mostly a subset of this one. Oskari Saarenmaa, with some editorialization by me
This commit is contained in:
@@ -716,10 +716,10 @@ static int /* not actually used, but convenient for RETV */
|
||||
lexescape(struct vars * v)
|
||||
{
|
||||
chr c;
|
||||
static chr alert[] = {
|
||||
static const chr alert[] = {
|
||||
CHR('a'), CHR('l'), CHR('e'), CHR('r'), CHR('t')
|
||||
};
|
||||
static chr esc[] = {
|
||||
static const chr esc[] = {
|
||||
CHR('E'), CHR('S'), CHR('C')
|
||||
};
|
||||
const chr *save;
|
||||
|
@@ -274,7 +274,7 @@ struct vars
|
||||
|
||||
|
||||
/* static function list */
|
||||
static struct fns functions = {
|
||||
static const struct fns functions = {
|
||||
rfree, /* regfree insides */
|
||||
};
|
||||
|
||||
|
@@ -34,10 +34,10 @@
|
||||
#include "regex/regguts.h"
|
||||
|
||||
/* unknown-error explanation */
|
||||
static char unk[] = "*** unknown regex error code 0x%x ***";
|
||||
static const char unk[] = "*** unknown regex error code 0x%x ***";
|
||||
|
||||
/* struct to map among codes, code names, and explanations */
|
||||
static struct rerr
|
||||
static const struct rerr
|
||||
{
|
||||
int code;
|
||||
const char *name;
|
||||
@@ -62,7 +62,7 @@ pg_regerror(int errcode, /* error code, or REG_ATOI or REG_ITOA */
|
||||
char *errbuf, /* result buffer (unless errbuf_size==0) */
|
||||
size_t errbuf_size) /* available space in errbuf, can be 0 */
|
||||
{
|
||||
struct rerr *r;
|
||||
const struct rerr *r;
|
||||
const char *msg;
|
||||
char convbuf[sizeof(unk) + 50]; /* 50 = plenty for int */
|
||||
size_t len;
|
||||
|
Reference in New Issue
Block a user