diff options
author | Alex Dupre <ale@FreeBSD.org> | 2008-01-29 10:14:37 +0000 |
---|---|---|
committer | Alex Dupre <ale@FreeBSD.org> | 2008-01-29 10:14:37 +0000 |
commit | 28a4f1ef3cc390ec7a5f7355da2dbdbd89eb13c4 (patch) | |
tree | 87b1464a8ef5a609ce13b15e8093bbb02222286a /databases/php5-pgsql | |
parent | e8e3ab4cd12fb518520c8e44b984db7bdc54cdc0 (diff) | |
download | ports-28a4f1ef3cc390ec7a5f7355da2dbdbd89eb13c4.tar.gz ports-28a4f1ef3cc390ec7a5f7355da2dbdbd89eb13c4.zip |
Notes
Diffstat (limited to 'databases/php5-pgsql')
-rw-r--r-- | databases/php5-pgsql/files/patch-pgsql.c | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/databases/php5-pgsql/files/patch-pgsql.c b/databases/php5-pgsql/files/patch-pgsql.c new file mode 100644 index 000000000000..ecc1fdd2f193 --- /dev/null +++ b/databases/php5-pgsql/files/patch-pgsql.c @@ -0,0 +1,100 @@ +--- pgsql.c.orig 2007-10-04 01:31:58.000000000 +0200 ++++ pgsql.c 2008-01-29 11:10:15.000000000 +0100 +@@ -62,6 +62,7 @@ + #define PGSQL_MAX_LENGTH_OF_LONG 30 + #define PGSQL_MAX_LENGTH_OF_DOUBLE 60 + ++#if UINT_MAX > LONG_MAX + #define PGSQL_RETURN_OID(oid) do { \ + if (oid > LONG_MAX) { \ + smart_str s = {0}; \ +@@ -71,7 +72,9 @@ + } \ + RETURN_LONG((long)oid); \ + } while(0) +- ++#else ++#define PGSQL_RETURN_OID(oid) RETURN_LONG((long)oid) ++#endif + + #if HAVE_PQSETNONBLOCKING + #define PQ_SETNONBLOCKING(pg_link, flag) PQsetnonblocking(pg_link, flag) +@@ -272,7 +275,7 @@ + static int le_link, le_plink, le_result, le_lofp, le_string; + + /* {{{ _php_pgsql_trim_message */ +-static char * _php_pgsql_trim_message(const char *message, int *len) ++static char * _php_pgsql_trim_message(const char *message, size_t *len) + { + register int i = strlen(message)-1; + +@@ -363,7 +366,7 @@ + if (PGG(log_notices)) { + php_error_docref(NULL TSRMLS_CC, E_NOTICE, "%s", notice->message); + } +- zend_hash_index_update(&PGG(notices), (int)resource_id, (void **)¬ice, sizeof(php_pgsql_notice *), NULL); ++ zend_hash_index_update(&PGG(notices), (ulong)resource_id, (void **)¬ice, sizeof(php_pgsql_notice *), NULL); + } + } + /* }}} */ +@@ -761,13 +764,14 @@ + */ + if (!(connect_type & PGSQL_CONNECT_FORCE_NEW) + && zend_hash_find(&EG(regular_list),str.c,str.len+1,(void **) &index_ptr)==SUCCESS) { +- int type,link; ++ int type; ++ ulong link; + void *ptr; + + if (Z_TYPE_P(index_ptr) != le_index_ptr) { + RETURN_FALSE; + } +- link = (int) index_ptr->ptr; ++ link = (uintptr_t /* ulong is as wide or wider than pointer */) index_ptr->ptr; + ptr = zend_list_find(link,&type); /* check if the link is still there */ + if (ptr && (type==le_link || type==le_plink)) { + Z_LVAL_P(return_value) = link; +@@ -1748,12 +1752,15 @@ + + + if (return_oid) { ++#if UINT_MAX > LONG_MAX /* Oid is unsigned int, we don't need this code, where LONG is wider */ + if (oid > LONG_MAX) { + smart_str oidstr = {0}; + smart_str_append_unsigned(&oidstr, oid); + smart_str_0(&oidstr); + RETURN_STRINGL(oidstr.c, oidstr.len, 0); +- } else { ++ } else ++#endif ++ { + RETURN_LONG((long)oid); + } + } +@@ -1854,6 +1861,7 @@ + + oid = PQftype(pgsql_result, Z_LVAL_PP(field)); + ++#if UINT_MAX > LONG_MAX + if (oid > LONG_MAX) { + smart_str s = {0}; + smart_str_append_unsigned(&s, oid); +@@ -1863,6 +1871,7 @@ + Z_TYPE_P(return_value) = IS_STRING; + } + else ++#endif + { + Z_LVAL_P(return_value) = (long)oid; + Z_TYPE_P(return_value) = IS_LONG; +@@ -5741,8 +5750,8 @@ + { + zval *row; + char *field_name, *element, *data; +- size_t num_fields, element_len, data_len; +- int pg_numrows, pg_row; ++ size_t num_fields, element_len; ++ int pg_numrows, pg_row, data_len; + uint i; + assert(Z_TYPE_P(ret_array) == IS_ARRAY); + |