@@ -1044,6 +1044,16 @@ static void restoreToNearestReference(SessionStackEntry *sessionEntry, Position
10441044 : firstVisible ;
10451045}
10461046
1047+ static void refreshCurrentFile (SessionStackEntry * sessionEntry , int filterLevel ) {
1048+ Position savedPos1 = getCurrentPosition (sessionEntry );
1049+ log_debug ("Refreshing stale source file %d: %s" , requestFileNumber ,
1050+ getFileItemWithFileNumber (requestFileNumber )-> name );
1051+ refreshStaleReferencesInSession (sessionEntry , requestFileNumber );
1052+
1053+ // References may have moved
1054+ restoreToNearestReference (sessionEntry , savedPos1 , filterLevel );
1055+ }
1056+
10471057static void gotoNextReference (void ) {
10481058 ENTER ();
10491059
@@ -1055,13 +1065,8 @@ static void gotoNextReference(void) {
10551065
10561066 int filterLevel = usageFilterLevels [sessionEntry -> refsFilterLevel ];
10571067
1058- Position savedPos1 = getCurrentPosition (sessionEntry );
1059- if (isFileNumberStale (requestFileNumber )) {
1060- log_debug ("Refreshing stale source file %d: %s" , requestFileNumber ,
1061- getFileItemWithFileNumber (requestFileNumber )-> name );
1062- refreshStaleReferencesInSession (sessionEntry , requestFileNumber );
1063- restoreToNearestReference (sessionEntry , savedPos1 , filterLevel );
1064- }
1068+ if (isFileNumberStale (requestFileNumber ))
1069+ refreshCurrentFile (sessionEntry , filterLevel );
10651070
10661071 // Determine the next reference we would navigate to
10671072 Reference * next = (sessionEntry -> current == NULL )
@@ -1099,13 +1104,8 @@ static void gotoPreviousReference(void) {
10991104
11001105 int filterLevel = usageFilterLevels [sessionEntry -> refsFilterLevel ];
11011106
1102- Position savedPos1 = getCurrentPosition (sessionEntry );
1103- if (isFileNumberStale (requestFileNumber )) {
1104- log_debug ("Refreshing stale source file %d: %s" , requestFileNumber ,
1105- getFileItemWithFileNumber (requestFileNumber )-> name );
1106- refreshStaleReferencesInSession (sessionEntry , requestFileNumber );
1107- restoreToNearestReference (sessionEntry , savedPos1 , filterLevel );
1108- }
1107+ if (isFileNumberStale (requestFileNumber ))
1108+ refreshCurrentFile (sessionEntry , filterLevel );
11091109
11101110 // Determine the previous reference we would navigate to
11111111 Reference * previous = findPreviousReference (sessionEntry , filterLevel );
0 commit comments