patch 8.1.1946: memory error when profiling a function without a script ID

Problem:    Memory error when profiling a function without a script ID.
Solution:   Check for missing script ID.  (closes #4877)
diff --git a/src/profiler.c b/src/profiler.c
index 64ee0ed..d7d010f 100644
--- a/src/profiler.c
+++ b/src/profiler.c
@@ -690,13 +690,16 @@
 		    fprintf(fd, "FUNCTION  <SNR>%s()\n", fp->uf_name + 3);
 		else
 		    fprintf(fd, "FUNCTION  %s()\n", fp->uf_name);
-		p = home_replace_save(NULL,
-				     get_scriptname(fp->uf_script_ctx.sc_sid));
-		if (p != NULL)
+		if (fp->uf_script_ctx.sc_sid > 0)
 		{
-		    fprintf(fd, "    Defined: %s line %ld\n",
+		    p = home_replace_save(NULL,
+				     get_scriptname(fp->uf_script_ctx.sc_sid));
+		    if (p != NULL)
+		    {
+			fprintf(fd, "    Defined: %s line %ld\n",
 					   p, (long)fp->uf_script_ctx.sc_lnum);
-		    vim_free(p);
+			vim_free(p);
+		    }
 		}
 		if (fp->uf_tm_count == 1)
 		    fprintf(fd, "Called 1 time\n");