Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:81149 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 43603 invoked from network); 26 Jan 2015 00:43:32 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 26 Jan 2015 00:43:32 -0000 Authentication-Results: pb1.pair.com header.from=smalyshev@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=smalyshev@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.192.179 as permitted sender) X-PHP-List-Original-Sender: smalyshev@gmail.com X-Host-Fingerprint: 209.85.192.179 mail-pd0-f179.google.com Received: from [209.85.192.179] ([209.85.192.179:52057] helo=mail-pd0-f179.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 36/11-35917-3BD85C45 for ; Sun, 25 Jan 2015 19:43:32 -0500 Received: by mail-pd0-f179.google.com with SMTP id v10so8807490pde.10 for ; Sun, 25 Jan 2015 16:43:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=5Gmu81B9PVxSs6pR3rbWP/i4zZVcpS2izd+lByTF79k=; b=CYjfOvKV2hqbpIzSSW7J9IaL94BErmv6OKIVK1FYlfLFU1XUZ2f+6R/vbn1OFhs0hG NhvsihMyoNXhakoYcLFQZJgHPKlVrBRkWn2EdrMd9Ap6nHVjMawAwB53JxVNakn9kk79 J5SpbCMrAx/kQRXKyBPcLOUXV2Bri7U4Kene/4j70BYdrVEGtdNTdPcoxupjseF7dVsq upx3Ij36BgzZVrO2Sj8cLm4VJeeXHLsqXJAV1ETF5OdDSUYWJlfH/EoJLyRrABi8C0oE V90p6BUvJnenj6GCNLJJtxoOQgmkhjzR9axBs0VFdOzEjIyoyx5l/VrmMGXSzGHDR4dt xTaQ== X-Received: by 10.69.20.74 with SMTP id ha10mr30248589pbd.10.1422233008211; Sun, 25 Jan 2015 16:43:28 -0800 (PST) Received: from [192.168.2.145] (108-66-6-48.lightspeed.sntcca.sbcglobal.net. [108.66.6.48]) by mx.google.com with ESMTPSA id z3sm8259934pdp.17.2015.01.25.16.43.27 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 25 Jan 2015 16:43:27 -0800 (PST) Message-ID: <54C58DAE.2010402@gmail.com> Date: Sun, 25 Jan 2015 16:43:26 -0800 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.3.0 MIME-Version: 1.0 To: PHP Internals Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: PDO & size_t From: smalyshev@gmail.com (Stanislav Malyshev) Hi! With recent moving of string lengths to size_t, it looks like PDO APIs weren't updated. I.e.: typedef int (*pdo_stmt_get_col_data_func)(pdo_stmt_t *stmt, int colno, char **ptr, zend_ulong *len, int *caller_frees); This looks like len should be size_t, and in fact fetch_value() in pdo_stmt.c sends size_t parameter there, but since I'm not very familiar with PDO internals, I'd like to double check - is it an omission and will anything break if I change it to size_t? There are also other things, like: const char *driver_name; zend_ulong driver_name_len; typedef int (*pdo_dbh_prepare_func)(pdo_dbh_t *dbh, const char *sql, zend_long sql_len, pdo_stmt_t *stmt, zval *driver_options); typedef zend_long (*pdo_dbh_do_func)(pdo_dbh_t *dbh, const char *sql, zend_long sql_len); typedef int (*pdo_dbh_quote_func)(pdo_dbh_t *dbh, const char *unquoted, int unquotedlen, char **quoted, int *quotedlen, enum pdo_param_type paramtype); As you can see, sometimes length is an int, sometimes zend_long, sometimes zend_ulong. This looks like it needs some cleanup. -- Stas Malyshev smalyshev@gmail.com