aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKim F. Storm2004-05-17 22:48:07 +0000
committerKim F. Storm2004-05-17 22:48:07 +0000
commitb5be4dbe9664b278c6c7d1ab782b0e44434f21eb (patch)
tree9b44a72366d1b1c769d1c821200255a3c17d0749 /src
parent28b8f74030ab824a230ba4f6e317928a91907d98 (diff)
downloademacs-b5be4dbe9664b278c6c7d1ab782b0e44434f21eb.tar.gz
emacs-b5be4dbe9664b278c6c7d1ab782b0e44434f21eb.zip
(get_char_property_and_overlay): Use GET_OVERLAYS_AT.
Diffstat (limited to 'src')
-rw-r--r--src/textprop.c23
1 files changed, 3 insertions, 20 deletions
diff --git a/src/textprop.c b/src/textprop.c
index 4f13aefb1be..c8ec008dcbd 100644
--- a/src/textprop.c
+++ b/src/textprop.c
@@ -637,30 +637,13 @@ get_char_property_and_overlay (position, prop, object, overlay)
637 } 637 }
638 if (BUFFERP (object)) 638 if (BUFFERP (object))
639 { 639 {
640 int posn = XINT (position);
641 int noverlays; 640 int noverlays;
642 Lisp_Object *overlay_vec, tem; 641 Lisp_Object *overlay_vec;
643 int len;
644 struct buffer *obuf = current_buffer; 642 struct buffer *obuf = current_buffer;
645 643
646 set_buffer_temp (XBUFFER (object)); 644 set_buffer_temp (XBUFFER (object));
647 645
648 /* First try with room for 40 overlays. */ 646 GET_OVERLAYS_AT (XINT (position), overlay_vec, noverlays, NULL, 0);
649 len = 40;
650 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
651
652 noverlays = overlays_at (posn, 0, &overlay_vec, &len,
653 NULL, NULL, 0);
654
655 /* If there are more than 40,
656 make enough space for all, and try again. */
657 if (noverlays > len)
658 {
659 len = noverlays;
660 overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object));
661 noverlays = overlays_at (posn, 0, &overlay_vec, &len,
662 NULL, NULL, 0);
663 }
664 noverlays = sort_overlays (overlay_vec, noverlays, w); 647 noverlays = sort_overlays (overlay_vec, noverlays, w);
665 648
666 set_buffer_temp (obuf); 649 set_buffer_temp (obuf);
@@ -668,7 +651,7 @@ get_char_property_and_overlay (position, prop, object, overlay)
668 /* Now check the overlays in order of decreasing priority. */ 651 /* Now check the overlays in order of decreasing priority. */
669 while (--noverlays >= 0) 652 while (--noverlays >= 0)
670 { 653 {
671 tem = Foverlay_get (overlay_vec[noverlays], prop); 654 Lisp_Object tem = Foverlay_get (overlay_vec[noverlays], prop);
672 if (!NILP (tem)) 655 if (!NILP (tem))
673 { 656 {
674 if (overlay) 657 if (overlay)