diff --git a/src/ChangeLog b/src/ChangeLog index eb74f458942..3b85ef30795 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2012-07-26 Dmitry Antipov + + Explicitly free restriction data that are not needed anymore. + * editfns.c (save_restriction_restore): Free restriction data. + 2012-07-26 Stefan Monnier * eval.c (Fautoload_do_load): Rename from do_autoload, export to Lisp, diff --git a/src/editfns.c b/src/editfns.c index 9cfd0449daa..f174594dd97 100644 --- a/src/editfns.c +++ b/src/editfns.c @@ -3379,6 +3379,10 @@ save_restriction_restore (Lisp_Object data) buf->clip_changed = 1; /* Remember that the narrowing changed. */ } + /* These aren't needed anymore, so don't wait for GC. */ + free_marker (XCAR (data)); + free_marker (XCDR (data)); + free_cons (XCONS (data)); } else /* A buffer, which means that there was no old restriction. */