@@ -121,8 +121,8 @@ static void config_file_clear(diskfile *file)
121121
122122static int config_open (git_config_backend * cfg , git_config_level_t level , const git_repository * repo )
123123{
124+ diskfile_backend * b = GIT_CONTAINER_OF (cfg , diskfile_backend , header .parent );
124125 int res ;
125- diskfile_backend * b = (diskfile_backend * )cfg ;
126126
127127 b -> header .level = level ;
128128 b -> header .repo = repo ;
@@ -179,7 +179,7 @@ static int config_is_modified(int *modified, diskfile *file)
179179
180180static int config_set_entries (git_config_backend * cfg , git_config_entries * entries )
181181{
182- diskfile_backend * b = ( diskfile_backend * ) cfg ;
182+ diskfile_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_backend , header . parent ) ;
183183 git_config_entries * old = NULL ;
184184 diskfile * include ;
185185 int error ;
@@ -252,7 +252,7 @@ static int config_refresh(git_config_backend *cfg)
252252
253253static void backend_free (git_config_backend * _backend )
254254{
255- diskfile_backend * backend = ( diskfile_backend * ) _backend ;
255+ diskfile_backend * backend = GIT_CONTAINER_OF ( _backend , diskfile_backend , header . parent ) ;
256256
257257 if (backend == NULL )
258258 return ;
@@ -285,7 +285,7 @@ static int config_iterator_new(
285285
286286static int config_set (git_config_backend * cfg , const char * name , const char * value )
287287{
288- diskfile_backend * b = ( diskfile_backend * ) cfg ;
288+ diskfile_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_backend , header . parent ) ;
289289 git_config_entries * entries ;
290290 git_config_entry * existing ;
291291 char * key , * esc_value = NULL ;
@@ -337,7 +337,7 @@ static void free_diskfile_entry(git_config_entry *entry)
337337 */
338338static int config_get (git_config_backend * cfg , const char * key , git_config_entry * * out )
339339{
340- diskfile_header * h = ( diskfile_header * ) cfg ;
340+ diskfile_header * h = GIT_CONTAINER_OF ( cfg , diskfile_header , parent ) ;
341341 git_config_entries * entries = NULL ;
342342 git_config_entry * entry ;
343343 int error = 0 ;
@@ -363,7 +363,7 @@ static int config_get(git_config_backend *cfg, const char *key, git_config_entry
363363static int config_set_multivar (
364364 git_config_backend * cfg , const char * name , const char * regexp , const char * value )
365365{
366- diskfile_backend * b = ( diskfile_backend * ) cfg ;
366+ diskfile_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_backend , header . parent ) ;
367367 char * key ;
368368 p_regex_t preg ;
369369 int result ;
@@ -393,7 +393,7 @@ static int config_set_multivar(
393393
394394static int config_delete (git_config_backend * cfg , const char * name )
395395{
396- diskfile_backend * b = ( diskfile_backend * ) cfg ;
396+ diskfile_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_backend , header . parent ) ;
397397 git_config_entries * entries = NULL ;
398398 git_config_entry * entry ;
399399 char * key = NULL ;
@@ -423,7 +423,7 @@ static int config_delete(git_config_backend *cfg, const char *name)
423423
424424static int config_delete_multivar (git_config_backend * cfg , const char * name , const char * regexp )
425425{
426- diskfile_backend * b = ( diskfile_backend * ) cfg ;
426+ diskfile_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_backend , header . parent ) ;
427427 git_config_entries * entries = NULL ;
428428 git_config_entry * entry = NULL ;
429429 p_regex_t preg = { 0 };
@@ -462,7 +462,7 @@ static int config_delete_multivar(git_config_backend *cfg, const char *name, con
462462
463463static int config_lock (git_config_backend * _cfg )
464464{
465- diskfile_backend * cfg = ( diskfile_backend * ) _cfg ;
465+ diskfile_backend * cfg = GIT_CONTAINER_OF ( _cfg , diskfile_backend , header . parent ) ;
466466 int error ;
467467
468468 if ((error = git_filebuf_open (& cfg -> locked_buf , cfg -> file .path , 0 , GIT_CONFIG_FILE_MODE )) < 0 )
@@ -481,7 +481,7 @@ static int config_lock(git_config_backend *_cfg)
481481
482482static int config_unlock (git_config_backend * _cfg , int success )
483483{
484- diskfile_backend * cfg = ( diskfile_backend * ) _cfg ;
484+ diskfile_backend * cfg = GIT_CONTAINER_OF ( _cfg , diskfile_backend , header . parent ) ;
485485 int error = 0 ;
486486
487487 if (success ) {
@@ -581,7 +581,7 @@ static int config_unlock_readonly(git_config_backend *_cfg, int success)
581581
582582static void backend_readonly_free (git_config_backend * _backend )
583583{
584- diskfile_backend * backend = ( diskfile_backend * ) _backend ;
584+ diskfile_backend * backend = GIT_CONTAINER_OF ( _backend , diskfile_backend , header . parent ) ;
585585
586586 if (backend == NULL )
587587 return ;
@@ -593,7 +593,7 @@ static void backend_readonly_free(git_config_backend *_backend)
593593
594594static int config_readonly_open (git_config_backend * cfg , git_config_level_t level , const git_repository * repo )
595595{
596- diskfile_readonly_backend * b = ( diskfile_readonly_backend * ) cfg ;
596+ diskfile_readonly_backend * b = GIT_CONTAINER_OF ( cfg , diskfile_readonly_backend , header . parent ) ;
597597 diskfile_backend * src = b -> snapshot_from ;
598598 diskfile_header * src_header = & src -> header ;
599599 git_config_entries * entries ;
@@ -623,7 +623,7 @@ static int config_snapshot(git_config_backend **out, git_config_backend *in)
623623 backend -> header .parent .version = GIT_CONFIG_BACKEND_VERSION ;
624624 git_mutex_init (& backend -> header .values_mutex );
625625
626- backend -> snapshot_from = ( diskfile_backend * ) in ;
626+ backend -> snapshot_from = GIT_CONTAINER_OF ( in , diskfile_backend , header . parent ) ;
627627
628628 backend -> header .parent .readonly = 1 ;
629629 backend -> header .parent .version = GIT_CONFIG_BACKEND_VERSION ;
@@ -638,7 +638,7 @@ static int config_snapshot(git_config_backend **out, git_config_backend *in)
638638 backend -> header .parent .unlock = config_unlock_readonly ;
639639 backend -> header .parent .free = backend_readonly_free ;
640640
641- * out = ( git_config_backend * ) backend ;
641+ * out = & backend -> header . parent ;
642642
643643 return 0 ;
644644}
0 commit comments