From bafb12891cfb2e55e1fab7185116eff1aa0c28e6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Mattias=20Engdeg=C3=A5rd?= Date: Tue, 9 Jul 2024 10:01:03 +0200 Subject: [PATCH] Use cheaper string constructors * src/coding.c (make_string_from_utf8): * src/fileio.c (file_name_directory): * src/lread.c (Fintern): * src/gnutls.c (Fgnutls_format_certificate): Use `make_multibyte_string` and `make_unibyte_string` instead of more expensive `make_specified_string` and `make_string_from_bytes`. (cherry picked from commit 7e358aa706f9dbfce24304e8a05904538615537f) --- src/coding.c | 2 +- src/fileio.c | 2 +- src/gnutls.c | 3 +-- src/lread.c | 4 ++-- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/coding.c b/src/coding.c index b48164efc69..e42b6b6e720 100644 --- a/src/coding.c +++ b/src/coding.c @@ -6365,7 +6365,7 @@ make_string_from_utf8 (const char *text, ptrdiff_t nbytes) /* If TEXT is a valid UTF-8 string, we can convert it to a Lisp string directly. Otherwise, we need to decode it. */ if (chars == nbytes || bytes == nbytes) - return make_specified_string (text, chars, nbytes, true); + return make_multibyte_string (text, chars, nbytes); else { struct coding_system coding; diff --git a/src/fileio.c b/src/fileio.c index 7afe3e75737..fa280f2db00 100644 --- a/src/fileio.c +++ b/src/fileio.c @@ -523,7 +523,7 @@ file_name_directory (Lisp_Object filename) else { dostounix_filename (beg); - tem_fn = make_specified_string (beg, -1, p - beg, 0); + tem_fn = make_unibyte_string (beg, p - beg); } SAFE_FREE (); return tem_fn; diff --git a/src/gnutls.c b/src/gnutls.c index 3ff7f21d5a5..334d1d47eb6 100644 --- a/src/gnutls.c +++ b/src/gnutls.c @@ -1646,8 +1646,7 @@ string representation. */) emacs_gnutls_strerror (err)); } - Lisp_Object result = make_string_from_bytes ((char *) out.data, out.size, - out.size); + Lisp_Object result = make_unibyte_string ((char *) out.data, out.size); gnutls_free (out.data); gnutls_x509_crt_deinit (crt); diff --git a/src/lread.c b/src/lread.c index c3b0e8a3ef5..c1f309866c8 100644 --- a/src/lread.c +++ b/src/lread.c @@ -5025,8 +5025,8 @@ it defaults to the value of `obarray'. */) { if (longhand) { - tem = intern_driver (make_specified_string (longhand, longhand_chars, - longhand_bytes, true), + tem = intern_driver (make_multibyte_string (longhand, longhand_chars, + longhand_bytes), obarray, tem); xfree (longhand); } -- 2.39.5