diff --git a/src/document/renderer.c b/src/document/renderer.c index 509f3c25a..ecc240afa 100644 --- a/src/document/renderer.c +++ b/src/document/renderer.c @@ -36,6 +36,7 @@ #include "util/error.h" #include "util/memory.h" #include "util/string.h" +#include "viewer/text/form.h" #include "viewer/text/view.h" #include "viewer/text/vs.h" @@ -335,6 +336,11 @@ render_document(struct view_state *vs, struct document_view *doc_view, if (!document) return; doc_view->document = document; + if (doc_view->session + && doc_view->session->reloadlevel > CACHE_MODE_NORMAL) + while (vs->form_info_len) + mem_free_if(vs->form_info[--vs->form_info_len].value); + shrink_memory(0); render_encoded_document(cached, document);