@@ -832,7 +832,6 @@ free_buffer(buf_T *buf)
832832 free_buffer_stuff (buf , TRUE);
833833#ifdef FEAT_EVAL
834834 unref_var_dict (buf -> b_vars );
835- buf -> b_changedtick = & buf -> b_ct_val ;
836835#endif
837836#ifdef FEAT_LUA
838837 lua_buffer_free (buf );
@@ -874,31 +873,20 @@ free_buffer(buf_T *buf)
874873}
875874
876875/*
877- * Initializes buf->b_changedtick .
876+ * Initializes b:changedtick .
878877 */
879878 static void
880879init_changedtick (buf_T * buf )
881880{
882- #ifdef FEAT_EVAL
883- dictitem_T * di = dictitem_alloc ((char_u * )"changedtick" );
881+ dictitem_T * di = (dictitem_T * )& buf -> b_ct_di ;
884882
885- if (di != NULL )
886- {
887- di -> di_flags |= DI_FLAGS_FIX | DI_FLAGS_RO ;
888- di -> di_tv .v_type = VAR_NUMBER ;
889- di -> di_tv .v_lock = VAR_FIXED ;
890- di -> di_tv .vval .v_number = 0 ;
891- if (dict_add (buf -> b_vars , di ) == OK )
892- buf -> b_changedtick = & di -> di_tv .vval .v_number ;
893- else
894- {
895- vim_free (di );
896- buf -> b_changedtick = & buf -> b_ct_val ;
897- }
898- }
899- else
900- #endif
901- buf -> b_changedtick = & buf -> b_ct_val ;
883+ di -> di_flags = DI_FLAGS_FIX | DI_FLAGS_RO ;
884+ di -> di_tv .v_type = VAR_NUMBER ;
885+ di -> di_tv .v_lock = VAR_FIXED ;
886+ di -> di_tv .vval .v_number = 0 ;
887+
888+ STRCPY (buf -> b_ct_di .di_key , "changedtick" );
889+ (void )dict_add (buf -> b_vars , di );
902890}
903891
904892/*
@@ -919,12 +907,12 @@ free_buffer_stuff(
919907 }
920908#ifdef FEAT_EVAL
921909 {
922- varnumber_T tick = * buf -> b_changedtick ;
910+ varnumber_T tick = CHANGEDTICK ( buf ) ;
923911
924912 vars_clear (& buf -> b_vars -> dv_hashtab ); /* free all buffer variables */
925913 hash_init (& buf -> b_vars -> dv_hashtab );
926914 init_changedtick (buf );
927- * buf -> b_changedtick = tick ;
915+ CHANGEDTICK ( buf ) = tick ;
928916 }
929917#endif
930918#ifdef FEAT_USR_CMDS
0 commit comments