patch 8.0.1498: getjumplist() returns duplicate entries

Problem:    Getjumplist() returns duplicate entries. (lacygoill)
Solution:   Call cleanup_jumplist(). (Yegappan Lakshmanan)
diff --git a/src/evalfunc.c b/src/evalfunc.c
index da870c6..f30dd9b 100644
--- a/src/evalfunc.c
+++ b/src/evalfunc.c
@@ -4871,8 +4871,13 @@
 	return;
     list_append_number(rettv->vval.v_list, (varnumber_T)wp->w_jumplistidx);
 
+    cleanup_jumplist(wp);
     for (i = 0; i < wp->w_jumplistlen; ++i)
     {
+	if (wp->w_jumplist[i].fmark.mark.lnum == 0)
+	    continue;
+	if (wp->w_jumplist[i].fmark.fnum == 0)
+	    fname2fnum(&wp->w_jumplist[i]);
 	if ((d = dict_alloc()) == NULL)
 	    return;
 	if (list_append_dict(l, d) == FAIL)
@@ -4886,7 +4891,7 @@
 		NULL);
 # endif
 	dict_add_nr_str(d, "bufnr", (long)wp->w_jumplist[i].fmark.fnum, NULL);
-	if (wp->w_jumplist[i].fmark.fnum == 0)
+	if (wp->w_jumplist[i].fname != NULL)
 	    dict_add_nr_str(d, "filename", 0L, wp->w_jumplist[i].fname);
     }
 #endif