patch 8.2.1207: Vim9: crash in expr test when run in the GUI

Problem:    Vim9: crash in expr test when run in the GUI.
Solution:   Break out of loop over hashtab also when function got removed and
            added.
diff --git a/src/userfunc.c b/src/userfunc.c
index 467a046..6e49c03 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -3444,8 +3444,8 @@
     void
 ex_defcompile(exarg_T *eap UNUSED)
 {
-    long_u	ht_used = func_hashtab.ht_used;
-    int		todo = (int)ht_used;
+    long	todo = (long)func_hashtab.ht_used;
+    int		changed = func_hashtab.ht_changed;
     hashitem_T	*hi;
     ufunc_T	*ufunc;
 
@@ -3460,12 +3460,12 @@
 	    {
 		compile_def_function(ufunc, FALSE, NULL);
 
-		if (func_hashtab.ht_used != ht_used)
+		if (func_hashtab.ht_changed != changed)
 		{
-		    // another function has been defined, need to start over
+		    // a function has been added or removed, need to start over
+		    todo = (long)func_hashtab.ht_used;
+		    changed = func_hashtab.ht_changed;
 		    hi = func_hashtab.ht_array;
-		    ht_used = func_hashtab.ht_used;
-		    todo = (int)ht_used;
 		    --hi;
 		}
 	    }