Module Name:    src
Committed By:   kre
Date:           Sun Jul 22 20:37:57 UTC 2018

Modified Files:
        src/bin/sh: memalloc.c

Log Message:
Minor cleanups to growstackblock().   This should really change
nothing that matters, but might be slightly more robust/complete.


To generate a diff of this commit:
cvs rdiff -u -r1.30 -r1.31 src/bin/sh/memalloc.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/bin/sh/memalloc.c
diff -u src/bin/sh/memalloc.c:1.30 src/bin/sh/memalloc.c:1.31
--- src/bin/sh/memalloc.c:1.30	Sat Jun 17 07:22:12 2017
+++ src/bin/sh/memalloc.c	Sun Jul 22 20:37:57 2018
@@ -1,4 +1,4 @@
-/*	$NetBSD: memalloc.c,v 1.30 2017/06/17 07:22:12 kre Exp $	*/
+/*	$NetBSD: memalloc.c,v 1.31 2018/07/22 20:37:57 kre Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -37,7 +37,7 @@
 #if 0
 static char sccsid[] = "@(#)memalloc.c	8.3 (Berkeley) 5/4/95";
 #else
-__RCSID("$NetBSD: memalloc.c,v 1.30 2017/06/17 07:22:12 kre Exp $");
+__RCSID("$NetBSD: memalloc.c,v 1.31 2018/07/22 20:37:57 kre Exp $");
 #endif
 #endif /* not lint */
 
@@ -207,12 +207,12 @@ growstackblock(void)
 {
 	int newlen = SHELL_ALIGN(stacknleft * 2 + 100);
 
+	INTOFF;
 	if (stacknxt == stackp->space && stackp != &stackbase) {
 		struct stack_block *oldstackp;
 		struct stackmark *xmark;
 		struct stack_block *sp;
 
-		INTOFF;
 		oldstackp = stackp;
 		sp = stackp;
 		stackp = sp->prev;
@@ -221,6 +221,7 @@ growstackblock(void)
 		sp->prev = stackp;
 		stackp = sp;
 		stacknxt = sp->space;
+		sstrnleft += newlen - stacknleft;
 		stacknleft = newlen;
 
 		/*
@@ -231,10 +232,10 @@ growstackblock(void)
 		while (xmark != NULL && xmark->stackp == oldstackp) {
 			xmark->stackp = stackp;
 			xmark->stacknxt = stacknxt;
+			xmark->sstrnleft += stacknleft - xmark->stacknleft;
 			xmark->stacknleft = stacknleft;
 			xmark = xmark->marknext;
 		}
-		INTON;
 	} else {
 		char *oldspace = stacknxt;
 		int oldlen = stacknleft;
@@ -244,6 +245,7 @@ growstackblock(void)
 		stacknxt = p;			/* free the space */
 		stacknleft += newlen;		/* we just allocated */
 	}
+	INTON;
 }
 
 void

Reply via email to