diff options
author | Chong Yidong <[email protected]> | 2012-05-31 14:08:06 +0800 |
---|---|---|
committer | Chong Yidong <[email protected]> | 2012-05-31 14:08:06 +0800 |
commit | efc00ab16e2890b75d7224434ac43fe944ade4dd (patch) | |
tree | 28c1078ca32b96402cd1a5f618a17b3526143f27 /src/charset.c | |
parent | ba93a18774352c97d6dd73c73141cbff6305581b (diff) | |
parent | dd41169b6cb0105b0766f3d368c657ebafc19cba (diff) |
Merge from emacs-24; up to 2012-04-24T21:47:[email protected]
Diffstat (limited to 'src/charset.c')
-rw-r--r-- | src/charset.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/charset.c b/src/charset.c index 6ecc8d2c4d..8ce972ebf3 100644 --- a/src/charset.c +++ b/src/charset.c @@ -1633,6 +1633,12 @@ maybe_unify_char (int c, Lisp_Object val) return c; CHECK_CHARSET_GET_CHARSET (val, charset); +#ifdef REL_ALLOC + /* The call to load_charset below can allocate memory, which screws + callers of this function through STRING_CHAR_* macros that hold C + pointers to buffer text, if REL_ALLOC is used. */ + r_alloc_inhibit_buffer_relocation (1); +#endif load_charset (charset, 1); if (! inhibit_load_charset_map) { @@ -1648,6 +1654,9 @@ maybe_unify_char (int c, Lisp_Object val) if (unified > 0) c = unified; } +#ifdef REL_ALLOC + r_alloc_inhibit_buffer_relocation (0); +#endif return c; } |