[PATH] spell.c (avoid call strlen repeatedly in loop.

From: Ranier VF <ranier_gyn(at)hotmail(dot)com>
To: "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org>
Subject: [PATH] spell.c (avoid call strlen repeatedly in loop.
Date: 2019-11-09 09:02:29
Message-ID: MN2PR18MB29275C5AC49AD1DF3D98E85EE37A0@MN2PR18MB2927.namprd18.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi Mark,
Another example, can you take a look?

--- \dll\postgresql-12.0\a\backend\tsearch\spell.c Mon Sep 30 17:06:55 2019
+++ spell.c Sat Nov 09 05:55:23 2019
@@ -186,7 +186,7 @@
#define MAX_NORM 1024
#define MAXNORMLEN 256

-#define STRNCMP(s,p) strncmp( (s), (p), strlen(p) )
+#define STRNCMP(s,p) strncmp( (s), (p), sizeof(p) - 1 )
#define GETWCHAR(W,L,N,T) ( ((const uint8*)(W))[ ((T)==FF_PREFIX) ? (N) : ( (L) - 1 - (N) ) ] )
#define GETCHAR(A,N,T) GETWCHAR( (A)->repl, (A)->replen, N, T )

@@ -1220,31 +1220,31 @@
}

if (STRNCMP(recoded, "COMPOUNDFLAG") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("COMPOUNDFLAG"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("COMPOUNDFLAG") - 1,
FF_COMPOUNDFLAG);
else if (STRNCMP(recoded, "COMPOUNDBEGIN") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("COMPOUNDBEGIN"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("COMPOUNDBEGIN") - 1,
FF_COMPOUNDBEGIN);
else if (STRNCMP(recoded, "COMPOUNDLAST") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("COMPOUNDLAST"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("COMPOUNDLAST") - 1,
FF_COMPOUNDLAST);
/* COMPOUNDLAST and COMPOUNDEND are synonyms */
else if (STRNCMP(recoded, "COMPOUNDEND") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("COMPOUNDEND"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("COMPOUNDEND") - 1,
FF_COMPOUNDLAST);
else if (STRNCMP(recoded, "COMPOUNDMIDDLE") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("COMPOUNDMIDDLE"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("COMPOUNDMIDDLE") - 1,
FF_COMPOUNDMIDDLE);
else if (STRNCMP(recoded, "ONLYINCOMPOUND") == 0)
- addCompoundAffixFlagValue(Conf, recoded + strlen("ONLYINCOMPOUND"),
+ addCompoundAffixFlagValue(Conf, recoded + sizeof("ONLYINCOMPOUND") - 1,
FF_COMPOUNDONLY);
else if (STRNCMP(recoded, "COMPOUNDPERMITFLAG") == 0)
addCompoundAffixFlagValue(Conf,
- recoded + strlen("COMPOUNDPERMITFLAG"),
+ recoded + sizeof("COMPOUNDPERMITFLAG") - 1,
FF_COMPOUNDPERMITFLAG);
else if (STRNCMP(recoded, "COMPOUNDFORBIDFLAG") == 0)
addCompoundAffixFlagValue(Conf,
- recoded + strlen("COMPOUNDFORBIDFLAG"),
+ recoded + sizeof("COMPOUNDFORBIDFLAG") - 1,
FF_COMPOUNDFORBIDFLAG);
else if (STRNCMP(recoded, "FLAG") == 0)
{

Attachment Content-Type Size
spell.c.patch application/octet-stream 2.4 KB

Browse pgsql-hackers by date

  From Date Subject
Next Message Juan José Santamaría Flecha 2019-11-09 10:03:59 Re: Collation versions on Windows (help wanted, apply within)
Previous Message Ranier VF 2019-11-09 08:24:13 RE: Patch avoid call strlen repeatedly in loop.