From nobody Wed Feb 11 01:27:07 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zoho.com; dkim=fail spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1498159255996222.46044077425097; Thu, 22 Jun 2017 12:20:55 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 526EE14287F; Thu, 22 Jun 2017 19:20:54 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.20]) by smtp.corp.redhat.com (Postfix) with ESMTPS id B4C6568D80; Thu, 22 Jun 2017 19:20:53 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id AFA181804753; Thu, 22 Jun 2017 19:20:52 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id v5MJEGds013768 for ; Thu, 22 Jun 2017 15:14:16 -0400 Received: by smtp.corp.redhat.com (Postfix) id B620A1883B; Thu, 22 Jun 2017 19:14:16 +0000 (UTC) Received: from mx1.redhat.com (ext-mx08.extmail.prod.ext.phx2.redhat.com [10.5.110.32]) by smtp.corp.redhat.com (Postfix) with ESMTPS id ADE886EE2C for ; Thu, 22 Jun 2017 19:14:13 +0000 (UTC) Received: from mail-qk0-f173.google.com (mail-qk0-f173.google.com [209.85.220.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 56EB8C0587D8 for ; Thu, 22 Jun 2017 19:14:12 +0000 (UTC) Received: by mail-qk0-f173.google.com with SMTP id d14so19993078qkb.1 for ; Thu, 22 Jun 2017 12:14:12 -0700 (PDT) Received: from dawid-fedora.datto.lan ([47.19.105.250]) by smtp.gmail.com with ESMTPSA id g39sm1837145qtc.12.2017.06.22.12.14.11 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 22 Jun 2017 12:14:11 -0700 (PDT) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 526EE14287F Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=datto.com Authentication-Results: ext-mx10.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=libvir-list-bounces@redhat.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 526EE14287F Authentication-Results: mx1.redhat.com; dkim=fail reason="signature verification failed" (2048-bit key) header.d=datto-com.20150623.gappssmtp.com header.i=@datto-com.20150623.gappssmtp.com header.b="XdJCm5er" DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 56EB8C0587D8 Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=datto.com Authentication-Results: ext-mx08.extmail.prod.ext.phx2.redhat.com; spf=pass smtp.mailfrom=dzamirski@datto.com DKIM-Filter: OpenDKIM Filter v2.11.0 mx1.redhat.com 56EB8C0587D8 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=datto-com.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id:in-reply-to:references; bh=H3AxBCMnUpVRW4Aasn+abgGuCHWvaWTxmF2FUPK3nhE=; b=XdJCm5erUUnZQnTho5RbxoqG7cBP7h/om8OgP86ia8R1SZkwIfy67j/0al3S6b1Pf4 xL7woTcU5Rl5/jQLIq1EaYNlJMO9dgthCnIkiUd9ygeiu/yYtsmHdElpH/BIyDmW3sY1 g7J74PL/poHv/oPM3Nm9Bt+tvY9aSgdCY5OeI6bvZyr+sgv7YpJFR71/ncESvO/mitEI 0yCZEMB7HYtU3B+p04C9MnrU+X/aMfjw9YBs2w2eKBnfYbWM5lxzEMA14f58mYd2Kdjr phdNA4vcoBn2rtoLCWbgeBHcdU1I/pThauzd6bO3MpzXn6yyYLUKdtE9cd8yIl7P9zk4 OjRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=H3AxBCMnUpVRW4Aasn+abgGuCHWvaWTxmF2FUPK3nhE=; b=c0vgF+tWn04AKF+O7O9kQwJ9p87f20pe//Xk6K52UqqGriz2zPTLNbNEM0E+J7Knm5 uWOCLoCUb6r12NZou6ZKxONQNiCSYf9bjLnuwU9XkEM2lrVCz/aM1hpIIWpRdKJWd3qg 02OWhVfYR9Od0ADmUCN0cxrMkC3gaZa9Z5A4GsxpCkfeOWs5hvTGXsYeI/B3WpIX/rhP kD7xeLm3fXvK2ogVhja1oZBVUz2H0lhZTfjgU9cE4OT35fgle/boJIrUSOkxZHzvVzKe vHaL32GkOyqRJCzc85M4AWBnQCywNxZ11pVCVJJ3gLthBV7X4aDI/SI8GSKRKxpImyqS UZSw== X-Gm-Message-State: AKS2vOwrk3C6q9lrviDtmtlLZWQkZBS8MiApeMSb1vD+I02rKDfG/W10 NuE2RWOTxTW3ET5mh4ouJw== X-Received: by 10.55.151.69 with SMTP id z66mr4958263qkd.90.1498158851415; Thu, 22 Jun 2017 12:14:11 -0700 (PDT) From: Dawid Zamirski To: libvir-list@redhat.com Date: Thu, 22 Jun 2017 15:14:05 -0400 Message-Id: <20170622191407.15570-6-dzamirski@datto.com> In-Reply-To: <20170622191407.15570-1-dzamirski@datto.com> References: <20170622191407.15570-1-dzamirski@datto.com> X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Thu, 22 Jun 2017 19:14:12 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.32]); Thu, 22 Jun 2017 19:14:12 +0000 (UTC) for IP:'209.85.220.173' DOMAIN:'mail-qk0-f173.google.com' HELO:'mail-qk0-f173.google.com' FROM:'dzamirski@datto.com' RCPT:'' X-RedHat-Spam-Score: 0.369 (BAYES_50, DCC_REPUT_00_12, DKIM_SIGNED, DKIM_VALID, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_PASS) 209.85.220.173 mail-qk0-f173.google.com 209.85.220.173 mail-qk0-f173.google.com X-Scanned-By: MIMEDefang 2.78 on 10.5.110.32 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-loop: libvir-list@redhat.com Subject: [libvirt] [libvirt-php PATCH 5/7] add and use VIRT_ARRAY_INIT macro X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Thu, 22 Jun 2017 19:20:55 +0000 (UTC) X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZohoMail: RDKM_2 RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" This macro handles differences in array initialization between PHP7 and older. --- src/libvirt-php.c | 96 ++++++++-------------------------------------------= ---- src/libvirt-php.h | 11 +++++++ 2 files changed, 24 insertions(+), 83 deletions(-) diff --git a/src/libvirt-php.c b/src/libvirt-php.c index 89b17bb..7784450 100644 --- a/src/libvirt-php.c +++ b/src/libvirt-php.c @@ -2265,11 +2265,8 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats) =20 array_init(return_value); for (i =3D 0; i < 2; i++) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr, zarr; -#else zval *arr; -#endif + if (i > 0) #ifdef EXTWIN Sleep(1000); @@ -2282,12 +2279,7 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats) RETURN_FALSE; } =20 -#if PHP_MAJOR_VERSION >=3D 7 - arr =3D &zarr; -#else - ALLOC_INIT_ZVAL(arr); -#endif - array_init(arr); + VIRT_ARRAY_INIT(arr); =20 for (j =3D 0; j < nparams; j++) { DPRINTF("%s: Field %s has value of %llu\n", __FUNCTION__, para= ms[j].field, params[j].value); @@ -2333,11 +2325,7 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats_for_each_cpu) int done =3D 0; int i, j, numCpus; time_t startTime =3D 0; -#if PHP_MAJOR_VERSION >=3D 7 - zval *time_array, ztime_array; -#else zval *time_array; -#endif =20 GET_CONNECTION_FROM_ARGS("r|l", &zconn, &avg); =20 @@ -2366,33 +2354,18 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats_for_each_cp= u) iter =3D 0; done =3D 0; while (!done) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr, zarr; - arr =3D &zarr; -#else zval *arr; - ALLOC_INIT_ZVAL(arr); -#endif + VIRT_ARRAY_INIT(arr); =20 - array_init(arr); for (i =3D 0; i < numCpus; i++) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr2, zarr2; -#else zval *arr2; -#endif =20 if (virNodeGetCPUStats(conn->conn, i, params, &nparams, 0) != =3D 0) { set_error("Unable to get node cpu stats" TSRMLS_CC); RETURN_FALSE; } =20 -#if PHP_MAJOR_VERSION >=3D 7 - arr2 =3D &zarr2; -#else - ALLOC_INIT_ZVAL(arr2); -#endif - array_init(arr2); + VIRT_ARRAY_INIT(arr2); =20 for (j =3D 0; j < nparams; j++) add_assoc_long(arr2, params[j].field, params[j].value); @@ -2416,13 +2389,7 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats_for_each_cpu) iter++; } =20 -#if PHP_MAJOR_VERSION >=3D 7 - time_array =3D &ztime_array; -#else - ALLOC_INIT_ZVAL(time_array); -#endif - array_init(time_array); - + VIRT_ARRAY_INIT(time_array); add_assoc_long(time_array, "start", startTime); add_assoc_long(time_array, "finish", time(NULL)); add_assoc_long(time_array, "duration", time(NULL) - startTime); @@ -2539,28 +2506,15 @@ PHP_FUNCTION(libvirt_connect_get_machine_types) snprintf(tmp, sizeof(tmp), "//capabilities/guest/arch[@name=3D= \"%s\"]/domain/@type", ret[i]); char **ret2 =3D get_array_from_xpath(caps, tmp, &num2); if (ret2 !=3D NULL) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr2, zarr2; - arr2 =3D &zarr2; -#else zval *arr2; - ALLOC_INIT_ZVAL(arr2); -#endif - array_init(arr2); + VIRT_ARRAY_INIT(arr2); =20 for (j =3D 0; j < num2; j++) { int num3, k; char tmp2[1024] =3D { 0 }; - - /* Common */ -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr3, zarr3; - arr3 =3D &zarr3; -#else zval *arr3; - ALLOC_INIT_ZVAL(arr3); -#endif - array_init(arr3); + + VIRT_ARRAY_INIT(arr3); =20 snprintf(tmp2, sizeof(tmp2), "//capabilities/guest/arc= h[@name=3D\"%s\"]/machine", ret[i]); @@ -2582,15 +2536,8 @@ PHP_FUNCTION(libvirt_connect_get_machine_types) if (numTmp =3D=3D NULL) { VIRT_ADD_ASSOC_STRING(arr2, key, ret3[k]); } else { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr4, zarr4; - arr4 =3D &zarr4; -#else zval *arr4; - ALLOC_INIT_ZVAL(arr4); -#endif - array_init(arr4); - + VIRT_ARRAY_INIT(arr4); VIRT_ADD_ASSOC_STRING(arr4, "name", ret3[k= ]); VIRT_ADD_ASSOC_STRING(arr4, "maxCpus", num= Tmp); =20 @@ -2622,14 +2569,8 @@ PHP_FUNCTION(libvirt_connect_get_machine_types) if (numTmp =3D=3D NULL) { VIRT_ADD_ASSOC_STRING(arr3, key, ret3[k]); } else { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr4, zarr4; - arr4 =3D &zarr4; -#else zval *arr4; - ALLOC_INIT_ZVAL(arr4); -#endif - array_init(arr4); + VIRT_ARRAY_INIT(arr4); =20 VIRT_ADD_ASSOC_STRING(arr4, "name", ret3[k= ]); VIRT_ADD_ASSOC_STRING(arr4, "maxCpus", num= Tmp); @@ -3007,14 +2948,9 @@ PHP_FUNCTION(libvirt_connect_get_all_domain_stats) RETURN_FALSE; =20 for (i =3D 0; i < retval; i++) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr2, zarr2; - arr2 =3D &zarr2; -#else zval *arr2; - ALLOC_INIT_ZVAL(arr2); -#endif - array_init(arr2); + VIRT_ARRAY_INIT(arr2); + for (j =3D 0; j < retstats[i]->nparams; j++) { params =3D retstats[i]->params[j]; switch (params.type) { @@ -5316,13 +5252,7 @@ PHP_FUNCTION(libvirt_connect_get_soundhw_models) continue; =20 if ((i > 0) && (flags & CONNECT_FLAG_SOUNDHW_GET_NAMES)) { -#if PHP_MAJOR_VERSION >=3D 7 - zval *arr, zarr; - arr =3D &zarr; -#else zval *arr; - ALLOC_INIT_ZVAL(arr); -#endif memset(desc, 0, sizeof(desc)); for (i =3D 1; i < t.numTokens; i++) { strcat(desc, t.tokens[i]); @@ -5330,7 +5260,7 @@ PHP_FUNCTION(libvirt_connect_get_soundhw_models) strcat(desc, " "); } =20 - array_init(arr); + VIRT_ARRAY_INIT(arr); VIRT_ADD_ASSOC_STRING(arr, "name", t.tokens[0]); VIRT_ADD_ASSOC_STRING(arr, "description", desc); add_next_index_zval(return_value, arr); diff --git a/src/libvirt-php.h b/src/libvirt-php.h index ed6a8bc..757c5f5 100644 --- a/src/libvirt-php.h +++ b/src/libvirt-php.h @@ -178,6 +178,12 @@ typedef virt_resource *virt_resource_handle; _info.length =3D ZSTR_LEN(tmp_key_info); \ } while(0) =20 +#define VIRT_ARRAY_INIT(_name) do { \ + zval z##_name; \ + _name =3D &z##_name; \ + array_init(_name); \ + } while(0) + #else /* PHP_MAJOR_VERSION < 7 */ typedef int strsize_t; typedef long zend_long; @@ -239,6 +245,11 @@ typedef long virt_resource_handle; _info.type =3D zend_hash_get_current_key_ex(_ht, &_info.name, &_info.l= ength, &_idx, 0, &_pos); \ } while(0) =20 +#define VIRT_ARRAY_INIT(_name) do {\ + ALLOC_INIT_ZVAL(_name); \ + array_init(_name); \ + } while(0) + #endif /* PHP_MAJOR_VERSION < 7 */ =20 typedef struct tTokenizer { --=20 2.13.0 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list