@@ -836,7 +836,6 @@ free_buffer(buf_T *buf)
836836 free_buffer_stuff (buf , TRUE);
837837#ifdef FEAT_EVAL
838838 unref_var_dict (buf -> b_vars );
839- buf -> b_changedtick = & buf -> b_ct_val ;
840839#endif
841840#ifdef FEAT_LUA
842841 lua_buffer_free (buf );
@@ -878,31 +877,22 @@ free_buffer(buf_T *buf)
878877}
879878
880879/*
881- * Initializes buf->b_changedtick .
880+ * Initializes b:changedtick .
882881 */
883882 static void
884883init_changedtick (buf_T * buf )
885884{
886- #ifdef FEAT_EVAL
887- dictitem_T * di = dictitem_alloc ((char_u * )"changedtick" );
885+ dictitem_T * di = (dictitem_T * )& buf -> b_ct_di ;
888886
889- if (di != NULL )
890- {
891- di -> di_flags |= DI_FLAGS_FIX | DI_FLAGS_RO ;
892- di -> di_tv .v_type = VAR_NUMBER ;
893- di -> di_tv .v_lock = VAR_FIXED ;
894- di -> di_tv .vval .v_number = 0 ;
895- if (dict_add (buf -> b_vars , di ) == OK )
896- buf -> b_changedtick = & di -> di_tv .vval .v_number ;
897- else
898- {
899- vim_free (di );
900- buf -> b_changedtick = & buf -> b_ct_val ;
901- }
902- }
903- else
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+
892+ #ifdef FEAT_EVAL
893+ STRCPY (buf -> b_ct_di .di_key , "changedtick" );
894+ (void )dict_add (buf -> b_vars , di );
904895#endif
905- buf -> b_changedtick = & buf -> b_ct_val ;
906896}
907897
908898/*
@@ -923,12 +913,12 @@ free_buffer_stuff(
923913 }
924914#ifdef FEAT_EVAL
925915 {
926- varnumber_T tick = * buf -> b_changedtick ;
916+ varnumber_T tick = CHANGEDTICK ( buf ) ;
927917
928918 vars_clear (& buf -> b_vars -> dv_hashtab ); /* free all buffer variables */
929919 hash_init (& buf -> b_vars -> dv_hashtab );
930920 init_changedtick (buf );
931- * buf -> b_changedtick = tick ;
921+ CHANGEDTICK ( buf ) = tick ;
932922 }
933923#endif
934924#ifdef FEAT_USR_CMDS
0 commit comments