Patch commit d9f85373e3 by moving the float_to_double function to

a header file.
This commit is contained in:
Keyur Govande 2015-01-07 21:13:57 +00:00
parent b34f8ef599
commit 4c6918ec17
6 changed files with 15 additions and 46 deletions

View File

@ -33,7 +33,7 @@
#include "ext/standard/php_smart_str.h"
#include "php_mysqli_structs.h"
#include "mysqli_priv.h"
#include "ext/standard/float_to_double.h"
#include "ext/mysqlnd/mysql_float_to_double.h"
#if !defined(MYSQLI_USE_MYSQLND)
@ -1070,7 +1070,7 @@ void mysqli_stmt_fetch_libmysql(INTERNAL_FUNCTION_PARAMETERS)
#ifndef NOT_FIXED_DEC
# define NOT_FIXED_DEC 31
#endif
dval = float_to_double(*(float *)stmt->result.buf[i].val,
dval = mysql_float_to_double(*(float *)stmt->result.buf[i].val,
(stmt->stmt->fields[i].decimals >= NOT_FIXED_DEC) ? -1 :
stmt->stmt->fields[i].decimals);
} else {

View File

@ -16,11 +16,14 @@
+----------------------------------------------------------------------+
*/
#ifndef MYSQL_FLOAT_TO_DOUBLE_H
#define MYSQL_FLOAT_TO_DOUBLE_H
#include "main/php.h"
#include <float.h>
#include "float_to_double.h"
#include "main/snprintf.h"
#define MAX_BUF_LEN 255
#define MAX_CHAR_BUF_LEN 255
#ifndef FLT_DIG
# define FLT_DIG 6
@ -33,8 +36,8 @@
* is less than zero, then a gcvt(3) like logic is used with the significant
* digits set to FLT_DIG i.e. 6.
*/
double float_to_double(float fp4, int decimals) {
char num_buf[MAX_BUF_LEN]; /* Over allocated */
static inline double mysql_float_to_double(float fp4, int decimals) {
char num_buf[MAX_CHAR_BUF_LEN]; /* Over allocated */
if (decimals < 0) {
php_gcvt(fp4, FLT_DIG, '.', 'e', num_buf);
@ -53,3 +56,5 @@ double float_to_double(float fp4, int decimals) {
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/
#endif /* MYSQL_FLOAT_TO_DOUBLE_H */

View File

@ -24,7 +24,7 @@
#include "mysqlnd_wireprotocol.h"
#include "mysqlnd_priv.h"
#include "mysqlnd_debug.h"
#include "ext/standard/float_to_double.h"
#include "ext/mysqlnd/mysql_float_to_double.h"
#define MYSQLND_SILENT
@ -186,7 +186,7 @@ ps_fetch_float(zval * zv, const MYSQLND_FIELD * const field, unsigned int pack_l
# define NOT_FIXED_DEC 31
#endif
dval = float_to_double(fval, (field->decimals >= NOT_FIXED_DEC) ? -1 : field->decimals);
dval = mysql_float_to_double(fval, (field->decimals >= NOT_FIXED_DEC) ? -1 : field->decimals);
ZVAL_DOUBLE(zv, dval);
DBG_VOID_RETURN;

View File

@ -603,8 +603,7 @@ PHP_NEW_EXTENSION(standard, array.c base64.c basic_functions.c browscap.c crc32.
incomplete_class.c url_scanner_ex.c ftp_fopen_wrapper.c \
http_fopen_wrapper.c php_fopen_wrapper.c credits.c css.c \
var_unserializer.c ftok.c sha1.c user_filters.c uuencode.c \
filters.c proc_open.c streamsfuncs.c http.c password.c \
float_to_double.c)
filters.c proc_open.c streamsfuncs.c http.c password.c)
PHP_ADD_MAKEFILE_FRAGMENT
PHP_INSTALL_HEADERS([ext/standard/])

View File

@ -20,7 +20,7 @@ EXTENSION("standard", "array.c base64.c basic_functions.c browscap.c \
url_scanner_ex.c ftp_fopen_wrapper.c http_fopen_wrapper.c \
php_fopen_wrapper.c credits.c css.c var_unserializer.c ftok.c sha1.c \
user_filters.c uuencode.c filters.c proc_open.c password.c \
streamsfuncs.c http.c flock_compat.c float_to_double.c", false /* never shared */);
streamsfuncs.c http.c flock_compat.c", false /* never shared */);
PHP_INSTALL_HEADERS("", "ext/standard");
if (PHP_MBREGEX != "no") {
CHECK_HEADER_ADD_INCLUDE("oniguruma.h", "CFLAGS_STANDARD", PHP_MBREGEX + ";ext\\mbstring\\oniguruma")

View File

@ -1,35 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 2006-2014 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Keyur Govande <kgovande@gmail.com> |
+----------------------------------------------------------------------+
*/
#ifndef FLOAT_TO_DOUBLE_H
#define FLOAT_TO_DOUBLE_H
#include "main/php.h"
PHPAPI double float_to_double(float fp4, int decimals);
#endif /* FLOAT_TO_DOUBLE_H */
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* End:
* vim600: noet sw=4 ts=4 fdm=marker
* vim<600: noet sw=4 ts=4
*/