patch 8.2.4723: the ModeChanged autocmd event is inefficient

Problem:    The ModeChanged autocmd event is inefficient.
Solution:   Avoid allocating memory. (closes #10134)  Rename
            trigger_modechanged() to may_trigger_modechanged().
diff --git a/src/autocmd.c b/src/autocmd.c
index a0065de..3b384f5 100644
--- a/src/autocmd.c
+++ b/src/autocmd.c
@@ -1240,17 +1240,7 @@
 		// need to initialize last_mode for the first ModeChanged
 		// autocmd
 		if (event == EVENT_MODECHANGED && !has_modechanged())
-		{
-		    typval_T rettv;
-		    typval_T tv[2];
-
-		    tv[0].v_type = VAR_NUMBER;
-		    tv[0].vval.v_number = 1;
-		    tv[1].v_type = VAR_UNKNOWN;
-		    f_mode(tv, &rettv);
-		    STRCPY(last_mode, rettv.vval.v_string);
-		    vim_free(rettv.vval.v_string);
-		}
+		    get_mode(last_mode);
 #endif
 		// Initialize the fields checked by the WinScrolled trigger to
 		// stop it from firing right after the first autocmd is defined.