diff src/symtab.cc @ 3325:2efa28a91e7a

[project @ 1999-10-29 21:39:20 by jwe]
author jwe
date Fri, 29 Oct 1999 21:39:31 +0000
parents 7ae1928ca623
children c4983fc7318f
line wrap: on
line diff
--- a/src/symtab.cc	Fri Oct 29 21:33:38 1999 +0000
+++ b/src/symtab.cc	Fri Oct 29 21:39:31 1999 +0000
@@ -215,7 +215,7 @@
     {
       symbol_def *hidden_def = definition->next_elem;
 
-      if (hidden_def && hidden_def->is_builtin_function ())
+      if (hidden_def && hidden_def->is_user_function ())
 	retval = true;
     }
 
@@ -231,7 +231,7 @@
     {
       symbol_def *hidden_def = definition->next_elem;
 
-      if (hidden_def && hidden_def->is_user_function ())
+      if (hidden_def && hidden_def->is_builtin_function ())
 	retval = true;
     }
 
@@ -408,6 +408,9 @@
   while (definition)
     remove_top_def ();
 
+  if (! sd)
+    sd = new symbol_def ();
+
   push_def (sd);
 }
 
@@ -488,7 +491,8 @@
       while (ptr)
 	{
 	  if (ptr->is_user_variable ()
-	      || (clear_user_functions && ptr->is_user_function ()))
+	      || (clear_user_functions
+		  && (ptr->is_user_function () || ptr->is_dld_function ())))
 	    {
 	      ptr->clear ();
 	    }
@@ -509,7 +513,8 @@
     {
       if (ptr->name () == nm
 	  && (ptr->is_user_variable ()
-	      || (clear_user_functions && ptr->is_user_function ())))
+	      || (clear_user_functions
+		  && (ptr->is_user_function () || ptr->is_dld_function ()))))
 	{
 	  ptr->clear ();
 	  return true;