Hi Sergei,

thanks for your review.

On Wed, Feb 04, 2015 at 12:38:04PM +0100, Sergei Golubchik wrote:
> > MDEV-7499 - System variables have broken default values on big endian
...skip...

> > +    case PLUGIN_VAR_LONGLONG:
> > +    case PLUGIN_VAR_SET:
> > +    case PLUGIN_VAR_DOUBLE:
> > +      return (uchar*) &option.def_value;
> 
> PLUGIN_VAR_LONGLONG and PLUGIN_VAR_SET - ok, but for PLUGIN_VAR_DOUBLE
> I'd either copy it to thd->sys_var_tmp too or add an assert, like this
> 
>     case PLUGIN_VAR_DOUBLE:
>       compile_time_assert(sizeof(double) == sizeof(option.def_value));
>       /* fall through */
>     case PLUGIN_VAR_LONGLONG:
>     case PLUGIN_VAR_SET:
>       return (uchar*) &option.def_value;
> 
> More for documentation purposes than for protection agains a wrong
> sizeof(double). It explains why you don't copy the value.
I did copy to thd->sys_var_tmp initially, but it returned scrambled value.
But now I see that there is getopt_ulonglong2double(), which may do the trick.
I'll try it. If it won't work I'll add an assertion.

Thanks,
Sergey

_______________________________________________
Mailing list: https://launchpad.net/~maria-developers
Post to     : maria-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~maria-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to