summaryrefslogtreecommitdiff
path: root/src/fns.c
diff options
context:
space:
mode:
authorDmitry Antipov <dmantipov@yandex.ru>2014-07-14 08:44:01 +0400
committerDmitry Antipov <dmantipov@yandex.ru>2014-07-14 08:44:01 +0400
commit201b685783301c9acfda413d1860763f0e941601 (patch)
treec16759bbe8c1e4a6ddea7f783e55c0710f00f0a5 /src/fns.c
parenta705278de7c661af9b78d956af25e13055cba864 (diff)
downloademacs-201b685783301c9acfda413d1860763f0e941601.tar.gz
* lisp.h (CHECK_VECTOR_OR_STRING): Return number of elements
or characters in string, respectively. Add comment. * fringe.c (Fdefine_fringe_bitmap): * fns.c (Fsubstring, substring_both): Use it. * keymap.c (Fdefine_key, Flookup_key): * macros.c (Fstart_kbd_macro): Likewise. Avoid call to Flength.
Diffstat (limited to 'src/fns.c')
-rw-r--r--src/fns.c14
1 files changed, 2 insertions, 12 deletions
diff --git a/src/fns.c b/src/fns.c
index 887a856f224..79967116a11 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -1151,13 +1151,7 @@ With one argument, just copy STRING (with properties, if any). */)
Lisp_Object res;
ptrdiff_t size, ifrom, ito;
- if (STRINGP (string))
- size = SCHARS (string);
- else if (VECTORP (string))
- size = ASIZE (string);
- else
- wrong_type_argument (Qarrayp, string);
-
+ size = CHECK_VECTOR_OR_STRING (string);
validate_subarray (string, from, to, size, &ifrom, &ito);
if (STRINGP (string))
@@ -1212,11 +1206,7 @@ substring_both (Lisp_Object string, ptrdiff_t from, ptrdiff_t from_byte,
ptrdiff_t to, ptrdiff_t to_byte)
{
Lisp_Object res;
- ptrdiff_t size;
-
- CHECK_VECTOR_OR_STRING (string);
-
- size = STRINGP (string) ? SCHARS (string) : ASIZE (string);
+ ptrdiff_t size = CHECK_VECTOR_OR_STRING (string);
if (!(0 <= from && from <= to && to <= size))
args_out_of_range_3 (string, make_number (from), make_number (to));