Message ID | 20250116-b4-pks-compat-drop-uncompress2-v3-7-f2af1f5c4a06@pks.im (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | compat/zlib: allow use of zlib-ng as backend | expand |
On 25/01/16 10:17AM, Patrick Steinhardt wrote: > The `struct git_zstream::next_in` variable points to the input data and > is used in combination with `struct z_stream::next_in`. While that > latter field is not marked as a constant in zlib, it is marked as such > in zlib-ng. This causes a couple of compiler errors when we try to > assign these fields to one another due to mismatching constness. > > Fix the issue by casting away the potential constness of `next_in`. > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > --- > git-zlib.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/git-zlib.c b/git-zlib.c > index 2e973320c2..519b3647ac 100644 > --- a/git-zlib.c > +++ b/git-zlib.c > @@ -59,7 +59,7 @@ static void zlib_post_call(git_zstream *s) > > s->total_out = s->z.total_out; > s->total_in = s->z.total_in; > - s->next_in = s->z.next_in; > + s->next_in = (unsigned char *) s->z.next_in; Without the context of the commit, its not obvious to me why this cast is happening and looks curious. It might be nice to leave a comment here explaining its purpose. -Justin > s->next_out = s->z.next_out; > s->avail_in -= bytes_consumed; > s->avail_out -= bytes_produced; > > -- > 2.48.0.257.gd3603152ad.dirty > >
On Sun, Jan 26, 2025 at 06:58:40PM -0600, Justin Tobler wrote: > On 25/01/16 10:17AM, Patrick Steinhardt wrote: > > The `struct git_zstream::next_in` variable points to the input data and > > is used in combination with `struct z_stream::next_in`. While that > > latter field is not marked as a constant in zlib, it is marked as such > > in zlib-ng. This causes a couple of compiler errors when we try to > > assign these fields to one another due to mismatching constness. > > > > Fix the issue by casting away the potential constness of `next_in`. > > > > Signed-off-by: Patrick Steinhardt <ps@pks.im> > > --- > > git-zlib.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/git-zlib.c b/git-zlib.c > > index 2e973320c2..519b3647ac 100644 > > --- a/git-zlib.c > > +++ b/git-zlib.c > > @@ -59,7 +59,7 @@ static void zlib_post_call(git_zstream *s) > > > > s->total_out = s->z.total_out; > > s->total_in = s->z.total_in; > > - s->next_in = s->z.next_in; > > + s->next_in = (unsigned char *) s->z.next_in; > > Without the context of the commit, its not obvious to me why this cast > is happening and looks curious. It might be nice to leave a comment here > explaining its purpose. Fair, otherwise someone using zlib might wonder why we have a seemingly unnecessary cast in the first place. Thanks for your input! Patrick
diff --git a/git-zlib.c b/git-zlib.c index 2e973320c2..519b3647ac 100644 --- a/git-zlib.c +++ b/git-zlib.c @@ -59,7 +59,7 @@ static void zlib_post_call(git_zstream *s) s->total_out = s->z.total_out; s->total_in = s->z.total_in; - s->next_in = s->z.next_in; + s->next_in = (unsigned char *) s->z.next_in; s->next_out = s->z.next_out; s->avail_in -= bytes_consumed; s->avail_out -= bytes_produced;
The `struct git_zstream::next_in` variable points to the input data and is used in combination with `struct z_stream::next_in`. While that latter field is not marked as a constant in zlib, it is marked as such in zlib-ng. This causes a couple of compiler errors when we try to assign these fields to one another due to mismatching constness. Fix the issue by casting away the potential constness of `next_in`. Signed-off-by: Patrick Steinhardt <ps@pks.im> --- git-zlib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)