<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/a0898ce79cac9c782f0c4bafa8eb0d8cf806a9cf">https://github.com/macports/macports-base/commit/a0898ce79cac9c782f0c4bafa8eb0d8cf806a9cf</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new a0898ce7 Fix crash in restore_entry_list
</span>a0898ce7 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a0898ce79cac9c782f0c4bafa8eb0d8cf806a9cf
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sun Jun 13 14:29:40 2021 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Fix crash in restore_entry_list
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/63079
</span>---
 src/registry2.0/entry.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/registry2.0/entry.c b/src/registry2.0/entry.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 987b065f..001d1169 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/registry2.0/entry.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/registry2.0/entry.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -146,6 +146,17 @@ static int entry_delete(Tcl_Interp* interp, int objc, Tcl_Obj* CONST objv[]) {
</span>         if (!reg_entry_delete(entry, &error)) {
             return registry_failed(interp, &error);
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        /* We want to delete the command but not free the entry object,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           since we may want to restore it (delete_entry_list will free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           it if the transaction is not rolled back). So remove the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           command's associated deleteProc first. The reg_entry_free
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           below will take care of it if there is no transaction in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           progress. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        Tcl_CmdInfo info;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if (Tcl_GetCommandInfo(interp, Tcl_GetString(objv[2]), &info)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            info.deleteProc = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            Tcl_SetCommandInfo(interp, Tcl_GetString(objv[2]), &info);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         /* if there's a transaction going on, record this entry in a list so we
          * can roll it back if necessary
          */
</pre><pre style='margin:0'>

</pre>