Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: [PATCH] isearch: do not use PAT_STATIC since we call zle hooks
On Sun, 8 Jan 2017, Peter Stephenson wrote:
> On Sun, 8 Jan 2017 11:33:58 -0800
> Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx> wrote:
> > PAT_STATIC already causes the compiled pattern to be placed on the heap,
> > so we could introduce a PAT_HEAPDUP that works like PAT_ZDUP except
> > there would be no need to explicity freepatprog().
>
> That sounds like a good idea.
Of course I had this wrong -- the pattern is by default in a never-freed
block of zalloc'd memory used by the pattern compiler, and PAT_STATIC
causes it to remain there. (I misread a "!" in a conditional.)
So PAT_HEAPDUP is already there, it's just (not PAT_STATIC) ... and we
are back to deciding whether each individual use of PAT_STATIC is safe
WRT signals and hooks.
Should we make it explicit anyway?
diff --git a/Src/zsh.h b/Src/zsh.h
index d022260..c387414 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1531,6 +1531,7 @@ struct patstralloc {
/* Flags used in pattern matchers (Patprog) and passed down to patcompile */
+#define PAT_HEAPDUP 0x0000 /* Dummy flag for default behavior */
#define PAT_FILE 0x0001 /* Pattern is a file name */
#define PAT_FILET 0x0002 /* Pattern is top level file, affects ~ */
#define PAT_ANY 0x0004 /* Match anything (cheap "*") */
Messages sorted by:
Reverse Date,
Date,
Thread,
Author