aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDmitry Antipov2013-08-28 12:33:12 +0400
committerDmitry Antipov2013-08-28 12:33:12 +0400
commit6bdcbfe1e33fa27b7c19042de6b0f69be12aad45 (patch)
tree2637ce7d18e95c1a785d485e386f5ddeea91d072 /src
parent50b13cdedb19f4bdd6737e8d2cdb4daa4e886c92 (diff)
downloademacs-6bdcbfe1e33fa27b7c19042de6b0f69be12aad45.tar.gz
emacs-6bdcbfe1e33fa27b7c19042de6b0f69be12aad45.zip
* buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
(Fprevious_overlay_change): Fast path for buffer with no overlays.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/buffer.c12
2 files changed, 17 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index ed2346424ea..37c167393f7 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,8 @@
12013-08-28 Dmitry Antipov <dmantipov@yandex.ru>
2
3 * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
4 (Fprevious_overlay_change): Fast path for buffer with no overlays.
5
12013-08-28 Paul Eggert <eggert@cs.ucla.edu> 62013-08-28 Paul Eggert <eggert@cs.ucla.edu>
2 7
3 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh, 8 * Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
diff --git a/src/buffer.c b/src/buffer.c
index 7bc98a8b1d3..1495bd65de7 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -4161,6 +4161,9 @@ DEFUN ("overlays-at", Foverlays_at, Soverlays_at, 1, 1, 0,
4161 4161
4162 CHECK_NUMBER_COERCE_MARKER (pos); 4162 CHECK_NUMBER_COERCE_MARKER (pos);
4163 4163
4164 if (!buffer_has_overlays ())
4165 return Qnil;
4166
4164 len = 10; 4167 len = 10;
4165 /* We can't use alloca here because overlays_at can call xrealloc. */ 4168 /* We can't use alloca here because overlays_at can call xrealloc. */
4166 overlay_vec = xmalloc (len * sizeof *overlay_vec); 4169 overlay_vec = xmalloc (len * sizeof *overlay_vec);
@@ -4193,6 +4196,9 @@ end of the buffer. */)
4193 CHECK_NUMBER_COERCE_MARKER (beg); 4196 CHECK_NUMBER_COERCE_MARKER (beg);
4194 CHECK_NUMBER_COERCE_MARKER (end); 4197 CHECK_NUMBER_COERCE_MARKER (end);
4195 4198
4199 if (!buffer_has_overlays ())
4200 return Qnil;
4201
4196 len = 10; 4202 len = 10;
4197 overlay_vec = xmalloc (len * sizeof *overlay_vec); 4203 overlay_vec = xmalloc (len * sizeof *overlay_vec);
4198 4204
@@ -4221,6 +4227,9 @@ the value is (point-max). */)
4221 4227
4222 CHECK_NUMBER_COERCE_MARKER (pos); 4228 CHECK_NUMBER_COERCE_MARKER (pos);
4223 4229
4230 if (!buffer_has_overlays ())
4231 return make_number (ZV);
4232
4224 len = 10; 4233 len = 10;
4225 overlay_vec = xmalloc (len * sizeof *overlay_vec); 4234 overlay_vec = xmalloc (len * sizeof *overlay_vec);
4226 4235
@@ -4260,6 +4269,9 @@ the value is (point-min). */)
4260 4269
4261 CHECK_NUMBER_COERCE_MARKER (pos); 4270 CHECK_NUMBER_COERCE_MARKER (pos);
4262 4271
4272 if (!buffer_has_overlays ())
4273 return make_number (BEGV);
4274
4263 /* At beginning of buffer, we know the answer; 4275 /* At beginning of buffer, we know the answer;
4264 avoid bug subtracting 1 below. */ 4276 avoid bug subtracting 1 below. */
4265 if (XINT (pos) == BEGV) 4277 if (XINT (pos) == BEGV)