Hi Lauri,

your code wouldn't work with non-continuous character sets, like EBCDIC.

Did you turn on optimization when compiling curl/libcurl ? Any half-way modern 
compiler should translate the current code into a lookup table or code like 
yours.

Another option would be to check for a continuous character set within 
configure.ac and provide two code paths.

Tim

On Monday 02 November 2015 17:09:45 Lauri Kasanen wrote:
> Rationale: when starting up a curl-using app, all cookies from the jar are
> checked against each other. This was causing a two-second startup delay in
> the Fifth browser.
> 
> All tests pass.
> 
> Signed-off-by: Lauri Kasanen <[email protected]>
> ---
>  lib/rawstr.c | 57 +++------------------------------------------------------
> 1 file changed, 3 insertions(+), 54 deletions(-)
> 
> diff --git a/lib/rawstr.c b/lib/rawstr.c
> index e27dac4..6990337 100644
> --- a/lib/rawstr.c
> +++ b/lib/rawstr.c
> @@ -28,60 +28,9 @@
>     its behavior is altered by the current locale. */
>  char Curl_raw_toupper(char in)
>  {
> -  switch (in) {
> -  case 'a':
> -    return 'A';
> -  case 'b':
> -    return 'B';
> -  case 'c':
> -    return 'C';
> -  case 'd':
> -    return 'D';
> -  case 'e':
> -    return 'E';
> -  case 'f':
> -    return 'F';
> -  case 'g':
> -    return 'G';
> -  case 'h':
> -    return 'H';
> -  case 'i':
> -    return 'I';
> -  case 'j':
> -    return 'J';
> -  case 'k':
> -    return 'K';
> -  case 'l':
> -    return 'L';
> -  case 'm':
> -    return 'M';
> -  case 'n':
> -    return 'N';
> -  case 'o':
> -    return 'O';
> -  case 'p':
> -    return 'P';
> -  case 'q':
> -    return 'Q';
> -  case 'r':
> -    return 'R';
> -  case 's':
> -    return 'S';
> -  case 't':
> -    return 'T';
> -  case 'u':
> -    return 'U';
> -  case 'v':
> -    return 'V';
> -  case 'w':
> -    return 'W';
> -  case 'x':
> -    return 'X';
> -  case 'y':
> -    return 'Y';
> -  case 'z':
> -    return 'Z';
> -  }
> +  if (in >= 'a' && in <= 'z')
> +    return 'A' + in - 'a';
> +
>    return in;
>  }
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to