|
|
066c28a |
From f84c910a305a8dbae3a4d8548764b0603819e05f Mon Sep 17 00:00:00 2001
|
|
|
066c28a |
From: Remi Collet <remi@fedoraproject.org>
|
|
|
066c28a |
Date: Wed, 16 Nov 2016 07:41:19 +0100
|
|
|
066c28a |
Subject: [PATCH 2/2] fix PHP 5/7 compatibility
|
|
|
066c28a |
|
|
|
066c28a |
---
|
|
|
066c28a |
php/libpuzzle/libpuzzle.c | 40 +++++++++++++++++++++++++---------------
|
|
|
066c28a |
1 file changed, 25 insertions(+), 15 deletions(-)
|
|
|
066c28a |
|
|
|
066c28a |
diff --git a/php/libpuzzle/libpuzzle.c b/php/libpuzzle/libpuzzle.c
|
|
|
066c28a |
index 82e84c3..f69ee4a 100644
|
|
|
066c28a |
--- a/php/libpuzzle/libpuzzle.c
|
|
|
066c28a |
+++ b/php/libpuzzle/libpuzzle.c
|
|
|
066c28a |
@@ -8,6 +8,16 @@
|
|
|
066c28a |
#include <puzzle.h>
|
|
|
066c28a |
#include "php_libpuzzle.h"
|
|
|
066c28a |
|
|
|
066c28a |
+/* Compatibility layer */
|
|
|
066c28a |
+#if PHP_MAJOR_VERSION < 7
|
|
|
066c28a |
+#define RV_STRINGL(s,l) RETVAL_STRINGL(s, l, 1);
|
|
|
066c28a |
+typedef int strsize_t;
|
|
|
066c28a |
+typedef long zend_long;
|
|
|
066c28a |
+#else
|
|
|
066c28a |
+#define RV_STRINGL(s,l) RETVAL_STRINGL(s, l);
|
|
|
066c28a |
+typedef size_t strsize_t;
|
|
|
066c28a |
+#endif
|
|
|
066c28a |
+
|
|
|
066c28a |
ZEND_DECLARE_MODULE_GLOBALS(libpuzzle)
|
|
|
066c28a |
|
|
|
066c28a |
/* True global resources - no need for thread safety here */
|
|
|
066c28a |
@@ -122,7 +132,7 @@ PHP_MINFO_FUNCTION(libpuzzle)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_fill_cvec_from_file)
|
|
|
066c28a |
{
|
|
|
066c28a |
char *arg = NULL;
|
|
|
066c28a |
- int arg_len;
|
|
|
066c28a |
+ strsize_t arg_len;
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
PuzzleCvec cvec;
|
|
|
066c28a |
|
|
|
066c28a |
@@ -137,7 +147,7 @@ PHP_FUNCTION(puzzle_fill_cvec_from_file)
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
RETURN_FALSE;
|
|
|
066c28a |
}
|
|
|
066c28a |
- RETVAL_STRINGL(cvec.vec, cvec.sizeof_vec, 1);
|
|
|
066c28a |
+ RV_STRINGL((char *)cvec.vec, cvec.sizeof_vec);
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
}
|
|
|
066c28a |
/* }}} */
|
|
|
066c28a |
@@ -147,7 +157,7 @@ PHP_FUNCTION(puzzle_fill_cvec_from_file)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_compress_cvec)
|
|
|
066c28a |
{
|
|
|
066c28a |
char *arg = NULL;
|
|
|
066c28a |
- int arg_len;
|
|
|
066c28a |
+ strsize_t arg_len;
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
PuzzleCompressedCvec compressed_cvec;
|
|
|
066c28a |
PuzzleCvec cvec;
|
|
|
066c28a |
@@ -160,7 +170,7 @@ PHP_FUNCTION(puzzle_compress_cvec)
|
|
|
066c28a |
}
|
|
|
066c28a |
puzzle_init_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
puzzle_init_cvec(context, &cvec);
|
|
|
066c28a |
- cvec.vec = arg;
|
|
|
066c28a |
+ cvec.vec = (signed char *)arg;
|
|
|
066c28a |
cvec.sizeof_vec = (size_t) arg_len;
|
|
|
066c28a |
if (puzzle_compress_cvec(context, &compressed_cvec, &cvec) != 0) {
|
|
|
066c28a |
puzzle_free_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
@@ -168,8 +178,8 @@ PHP_FUNCTION(puzzle_compress_cvec)
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
RETURN_FALSE;
|
|
|
066c28a |
}
|
|
|
066c28a |
- RETVAL_STRINGL(compressed_cvec.vec,
|
|
|
066c28a |
- compressed_cvec.sizeof_compressed_vec, 1);
|
|
|
066c28a |
+ RV_STRINGL((char *)compressed_cvec.vec,
|
|
|
066c28a |
+ compressed_cvec.sizeof_compressed_vec);
|
|
|
066c28a |
puzzle_free_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
cvec.vec = NULL;
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
@@ -181,7 +191,7 @@ PHP_FUNCTION(puzzle_compress_cvec)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_uncompress_cvec)
|
|
|
066c28a |
{
|
|
|
066c28a |
char *arg = NULL;
|
|
|
066c28a |
- int arg_len;
|
|
|
066c28a |
+ strsize_t arg_len;
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
PuzzleCompressedCvec compressed_cvec;
|
|
|
066c28a |
PuzzleCvec cvec;
|
|
|
066c28a |
@@ -194,7 +204,7 @@ PHP_FUNCTION(puzzle_uncompress_cvec)
|
|
|
066c28a |
}
|
|
|
066c28a |
puzzle_init_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
puzzle_init_cvec(context, &cvec);
|
|
|
066c28a |
- compressed_cvec.vec = arg;
|
|
|
066c28a |
+ compressed_cvec.vec = (unsigned char *)arg;
|
|
|
066c28a |
compressed_cvec.sizeof_compressed_vec = (size_t) arg_len;
|
|
|
066c28a |
if (puzzle_uncompress_cvec(context, &compressed_cvec, &cvec) != 0) {
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
@@ -202,7 +212,7 @@ PHP_FUNCTION(puzzle_uncompress_cvec)
|
|
|
066c28a |
puzzle_free_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
RETURN_FALSE;
|
|
|
066c28a |
}
|
|
|
066c28a |
- RETVAL_STRINGL(cvec.vec, cvec.sizeof_vec, 1);
|
|
|
066c28a |
+ RV_STRINGL((char *)cvec.vec, cvec.sizeof_vec);
|
|
|
066c28a |
puzzle_free_cvec(context, &cvec);
|
|
|
066c28a |
compressed_cvec.vec = NULL;
|
|
|
066c28a |
puzzle_free_compressed_cvec(context, &compressed_cvec);
|
|
|
066c28a |
@@ -214,7 +224,7 @@ PHP_FUNCTION(puzzle_uncompress_cvec)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_vector_normalized_distance)
|
|
|
066c28a |
{
|
|
|
066c28a |
char *vec1 = NULL, *vec2 = NULL;
|
|
|
066c28a |
- int vec1_len, vec2_len;
|
|
|
066c28a |
+ strsize_t vec1_len, vec2_len;
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
PuzzleCvec cvec1, cvec2;
|
|
|
066c28a |
double d;
|
|
|
066c28a |
@@ -232,9 +242,9 @@ PHP_FUNCTION(puzzle_vector_normalized_distance)
|
|
|
066c28a |
}
|
|
|
066c28a |
puzzle_init_cvec(context, &cvec1);
|
|
|
066c28a |
puzzle_init_cvec(context, &cvec2);
|
|
|
066c28a |
- cvec1.vec = vec1;
|
|
|
066c28a |
+ cvec1.vec = (signed char *)vec1;
|
|
|
066c28a |
cvec1.sizeof_vec = (size_t) vec1_len;
|
|
|
066c28a |
- cvec2.vec = vec2;
|
|
|
066c28a |
+ cvec2.vec = (signed char *)vec2;
|
|
|
066c28a |
cvec2.sizeof_vec = (size_t) vec2_len;
|
|
|
066c28a |
d = puzzle_vector_normalized_distance(context, &cvec1, &cvec2,
|
|
|
066c28a |
(int) fix_for_texts);
|
|
|
066c28a |
@@ -250,7 +260,7 @@ PHP_FUNCTION(puzzle_vector_normalized_distance)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_set_max_width)
|
|
|
066c28a |
{
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
- long width;
|
|
|
066c28a |
+ zend_long width;
|
|
|
066c28a |
|
|
|
066c28a |
context = &LIBPUZZLE_G(global_context);
|
|
|
066c28a |
if (zend_parse_parameters
|
|
|
066c28a |
@@ -270,7 +280,7 @@ PHP_FUNCTION(puzzle_set_max_width)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_set_max_height)
|
|
|
066c28a |
{
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
- long height;
|
|
|
066c28a |
+ zend_long height;
|
|
|
066c28a |
|
|
|
066c28a |
context = &LIBPUZZLE_G(global_context);
|
|
|
066c28a |
if (zend_parse_parameters
|
|
|
066c28a |
@@ -290,7 +300,7 @@ PHP_FUNCTION(puzzle_set_max_height)
|
|
|
066c28a |
PHP_FUNCTION(puzzle_set_lambdas)
|
|
|
066c28a |
{
|
|
|
066c28a |
PuzzleContext *context;
|
|
|
066c28a |
- long lambdas;
|
|
|
066c28a |
+ zend_long lambdas;
|
|
|
066c28a |
|
|
|
066c28a |
context = &LIBPUZZLE_G(global_context);
|
|
|
066c28a |
if (zend_parse_parameters
|
|
|
066c28a |
--
|
|
|
066c28a |
2.9.3
|
|
|
066c28a |
|