@@ -893,6 +893,17 @@ static int buffered_stream_write(
893893 return git_str_put (& buffered_stream -> input , buffer , len );
894894}
895895
896+ #ifndef GIT_DEPRECATE_HARD
897+ # define BUF_TO_STRUCT (b , s ) \
898+ (b)->ptr = (s)->ptr; \
899+ (b)->size = (s)->size; \
900+ (b)->reserved = (s)->asize;
901+ # define STRUCT_TO_BUF (s , b ) \
902+ (s)->ptr = (b)->ptr; \
903+ (s)->size = (b)->size; \
904+ (s)->asize = (b)->reserved;
905+ #endif
906+
896907static int buffered_stream_close (git_writestream * s )
897908{
898909 struct buffered_stream * buffered_stream = (struct buffered_stream * )s ;
@@ -907,19 +918,18 @@ static int buffered_stream_close(git_writestream *s)
907918 git_buf legacy_output = GIT_BUF_INIT ,
908919 legacy_input = GIT_BUF_INIT ;
909920
910- legacy_output .ptr = buffered_stream -> output -> ptr ;
911- legacy_output .size = buffered_stream -> output -> size ;
912- legacy_output .reserved = buffered_stream -> output -> asize ;
913- legacy_input .ptr = buffered_stream -> input .ptr ;
914- legacy_input .size = buffered_stream -> input .size ;
915- legacy_input .reserved = buffered_stream -> input .asize ;
921+ BUF_TO_STRUCT (& legacy_output , buffered_stream -> output );
922+ BUF_TO_STRUCT (& legacy_input , & buffered_stream -> input );
916923
917924 error = buffered_stream -> legacy_write_fn (
918925 buffered_stream -> filter ,
919926 buffered_stream -> payload ,
920927 & legacy_output ,
921928 & legacy_input ,
922929 buffered_stream -> source );
930+
931+ STRUCT_TO_BUF (buffered_stream -> output , & legacy_output );
932+ STRUCT_TO_BUF (& buffered_stream -> input , & legacy_input );
923933 } else
924934#endif
925935 error = buffered_stream -> write_fn (
0 commit comments