From: Dmitry Antipov Date: Wed, 28 Aug 2013 08:33:12 +0000 (+0400) Subject: * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~1686^2~84 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6bdcbfe1e33fa27b7c19042de6b0f69be12aad45;p=emacs.git * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) (Fprevious_overlay_change): Fast path for buffer with no overlays. --- diff --git a/src/ChangeLog b/src/ChangeLog index ed2346424ea..37c167393f7 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2013-08-28 Dmitry Antipov + + * buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change) + (Fprevious_overlay_change): Fast path for buffer with no overlays. + 2013-08-28 Paul Eggert * 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, CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return Qnil; + len = 10; /* We can't use alloca here because overlays_at can call xrealloc. */ overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4193,6 +4196,9 @@ end of the buffer. */) CHECK_NUMBER_COERCE_MARKER (beg); CHECK_NUMBER_COERCE_MARKER (end); + if (!buffer_has_overlays ()) + return Qnil; + len = 10; overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4221,6 +4227,9 @@ the value is (point-max). */) CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return make_number (ZV); + len = 10; overlay_vec = xmalloc (len * sizeof *overlay_vec); @@ -4260,6 +4269,9 @@ the value is (point-min). */) CHECK_NUMBER_COERCE_MARKER (pos); + if (!buffer_has_overlays ()) + return make_number (BEGV); + /* At beginning of buffer, we know the answer; avoid bug subtracting 1 below. */ if (XINT (pos) == BEGV)