diff options
| author | Dmitry Antipov <dmantipov@yandex.ru> | 2013-08-28 12:33:12 +0400 |
|---|---|---|
| committer | Dmitry Antipov <dmantipov@yandex.ru> | 2013-08-28 12:33:12 +0400 |
| commit | 6bdcbfe1e33fa27b7c19042de6b0f69be12aad45 (patch) | |
| tree | 2637ce7d18e95c1a785d485e386f5ddeea91d072 /src/buffer.c | |
| parent | 50b13cdedb19f4bdd6737e8d2cdb4daa4e886c92 (diff) | |
* buffer.c (Foverlays_at, Foverlays_in, Fnext_overlay_change)
(Fprevious_overlay_change): Fast path for buffer with no overlays.
Diffstat (limited to 'src/buffer.c')
| -rw-r--r-- | src/buffer.c | 12 |
1 files changed, 12 insertions, 0 deletions
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) |
