about summary refs log tree commit diff
path: root/Src/params.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-08-11 19:32:50 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-08-11 19:32:50 +0000
commit548c4562fe5889ae8149c082c36ac9461babf0ec (patch)
treedbec17faae33c4944da8b8360583483a6707df71 /Src/params.c
parent773737e09f9235f83e1ca936fca9b2093388f80a (diff)
downloadzsh-548c4562fe5889ae8149c082c36ac9461babf0ec.tar.gz
zsh-548c4562fe5889ae8149c082c36ac9461babf0ec.tar.xz
zsh-548c4562fe5889ae8149c082c36ac9461babf0ec.zip
fix tests using zsh/datetime that I broke
Diffstat (limited to 'Src/params.c')
-rw-r--r--Src/params.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/Src/params.c b/Src/params.c
index fd0872130..446cccc7e 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3046,9 +3046,21 @@ mod_export void
 stdunsetfn(Param pm, UNUSED(int exp))
 {
     switch (PM_TYPE(pm->node.flags)) {
-	case PM_SCALAR: pm->gsu.s->setfn(pm, NULL); break;
-	case PM_ARRAY:  pm->gsu.a->setfn(pm, NULL); break;
-	case PM_HASHED: pm->gsu.h->setfn(pm, NULL); break;
+	case PM_SCALAR:
+	    if (pm->gsu.s->setfn)
+		pm->gsu.s->setfn(pm, NULL);
+	    break;
+
+	case PM_ARRAY:
+	    if (pm->gsu.a->setfn)
+		pm->gsu.a->setfn(pm, NULL);
+	    break;
+
+	case PM_HASHED:
+	    if (pm->gsu.h->setfn)
+		pm->gsu.h->setfn(pm, NULL);
+	    break;
+
 	default:
 	    if (!(pm->node.flags & PM_SPECIAL))
 	    	pm->u.str = NULL;