diff options
| author | Richard M. Stallman <rms@gnu.org> | 1994-07-05 07:25:05 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 1994-07-05 07:25:05 +0000 |
| commit | d0a11f95f9c779adf1d808bb751c345857d533fc (patch) | |
| tree | 9233a6778647241f4a600d119aa339f53b98a73d /src | |
| parent | 35a65fcedefa225bca856ea802a7bc758b48bde3 (diff) | |
| download | emacs-d0a11f95f9c779adf1d808bb751c345857d533fc.tar.gz | |
Be less eager to define MATCH_MAY_ALLOCATE.
Diffstat (limited to 'src')
| -rw-r--r-- | src/regex.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/regex.c b/src/regex.c index bd9ad6f6972..0cfd4969982 100644 --- a/src/regex.c +++ b/src/regex.c @@ -898,8 +898,8 @@ static const char *re_error_msg[] = ralloc heap) shift the data out from underneath the regexp routines. - Here's another reason to avoid allocation: Emacs insists on - processing input from X in a signal handler; processing X input may + Here's another reason to avoid allocation: Emacs + processes input from X in a signal handler; processing X input may call malloc; if input arrives while a matching routine is calling malloc, then we're scrod. But Emacs can't just block input while calling matching routines; then we don't notice interrupts when @@ -910,8 +910,9 @@ static const char *re_error_msg[] = /* Normally, this is fine. */ #define MATCH_MAY_ALLOCATE -/* But under some circumstances, it's not. */ -#if defined (emacs) || (defined (REL_ALLOC) && defined (C_ALLOCA)) +/* The match routines may not allocate if (1) they would do it with malloc + and (2) it's not safe for htem to use malloc. */ +#if (defined (C_ALLOCA) || defined (REGEX_MALLOC)) && (defined (emacs) || defined (REL_ALLOC)) #undef MATCH_MAY_ALLOCATE #endif |
