]> git.eshelyaron.com Git - emacs.git/commitdiff
Use strnlen to avoid unnecessary work in pgtkfns.c
authorStefan Kangas <stefankangas@gmail.com>
Tue, 16 Jul 2024 02:34:53 +0000 (04:34 +0200)
committerEshel Yaron <me@eshelyaron.com>
Mon, 22 Jul 2024 10:31:46 +0000 (12:31 +0200)
* src/pgtkfns.c (pgtk_get_defaults_value, pgtk_set_defaults_value):
Factor out new function...
(pgtk_check_resource_key_length): ...to here.  Avoid unnecessary work by
using strnlen.

(cherry picked from commit d00a10333f06d30fee93ba3ee033e74dc4ff85bc)

src/pgtkfns.c

index ffa2d8e62d2e5e34ebedb63121c1825a915f8167..2060a9ec246506e89173bde4845fb1c858f73b7f 100644 (file)
@@ -1901,13 +1901,19 @@ parse_resource_key (const char *res_key, char *setting_key)
   return gs;
 }
 
+static void
+pgtk_check_resource_key_length (const char *key)
+{
+  if (strnlen (key, RESOURCE_KEY_MAX_LEN) >= RESOURCE_KEY_MAX_LEN)
+    error ("Resource key too long");
+}
+
 const char *
 pgtk_get_defaults_value (const char *key)
 {
   char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2];
 
-  if (strlen (key) >= RESOURCE_KEY_MAX_LEN)
-    error ("Resource key too long");
+  pgtk_check_resource_key_length (key);
 
   GSettings *gs = parse_resource_key (key, skey);
   if (gs == NULL)
@@ -1936,8 +1942,7 @@ pgtk_set_defaults_value (const char *key, const char *value)
 {
   char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2];
 
-  if (strlen (key) >= RESOURCE_KEY_MAX_LEN)
-    error ("Resource key too long");
+  pgtk_check_resource_key_length (key);
 
   GSettings *gs = parse_resource_key (key, skey);
   if (gs == NULL)