From e62371e929af0d1d53afeebfbfbb7dfb71739da8 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Mon, 30 Oct 2000 04:10:22 +0000 Subject: [PATCH] (Fset_match_data): Be sure to make search_regs always sane. --- src/search.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/search.c b/src/search.c index ceeaef810e6..27b9b8181ca 100644 --- a/src/search.c +++ b/src/search.c @@ -2746,6 +2746,9 @@ LIST should have been created by calling `match-data' previously.") length * sizeof (regoff_t)); } + for (i = search_regs.num_regs; i < length; i++) + search_regs.start[i] = -1; + search_regs.num_regs = length; } } @@ -2760,6 +2763,8 @@ LIST should have been created by calling `match-data' previously.") } else { + int from; + if (MARKERP (marker)) { if (XMARKER (marker)->buffer == 0) @@ -2769,7 +2774,7 @@ LIST should have been created by calling `match-data' previously.") } CHECK_NUMBER_COERCE_MARKER (marker, 0); - search_regs.start[i] = XINT (marker); + from = XINT (marker); list = Fcdr (list); marker = Fcar (list); @@ -2777,6 +2782,7 @@ LIST should have been created by calling `match-data' previously.") XSETFASTINT (marker, 0); CHECK_NUMBER_COERCE_MARKER (marker, 0); + search_regs.start[i] = from; search_regs.end[i] = XINT (marker); } list = Fcdr (list); -- 2.39.5