[Tarantool-patches] [PATCH v2 1/2] Refactor decNumberFromString

Chris Sosnin k.sosnin at tarantool.org
Thu Jun 25 17:21:43 MSK 2020


Hi! Thank you for the review!

> On 25 Jun 2020, at 01:22, Vladislav Shpilevoy <v.shpilevoy at tarantool.org> wrote:
> 
> Hi! Thanks for the patch!
> 
> Technically looks fine, although I didn't test it except for
> the tests we already have. You probably should create a patchset
> for the main repository with decnumber version bump + decimal.h
> API update + unit tests in unit/decimal.c. Before this commit
> is merged, so as you could fix any potential errors.

Done. I will send it as a separate patchset. Bumped decNumber library is with fixed codestyle.

> 
>> diff --git a/decNumber.c b/decNumber.c
>> index 85deb13..e248656 100644
>> --- a/decNumber.c
>> +++ b/decNumber.c
>> @@ -545,7 +545,7 @@ char * decNumberToEngString(const decNumber *dn, char *string){
>> /*                                                                    */
>> /* If bad syntax is detected, the result will be a quiet NaN.         */
>> /* ------------------------------------------------------------------ */
>> -decNumber * decNumberFromString(decNumber *dn, const char chars[],
>> +const char * decNumberFromString(decNumber *dn, const char chars[],
>>                                 decContext *set) {
> 
> 1. The code style is absolutely dead, but it is consistently dead.
> Part of its consistency was the multi-line argument alignment, the
> same as in Tarantool. Here the second line should be aligned under
> the first argument of the first line:
> 
>    const char * decNumberFromString(decNumber *dn, const char chars[],
>                                     decContext *set) {
> 
> Not like this:
> 
>    const char * decNumberFromString(decNumber *dn, const char chars[],
>                                    decContext *set) {

I agree, I forgot to update the indentation along with the type. Fixed on branch.

> 
>> diff --git a/decNumber.h b/decNumber.h
>> index 85a3f3f..ffaa3d8 100644
>> --- a/decNumber.h
>> +++ b/decNumber.h
>> @@ -101,19 +101,19 @@
>>   /* decNumber public functions and macros                            */
>>   /* ---------------------------------------------------------------- */
>>   /* Conversions                                                      */
>> -  decNumber * decNumberFromInt32(decNumber *, int32_t);
>> -  decNumber * decNumberFromUInt32(decNumber *, uint32_t);
>> -  decNumber * decNumberFromInt64(decNumber *, int64_t);
>> -  decNumber * decNumberFromUInt64(decNumber *, uint64_t);
>> -  decNumber * decNumberFromString(decNumber *, const char *, decContext *);
>> -  char      * decNumberToString(const decNumber *, char *);
>> -  char      * decNumberToEngString(const decNumber *, char *);
>> -  uint32_t    decNumberToUInt32(const decNumber *, decContext *);
>> -  uint64_t    decNumberToUInt64(const decNumber *, decContext *);
>> -  int32_t     decNumberToInt32(const decNumber *, decContext *);
>> -  int64_t     decNumberToInt64(const decNumber *, decContext *);
>> -  uint8_t   * decNumberGetBCD(const decNumber *, uint8_t *);
>> -  decNumber * decNumberSetBCD(decNumber *, const uint8_t *, uint32_t);
>> +  decNumber  * decNumberFromInt32(decNumber *, int32_t);
>> +  decNumber  * decNumberFromUInt32(decNumber *, uint32_t);
>> +  decNumber  * decNumberFromInt64(decNumber *, int64_t);
>> +  decNumber  * decNumberFromUInt64(decNumber *, uint64_t);
>> +  const char * decNumberFromString(decNumber *, const char *, decContext *);
>> +  char       * decNumberToString(const decNumber *, char *);
>> +  char       * decNumberToEngString(const decNumber *, char *);
>> +  uint32_t     decNumberToUInt32(const decNumber *, decContext *);
>> +  uint64_t     decNumberToUInt64(const decNumber *, decContext *);
>> +  int32_t      decNumberToInt32(const decNumber *, decContext *);
>> +  int64_t      decNumberToInt64(const decNumber *, decContext *);
>> +  uint8_t    * decNumberGetBCD(const decNumber *, uint8_t *);
>> +  decNumber  * decNumberSetBCD(decNumber *, const uint8_t *, uint32_t);
> 
> 2. Lets not do so many changes. I think it is ok to break
> the alignment in one line. Or you can wrap function name on
> a next line, if you want.
> 
> So as it would be
> 
>    decNumber * decNumberFromUInt64(decNumber *, uint64_t);
>    const char *
>                decNumberFromString(decNumber *, const char *, decContext *);
>    char      * decNumberToString(const decNumber *, char *);
> 
> Or break the alignment:
> 
>    decNumber * decNumberFromUInt64(decNumber *, uint64_t);
>    const char * decNumberFromString(decNumber *, const char *, decContext *);
>    char      * decNumberToString(const decNumber *, char *);
> 
> But I really don't like when alignment causes so many changes.

I removed the extra spaces for other lines on the branch.



More information about the Tarantool-patches mailing list