aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Kangas2024-07-16 04:34:53 +0200
committerStefan Kangas2024-07-18 14:48:27 +0200
commitd00a10333f06d30fee93ba3ee033e74dc4ff85bc (patch)
treee1e5fe3150dfd4294fdb39d68cd31b16214b39f4 /src
parenta90a1ed527e89cf26737b6a123070c55c3118923 (diff)
downloademacs-d00a10333f06d30fee93ba3ee033e74dc4ff85bc.tar.gz
emacs-d00a10333f06d30fee93ba3ee033e74dc4ff85bc.zip
Use strnlen to avoid unnecessary work in pgtkfns.c
* 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.
Diffstat (limited to 'src')
-rw-r--r--src/pgtkfns.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index b8e65f4c052..f1c0e5da0f3 100644
--- a/src/pgtkfns.c
+++ b/src/pgtkfns.c
@@ -1901,13 +1901,19 @@ parse_resource_key (const char *res_key, char *setting_key)
1901 return gs; 1901 return gs;
1902} 1902}
1903 1903
1904static void
1905pgtk_check_resource_key_length (const char *key)
1906{
1907 if (strnlen (key, RESOURCE_KEY_MAX_LEN) >= RESOURCE_KEY_MAX_LEN)
1908 error ("Resource key too long");
1909}
1910
1904const char * 1911const char *
1905pgtk_get_defaults_value (const char *key) 1912pgtk_get_defaults_value (const char *key)
1906{ 1913{
1907 char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2]; 1914 char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2];
1908 1915
1909 if (strlen (key) >= RESOURCE_KEY_MAX_LEN) 1916 pgtk_check_resource_key_length (key);
1910 error ("Resource key too long");
1911 1917
1912 GSettings *gs = parse_resource_key (key, skey); 1918 GSettings *gs = parse_resource_key (key, skey);
1913 if (gs == NULL) 1919 if (gs == NULL)
@@ -1936,8 +1942,7 @@ pgtk_set_defaults_value (const char *key, const char *value)
1936{ 1942{
1937 char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2]; 1943 char skey[(RESOURCE_KEY_MAX_LEN + 1) * 2];
1938 1944
1939 if (strlen (key) >= RESOURCE_KEY_MAX_LEN) 1945 pgtk_check_resource_key_length (key);
1940 error ("Resource key too long");
1941 1946
1942 GSettings *gs = parse_resource_key (key, skey); 1947 GSettings *gs = parse_resource_key (key, skey);
1943 if (gs == NULL) 1948 if (gs == NULL)