1 new commit in XEmacs:
https://bitbucket.org/xemacs/xemacs/changeset/8a2ac78cb97d/
changeset: 8a2ac78cb97d
user: kehoea
date: 2012-09-02 18:36:47
summary: Pre-emptively update any dirty mirror syntax table before searching
src/ChangeLog addition:
2012-09-02 Aidan Kehoe <kehoea(a)parhasard.net>
* regex.c (re_search_2):
* regex.c (re_match_2):
If the mirror syntax table is dirty, update it before the search,
preventing a malloc() inside the search code, something which
isn't allowed. Thank you Henry Thompson!
tests/ChangeLog addition:
2012-09-02 Aidan Kehoe <kehoea(a)parhasard.net>
* automated/regexp-tests.el:
Make sure we can search for character ranges successfully when the
syntax table is dirty.
affected #: 4 files
diff -r a81a739181dce8c6705bddd92047b210b95abb0c -r
8a2ac78cb97d31a39208d1c6c5081477daac61eb src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,11 @@
+2012-09-02 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * regex.c (re_search_2):
+ * regex.c (re_match_2):
+ If the mirror syntax table is dirty, update it before the search,
+ preventing a malloc() inside the search code, something which
+ isn't allowed. Thank you Henry Thompson!
+
2012-08-12 Aidan Kehoe <kehoea(a)parhasard.net>
* specifier.c (define_specifier_tag):
diff -r a81a739181dce8c6705bddd92047b210b95abb0c -r
8a2ac78cb97d31a39208d1c6c5081477daac61eb src/regex.c
--- a/src/regex.c
+++ b/src/regex.c
@@ -4663,6 +4663,7 @@
#ifdef emacs
BEGIN_REGEX_MALLOC_OK ();
+ update_mirror_syntax_if_dirty (BUFFER_MIRROR_SYNTAX_TABLE (lispbuf));
scache = setup_syntax_cache (scache, lispobj, lispbuf,
offset_to_charxpos (lispobj, startpos),
1);
@@ -5052,6 +5053,10 @@
int result;
#ifdef emacs
+ /* Update the mirror syntax table if it's dirty now, this would otherwise
+ cause a malloc() in charset_mule in re_match_2_internal() when checking
+ characters' syntax. */
+ update_mirror_syntax_if_dirty (BUFFER_MIRROR_SYNTAX_TABLE (lispbuf));
scache = setup_syntax_cache (scache, lispobj, lispbuf,
offset_to_charxpos (lispobj, pos),
1);
diff -r a81a739181dce8c6705bddd92047b210b95abb0c -r
8a2ac78cb97d31a39208d1c6c5081477daac61eb tests/ChangeLog
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,3 +1,9 @@
+2012-09-02 Aidan Kehoe <kehoea(a)parhasard.net>
+
+ * automated/regexp-tests.el:
+ Make sure we can search for character ranges successfully when the
+ syntax table is dirty.
+
2012-08-02 Stephen J. Turnbull <stephen(a)xemacs.org>
* XEmacs 21.5.32 "habanero" is released.
diff -r a81a739181dce8c6705bddd92047b210b95abb0c -r
8a2ac78cb97d31a39208d1c6c5081477daac61eb tests/automated/regexp-tests.el
--- a/tests/automated/regexp-tests.el
+++ b/tests/automated/regexp-tests.el
@@ -1109,3 +1109,11 @@
(decode-char 'ucs #x2116) ;; NUMERO SIGN
(decode-char 'ucs #x5357))) ;; kDefinition south; southern part; southward
+(with-temp-buffer
+ (insert "hi there")
+ (goto-char 1)
+ (set-syntax-table (copy-syntax-table))
+ (modify-syntax-entry 'ascii "<")
+ (Assert (null (re-search-forward "[[:alnum:]]" nil t))
+ "checking that a bug with dirty syntax table caches has been
fixed"))
+
Repository URL:
https://bitbucket.org/xemacs/xemacs/
--
This is a commit notification from
bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
_______________________________________________
XEmacs-Patches mailing list
XEmacs-Patches(a)xemacs.org
http://lists.xemacs.org/mailman/listinfo/xemacs-patches