On Tue, 2017-08-15 at 10:06 +0200, Aleksander Morgado wrote: > The methods that convert from a gunichar to a specific encoding may > update the output 'clen' value unconditionally, regardless of whether > the conversion is going to be successful or not. Avoid that by > updating the length only if the conversion was successful. > --- > > Hey, > > Looks like we're updating the length unconditionally, even if the > char conversion fails. This didn't have any implication in the logic > because it looks like all the callers of this method just ignore the > returned length (they're interested in the number of unsupported > chars returned by reference). > > Maybe we should just update the method instead to return the number > of unsupported chars instead and ignore the output length in the > target encoding?
Yeah, let's just change the function name to something like mm_charset_can_convert_to() and just make it return a boolean, since none of the two callers actually use the 'len' return value. Then we can exit early if there are any unsupported characters too. Dan > --- > src/mm-charsets.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/src/mm-charsets.c b/src/mm-charsets.c > index fb47b0ae..5cfb172e 100644 > --- a/src/mm-charsets.c > +++ b/src/mm-charsets.c > @@ -627,7 +627,8 @@ mm_charset_get_encoded_len (const char *utf8, > > if (!e->func (c, p, (end - p), &clen)) > unsupported++; > - len += clen; > + else > + len += clen; > p = end; > } > > -- > 2.13.3 > _______________________________________________ > ModemManager-devel mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel _______________________________________________ ModemManager-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel
