[libvirt] [libvirt-php PATCH 09/35] adapt add_assoc_string_ex

Neal Gompa ngompa13 at gmail.com
Fri Apr 8 22:08:18 UTC 2016


From: Remi Collet <fedora at famillecollet.com>

---
 src/libvirt-php.c | 299 ++++++++++++++++++------------------------------------
 1 file changed, 99 insertions(+), 200 deletions(-)

diff --git a/src/libvirt-php.c b/src/libvirt-php.c
index d37fd6f..0459bb9 100644
--- a/src/libvirt-php.c
+++ b/src/libvirt-php.c
@@ -58,6 +58,7 @@ const char *features_binaries[] = { NULL };
 #if PHP_MAJOR_VERSION >= 7
 typedef size_t strsize_t;
 
+#define VIRT_COPY_OPT
 #define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \
 	if ((_state = (_type)zend_fetch_resource(Z_RES_P(*_zval), _name, _le)) == NULL) { \
 		RETURN_FALSE; \
@@ -68,6 +69,8 @@ typedef int strsize_t;
 typedef long zend_long;
 typedef unsigned long zend_ulong;
 
+#define VIRT_COPY_OPT ,1
+
 #define VIRT_FETCH_RESOURCE(_state, _type, _zval, _name, _le) \
 	ZEND_FETCH_RESOURCE(_state, _type, _zval, -1, _name, _le);
 
@@ -1995,7 +1998,7 @@ if ((snapshot==NULL) || (snapshot->snapshot==NULL)) RETURN_FALSE;\
 #define LONGLONG_ASSOC(out,key,in) \
     if (LIBVIRT_G(longlong_to_string_ini)) { \
         snprintf(tmpnumber,63,"%llu",in); \
-        add_assoc_string_ex(out,key,strlen(key)+1,tmpnumber,1); \
+        add_assoc_string_ex(out,key,strlen(key)+1,tmpnumber VIRT_COPY_OPT); \
     } \
 else \
 { \
@@ -2059,11 +2062,7 @@ static int libvirt_virConnectCredType[] = {
 PHP_FUNCTION(libvirt_get_last_error)
 {
     if (LIBVIRT_G (last_error) == NULL) RETURN_NULL();
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(LIBVIRT_G (last_error));
-#else
-    RETURN_STRING(LIBVIRT_G (last_error),1);
-#endif
+    RETURN_STRING(LIBVIRT_G (last_error) VIRT_COPY_OPT);
 }
 
 /*
@@ -2223,7 +2222,7 @@ PHP_FUNCTION(libvirt_node_get_info)
     if (retval==-1) RETURN_FALSE;
 
     array_init(return_value);
-    add_assoc_string_ex(return_value, "model", 6, info.model, 1);
+    add_assoc_string_ex(return_value, "model", 6, info.model VIRT_COPY_OPT);
     add_assoc_long(return_value, "memory", (long)info.memory);
     add_assoc_long(return_value, "cpus", (long)info.cpus);
     add_assoc_long(return_value, "nodes", (long)info.nodes);
@@ -2318,9 +2317,9 @@ PHP_FUNCTION(libvirt_node_get_cpu_stats)
         add_assoc_long(return_value, "cpu", cpunr);
     else
         if (cpuNum == VIR_NODE_CPU_STATS_ALL_CPUS)
-            add_assoc_string_ex(return_value, "cpu", 4, "all", 1);
+            add_assoc_string_ex(return_value, "cpu", 4, "all" VIRT_COPY_OPT);
         else
-            add_assoc_string_ex(return_value, "cpu", 4, "unknown", 1);
+            add_assoc_string_ex(return_value, "cpu", 4, "unknown" VIRT_COPY_OPT);
 
     free(params);
     params = NULL;
@@ -2532,21 +2531,21 @@ PHP_FUNCTION(libvirt_connect_get_machine_types)
                             char tmp3[2048] = { 0 };
 
                             snprintf(key, sizeof(key), "%d", k);
-                            //add_assoc_string_ex(arr2, key, strlen(key) + 1, ret3[k], 1);
+                            //add_assoc_string_ex(arr2, key, strlen(key) + 1, ret3[k] VIRT_COPY_OPT);
 
                             snprintf(tmp3, sizeof(tmp3), "//capabilities/guest/arch[@name=\"%s\"]/machine[text()=\"%s\"]/@maxCpus",
                                      ret[i], ret3[k]);
 
                             numTmp = get_string_from_xpath(caps, tmp3, NULL, NULL);
                             if (numTmp == NULL)
-                                add_assoc_string_ex(arr2, key, strlen(key) + 1, ret3[k], 1);
+                                add_assoc_string_ex(arr2, key, strlen(key) + 1, ret3[k] VIRT_COPY_OPT);
                             else {
                                 zval *arr4;
                                 ALLOC_INIT_ZVAL(arr4);
                                 array_init(arr4);
 
-                                add_assoc_string_ex(arr4, "name", 5, ret3[k], 1);
-                                add_assoc_string_ex(arr4, "maxCpus", 9, numTmp, 1);
+                                add_assoc_string_ex(arr4, "name", 5, ret3[k] VIRT_COPY_OPT);
+                                add_assoc_string_ex(arr4, "maxCpus", 9, numTmp VIRT_COPY_OPT);
 
                                 add_assoc_zval_ex(arr2, key, strlen(key) + 1, arr4);
                                 free(numTmp);
@@ -2574,14 +2573,14 @@ PHP_FUNCTION(libvirt_connect_get_machine_types)
 
                             numTmp = get_string_from_xpath(caps, tmp3, NULL, NULL);
                             if (numTmp == NULL)
-                                add_assoc_string_ex(arr3, key, strlen(key) + 1, ret3[k], 1);
+                                add_assoc_string_ex(arr3, key, strlen(key) + 1, ret3[k] VIRT_COPY_OPT);
                             else {
                                 zval *arr4;
                                 ALLOC_INIT_ZVAL(arr4);
                                 array_init(arr4);
 
-                                add_assoc_string_ex(arr4, "name", 5, ret3[k], 1);
-                                add_assoc_string_ex(arr4, "maxCpus", 9, numTmp, 1);
+                                add_assoc_string_ex(arr4, "name", 5, ret3[k] VIRT_COPY_OPT);
+                                add_assoc_string_ex(arr4, "maxCpus", 9, numTmp VIRT_COPY_OPT);
 
                                 add_assoc_zval_ex(arr3, key, strlen(key) + 1, arr4);
                                 free(numTmp);
@@ -2624,21 +2623,21 @@ PHP_FUNCTION(libvirt_connect_get_information)
     tmp = virConnectGetURI(conn->conn);
     DPRINTF("%s: Got connection URI of %s...\n", PHPFUNC, tmp);
     array_init(return_value);
-    add_assoc_string_ex(return_value, "uri", 4, tmp ? tmp : "unknown", 1);
+    add_assoc_string_ex(return_value, "uri", 4, tmp ? tmp : "unknown" VIRT_COPY_OPT);
     free(tmp);
     tmp = virConnectGetHostname(conn->conn);
-    add_assoc_string_ex(return_value, "hostname", 9, tmp ? tmp : "unknown", 1);
+    add_assoc_string_ex(return_value, "hostname", 9, tmp ? tmp : "unknown" VIRT_COPY_OPT);
     free(tmp);
 
     if ((virConnectGetVersion(conn->conn, &hvVer) == 0) && (type = virConnectGetType(conn->conn)))
     {
-        add_assoc_string_ex(return_value, "hypervisor", 11, (char *)type, 1);
+        add_assoc_string_ex(return_value, "hypervisor", 11, (char *)type VIRT_COPY_OPT);
         add_assoc_long(return_value, "hypervisor_major",(long)((hvVer/1000000) % 1000));
         add_assoc_long(return_value, "hypervisor_minor",(long)((hvVer/1000) % 1000));
         add_assoc_long(return_value, "hypervisor_release",(long)(hvVer %1000));
         snprintf(hvStr, sizeof(hvStr), "%s %d.%d.%d", type,
                  (long)((hvVer/1000000) % 1000), (long)((hvVer/1000) % 1000), (long)(hvVer %1000));
-        add_assoc_string_ex(return_value, "hypervisor_string", 18, hvStr, 1);
+        add_assoc_string_ex(return_value, "hypervisor_string", 18, hvStr VIRT_COPY_OPT);
     }
 
     if (strcmp(type, "QEMU") == 0) {
@@ -2651,21 +2650,21 @@ PHP_FUNCTION(libvirt_connect_get_information)
     add_assoc_long(return_value, "hypervisor_maxvcpus", maxvcpus);
     iTmp = virConnectIsEncrypted(conn->conn);
     if (iTmp == 1)
-        add_assoc_string_ex(return_value, "encrypted", 10, "Yes", 1);
+        add_assoc_string_ex(return_value, "encrypted", 10, "Yes" VIRT_COPY_OPT);
     else
         if (iTmp == 0)
-            add_assoc_string_ex(return_value, "encrypted", 10, "No", 1);
+            add_assoc_string_ex(return_value, "encrypted", 10, "No" VIRT_COPY_OPT);
         else
-            add_assoc_string_ex(return_value, "encrypted", 10, "unknown", 1);
+            add_assoc_string_ex(return_value, "encrypted", 10, "unknown" VIRT_COPY_OPT);
 
     iTmp = virConnectIsSecure(conn->conn);
     if (iTmp == 1)
-        add_assoc_string_ex(return_value, "secure", 7, "Yes", 1);
+        add_assoc_string_ex(return_value, "secure", 7, "Yes" VIRT_COPY_OPT);
     else
         if (iTmp == 0)
-            add_assoc_string_ex(return_value, "secure", 7, "No", 1);
+            add_assoc_string_ex(return_value, "secure", 7, "No" VIRT_COPY_OPT);
         else
-            add_assoc_string_ex(return_value, "secure", 7, "unknown", 1);
+            add_assoc_string_ex(return_value, "secure", 7, "unknown" VIRT_COPY_OPT);
 
     add_assoc_long(return_value, "num_inactive_domains", virConnectNumOfDefinedDomains(conn->conn));
     add_assoc_long(return_value, "num_inactive_interfaces", virConnectNumOfDefinedInterfaces(conn->conn));
@@ -2704,11 +2703,7 @@ PHP_FUNCTION(libvirt_connect_get_uri)
     DPRINTF("%s: virConnectGetURI returned %s\n", PHPFUNC, uri);
     if (uri == NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(uri);
-#else
-    RETVAL_STRING(uri, 1);
-#endif
+    RETVAL_STRING(uri VIRT_COPY_OPT);
     free(uri);
 }
 
@@ -2731,11 +2726,7 @@ PHP_FUNCTION(libvirt_connect_get_hostname)
     DPRINTF("%s: virConnectGetHostname returned %s\n", PHPFUNC, hostname);
     if (hostname==NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(hostname);
-#else
-    RETVAL_STRING(hostname, 1);
-#endif
+    RETVAL_STRING(hostname VIRT_COPY_OPT);
     free(hostname);
 }
 
@@ -2888,14 +2879,14 @@ PHP_FUNCTION(libvirt_connect_get_hypervisor)
     DPRINTF("%s: virConnectGetType returned %s\n", PHPFUNC, type);
 
     array_init(return_value);
-    add_assoc_string_ex(return_value, "hypervisor", 11, (char *)type, 1);
+    add_assoc_string_ex(return_value, "hypervisor", 11, (char *)type VIRT_COPY_OPT);
     add_assoc_long(return_value, "major",(long)((hvVer/1000000) % 1000));
     add_assoc_long(return_value, "minor",(long)((hvVer/1000) % 1000));
     add_assoc_long(return_value, "release",(long)(hvVer %1000));
 
     snprintf(hvStr, sizeof(hvStr), "%s %d.%d.%d", type,
              (long)((hvVer/1000000) % 1000), (long)((hvVer/1000) % 1000), (long)(hvVer %1000));
-    add_assoc_string_ex(return_value, "hypervisor_string", 18, hvStr, 1);
+    add_assoc_string_ex(return_value, "hypervisor_string", 18, hvStr VIRT_COPY_OPT);
 }
 
 /*
@@ -2990,7 +2981,7 @@ PHP_FUNCTION(libvirt_connect_get_all_domain_stats)
                 add_assoc_bool(arr2, params.field, params.value.b);
                 break;
             case VIR_TYPED_PARAM_STRING:
-                add_assoc_string_ex(arr2, params.field, strlen(params.field)+1, params.value.s, strlen(params.value.s)+1);
+                add_assoc_string_ex(arr2, params.field, strlen(params.field)+1, params.value.s VIRT_COPY_OPT);
                 break;
             }
         }
@@ -3043,11 +3034,7 @@ PHP_FUNCTION(libvirt_connect_get_sysinfo)
     sysinfo=virConnectGetSysinfo(conn->conn, 0);
     if (sysinfo==NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(sysinfo);
-#else
-    RETVAL_STRING(sysinfo, 1);
-#endif
+    RETVAL_STRING(sysinfo VIRT_COPY_OPT);
     free(sysinfo);
 }
 
@@ -3115,7 +3102,7 @@ char *get_string_from_xpath(char *xml, char *xpath, zval **val, int *retVal)
                 value = (char *)xmlNodeListGetString(doc, nodeset->nodeTab[i]->xmlChildrenNode, 1);
 
                 snprintf(key, sizeof(key), "%d", i);
-                add_assoc_string_ex(*val, key, strlen(key)+1, value, 1);
+                add_assoc_string_ex(*val, key, strlen(key)+1, value VIRT_COPY_OPT);
                 ret++;
             }
         }
@@ -4019,11 +4006,7 @@ PHP_FUNCTION(libvirt_domain_get_metadata)
         }
     }
     else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(ret);
-#else
-        RETVAL_STRING(ret, 1);
-#endif
+        RETVAL_STRING(ret VIRT_COPY_OPT);
         free(ret);
     }
 }
@@ -4176,11 +4159,7 @@ PHP_FUNCTION(libvirt_domain_qemu_agent_command)
        ret = virDomainQemuAgentCommand(domain->domain, cmd, timeout, flags);
        if (ret == NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-       RETURN_STRING(ret);
-#else
-       RETURN_STRING(ret, 1);
-#endif
+       RETURN_STRING(ret VIRT_COPY_OPT);
 }
 
 /*
@@ -4480,11 +4459,7 @@ PHP_FUNCTION(libvirt_domain_get_name)
     DPRINTF("%s: virDomainGetName(%p) returned %s\n", PHPFUNC, domain->domain, name);
     if (name==NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(name);
-#else
-    RETURN_STRING(name, 1);  //we can use the copy mechanism as we need not to free name (we even can not!)
-#endif
+    RETURN_STRING(name VIRT_COPY_OPT);  //we can use the copy mechanism as we need not to free name (we even can not!)
 }
 
 /*
@@ -4509,7 +4484,7 @@ PHP_FUNCTION(libvirt_domain_get_uuid_string)
     if (retval!=0) RETURN_FALSE;
 
 #if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(uuid);
+    RETVAL_STRING(uuid VIRT_COPY_OPT);
     efree(uuid);
 #else
     RETURN_STRING(uuid,0);
@@ -4610,12 +4585,12 @@ PHP_FUNCTION(libvirt_domain_get_screenshot_api)
         if (WEXITSTATUS(exitStatus) != 0)
             RETURN_FALSE;
 
-        add_assoc_string_ex(return_value, "file", 5, fileNew, 1);
-        add_assoc_string_ex(return_value, "mime", 5, "image/png", 1);
+        add_assoc_string_ex(return_value, "file", 5, fileNew VIRT_COPY_OPT);
+        add_assoc_string_ex(return_value, "mime", 5, "image/png" VIRT_COPY_OPT);
     }
     else {
-        add_assoc_string_ex(return_value, "file", 5, file, 1);
-        add_assoc_string_ex(return_value, "mime", 5, mime, 1);
+        add_assoc_string_ex(return_value, "file", 5, file VIRT_COPY_OPT);
+        add_assoc_string_ex(return_value, "mime", 5, mime VIRT_COPY_OPT);
     }
 }
 
@@ -5073,17 +5048,9 @@ PHP_FUNCTION(libvirt_connect_get_capabilities)
 
     tmp = get_string_from_xpath(caps, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(caps);
-#else
-        RETVAL_STRING(caps, 1);
-#endif
+        RETVAL_STRING(caps VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(caps);
@@ -5118,11 +5085,7 @@ PHP_FUNCTION(libvirt_connect_get_emulator)
         RETURN_FALSE;
     }
 
-#if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(tmp);
-#else
-    RETVAL_STRING(tmp, 1);
-#endif
+    RETVAL_STRING(tmp VIRT_COPY_OPT);
     free(tmp);
 }
 
@@ -5187,7 +5150,7 @@ PHP_FUNCTION(libvirt_connect_get_nic_models)
             tTokenizer t = tokenize(tmp, ",");
             for (i = 0; i < t.numTokens; i++) {
                 snprintf(tmp2, sizeof(tmp2), "%d", i);
-                add_assoc_string_ex(return_value, tmp2, strlen(tmp2) + 1, t.tokens[i], 1);
+                add_assoc_string_ex(return_value, tmp2, strlen(tmp2) + 1, t.tokens[i] VIRT_COPY_OPT);
             }
             free_tokens(t);
         }
@@ -5280,14 +5243,14 @@ PHP_FUNCTION(libvirt_connect_get_soundhw_models)
                 zval *arr;
                 ALLOC_INIT_ZVAL(arr);
                 array_init(arr);
-                add_assoc_string_ex(arr, "name", 5, t.tokens[0], 1);
-                add_assoc_string_ex(arr, "description", 12, desc, 1);
+                add_assoc_string_ex(arr, "name", 5, t.tokens[0] VIRT_COPY_OPT);
+                add_assoc_string_ex(arr, "description", 12, desc VIRT_COPY_OPT);
                 add_next_index_zval(return_value, arr);
             }
             else {
                 char tmp2[16] = { 0 };
                 snprintf(tmp2, sizeof(tmp2), "%d", n++);
-                add_assoc_string_ex(return_value, tmp2, strlen(tmp2) + 1, t.tokens[0], 1);
+                add_assoc_string_ex(return_value, tmp2, strlen(tmp2) + 1, t.tokens[0] VIRT_COPY_OPT);
             }
 
             free_tokens(t);
@@ -5554,11 +5517,7 @@ PHP_FUNCTION(libvirt_domain_new)
 PHP_FUNCTION(libvirt_domain_new_get_vnc)
 {
     if (LIBVIRT_G(vnc_location))
-#if PHP_MAJOR_VERSION >= 7
-        RETURN_STRING(LIBVIRT_G(vnc_location));
-#else
-        RETURN_STRING(LIBVIRT_G(vnc_location),1);
-#endif
+        RETURN_STRING(LIBVIRT_G(vnc_location) VIRT_COPY_OPT);
 
     RETURN_NULL();
 }
@@ -5596,17 +5555,9 @@ PHP_FUNCTION(libvirt_domain_get_xml_desc)
 
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(xml);
-#else
-        RETVAL_STRING(xml, 1);
-#endif
+        RETVAL_STRING(xml VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(tmp);
@@ -6760,8 +6711,8 @@ PHP_FUNCTION(libvirt_domain_get_network_info)
     }
 
     array_init(return_value);
-    add_assoc_string_ex(return_value, "mac", 4, mac, 1);
-    add_assoc_string_ex(return_value, "network", 8, tmp, 1);
+    add_assoc_string_ex(return_value, "mac", 4, mac VIRT_COPY_OPT);
+    add_assoc_string_ex(return_value, "network", 8, tmp VIRT_COPY_OPT);
 
     free(tmp);
     free(xpath);
@@ -6772,9 +6723,9 @@ PHP_FUNCTION(libvirt_domain_get_network_info)
     }
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "nic_type", 9, tmp, 1);
+        add_assoc_string_ex(return_value, "nic_type", 9, tmp VIRT_COPY_OPT);
     else
-        add_assoc_string_ex(return_value, "nic_type", 9, "default", 1);
+        add_assoc_string_ex(return_value, "nic_type", 9, "default" VIRT_COPY_OPT);
 
     free(xml);
     free(xpath);
@@ -6858,12 +6809,12 @@ PHP_FUNCTION(libvirt_domain_get_block_info)
 
     array_init(return_value);
     LONGLONG_INIT;
-    add_assoc_string_ex(return_value, "device", 7, dev, 1);
+    add_assoc_string_ex(return_value, "device", 7, dev VIRT_COPY_OPT);
 
     if (isFile)
-        add_assoc_string_ex(return_value, "file", 5, tmp, 1);
+        add_assoc_string_ex(return_value, "file", 5, tmp VIRT_COPY_OPT);
     else
-        add_assoc_string_ex(return_value, "partition", 10, tmp, 1);
+        add_assoc_string_ex(return_value, "partition", 10, tmp VIRT_COPY_OPT);
 
     free(xpath);
     if (asprintf(&xpath, "//domain/devices/disk/target[@dev='%s']/../driver/@type", dev) < 0) {
@@ -6873,7 +6824,7 @@ PHP_FUNCTION(libvirt_domain_get_block_info)
     free(tmp);
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if (tmp != NULL)
-        add_assoc_string_ex(return_value, "type", 5, tmp, 1);
+        add_assoc_string_ex(return_value, "type", 5, tmp VIRT_COPY_OPT);
 
     LONGLONG_ASSOC(return_value, "capacity", info.capacity);
     LONGLONG_ASSOC(return_value, "allocation", info.allocation);
@@ -6929,7 +6880,7 @@ PHP_FUNCTION(libvirt_domain_xml_xpath)
     if (rc == 0)
         RETURN_FALSE;
 
-    add_assoc_string_ex(return_value, "xpath", 6, (char *)zpath, 1);
+    add_assoc_string_ex(return_value, "xpath", 6, (char *)zpath VIRT_COPY_OPT);
     if (rc < 0)
         add_assoc_long(return_value, "error_code", (long)rc);
 }
@@ -7289,11 +7240,7 @@ PHP_FUNCTION(libvirt_domain_snapshot_get_xml)
     xml = virDomainSnapshotGetXMLDesc(snapshot->snapshot, flags);
     if (xml==NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETVAL_STRING(xml);
-#else
-    RETVAL_STRING(xml, 1);
-#endif
+    RETVAL_STRING(xml VIRT_COPY_OPT);
     free(xml);
 }
 
@@ -7622,11 +7569,7 @@ PHP_FUNCTION(libvirt_storagevolume_get_name)
     DPRINTF("%s: virStorageVolGetName(%p) returned %s\n", PHPFUNC, volume->volume, retval);
     if (retval == NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(retval);
-#else
-    RETURN_STRING (retval, 1);
-#endif
+    RETURN_STRING(retval VIRT_COPY_OPT);
 }
 
 /*
@@ -7648,11 +7591,7 @@ PHP_FUNCTION(libvirt_storagevolume_get_path)
     DPRINTF("%s: virStorageVolGetPath(%p) returned %s\n", PHPFUNC, volume->volume, retval);
     if (retval == NULL) RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(retval);
-#else
-    RETURN_STRING (retval, 1);
-#endif
+    RETURN_STRING(retval VIRT_COPY_OPT);
 }
 
 /*
@@ -7716,17 +7655,9 @@ PHP_FUNCTION(libvirt_storagevolume_get_xml_desc)
 
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(xml);
-#else
-        RETVAL_STRING(xml, 1);
-#endif
+        RETVAL_STRING(xml VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(xml);
@@ -8010,11 +7941,7 @@ PHP_FUNCTION(libvirt_storagepool_get_name)
     if (name == NULL)
         RETURN_FALSE;
 
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(name);
-#else
-    RETURN_STRING(name, 1);
-#endif
+    RETURN_STRING(name VIRT_COPY_OPT);
 }
 
 /*
@@ -8091,17 +8018,9 @@ PHP_FUNCTION(libvirt_storagepool_get_xml_desc)
 
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(xml);
-#else
-        RETVAL_STRING(xml, 1);
-#endif
+        RETVAL_STRING(xml VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(xml);
@@ -9002,17 +8921,9 @@ PHP_FUNCTION(libvirt_nodedev_get_xml_desc)
 
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(xml);
-#else
-        RETVAL_STRING(xml, 1);
-#endif
+        RETVAL_STRING(xml VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(xml);
@@ -9057,18 +8968,18 @@ PHP_FUNCTION(libvirt_nodedev_get_information)
         goto error;
     }
 
-    add_assoc_string_ex(return_value, "name", 5, tmp, 1);
+    add_assoc_string_ex(return_value, "name", 5, tmp VIRT_COPY_OPT);
 
     /* Get parent name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/parent", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "parent", 7, tmp, 1);
+        add_assoc_string_ex(return_value, "parent", 7, tmp VIRT_COPY_OPT);
 
     /* Get capability */
     cap = get_string_from_xpath(xml, "//device/capability/@type", NULL, &retval);
     if ((cap != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "capability", 11, cap, 1);
+        add_assoc_string_ex(return_value, "capability", 11, cap VIRT_COPY_OPT);
 
     /* System capability is having hardware and firmware sub-blocks */
     if (strcmp(cap, "system") == 0) {
@@ -9076,92 +8987,92 @@ PHP_FUNCTION(libvirt_nodedev_get_information)
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/hardware/vendor", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "hardware_vendor", 16, tmp, 1);
+            add_assoc_string_ex(return_value, "hardware_vendor", 16, tmp VIRT_COPY_OPT);
 
         /* Get hardware version */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/hardware/version", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "hardware_version", 17, tmp, 1);
+            add_assoc_string_ex(return_value, "hardware_version", 17, tmp VIRT_COPY_OPT);
 
         /* Get hardware serial */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/hardware/serial", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "hardware_serial", 16, tmp, 1);
+            add_assoc_string_ex(return_value, "hardware_serial", 16, tmp VIRT_COPY_OPT);
 
         /* Get hardware UUID */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/hardware/uuid", NULL, &retval);
         if (tmp != NULL)
-            add_assoc_string_ex(return_value, "hardware_uuid", 15, tmp, 1);
+            add_assoc_string_ex(return_value, "hardware_uuid", 15, tmp VIRT_COPY_OPT);
 
         /* Get firmware vendor */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/firmware/vendor", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "firmware_vendor", 16, tmp, 1);
+            add_assoc_string_ex(return_value, "firmware_vendor", 16, tmp VIRT_COPY_OPT);
 
         /* Get firmware version */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/firmware/version", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "firmware_version", 17, tmp, 1);
+            add_assoc_string_ex(return_value, "firmware_version", 17, tmp VIRT_COPY_OPT);
 
         /* Get firmware release date */
         free(tmp);
         tmp = get_string_from_xpath(xml, "//device/capability/firmware/release_date", NULL, &retval);
         if ((tmp != NULL) && (retval > 0))
-            add_assoc_string_ex(return_value, "firmware_release_date", 22, tmp, 1);
+            add_assoc_string_ex(return_value, "firmware_release_date", 22, tmp VIRT_COPY_OPT);
     }
 
     /* Get product_id */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/product/@id", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "product_id", 11, tmp, 1);
+        add_assoc_string_ex(return_value, "product_id", 11, tmp VIRT_COPY_OPT);
 
     /* Get product_name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/product", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "product_name", 13, tmp, 1);
+        add_assoc_string_ex(return_value, "product_name", 13, tmp VIRT_COPY_OPT);
 
     /* Get vendor_id */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/vendor/@id", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "vendor_id", 10, tmp, 1);
+        add_assoc_string_ex(return_value, "vendor_id", 10, tmp VIRT_COPY_OPT);
 
     /* Get vendor_name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/vendor", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "vendor_name", 12, tmp, 1);
+        add_assoc_string_ex(return_value, "vendor_name", 12, tmp VIRT_COPY_OPT);
 
     /* Get driver name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/driver/name", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "driver_name", 12, tmp, 1);
+        add_assoc_string_ex(return_value, "driver_name", 12, tmp VIRT_COPY_OPT);
 
     /* Get driver name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/interface", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "interface_name", 15, tmp, 1);
+        add_assoc_string_ex(return_value, "interface_name", 15, tmp VIRT_COPY_OPT);
 
     /* Get driver name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/address", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "address", 8, tmp, 1);
+        add_assoc_string_ex(return_value, "address", 8, tmp VIRT_COPY_OPT);
 
     /* Get driver name */
     free(tmp);
     tmp = get_string_from_xpath(xml, "//device/capability/capability/@type", NULL, &retval);
     if ((tmp != NULL) && (retval > 0))
-        add_assoc_string_ex(return_value, "capabilities", 11, tmp, 1);
+        add_assoc_string_ex(return_value, "capabilities", 11, tmp VIRT_COPY_OPT);
 
     free(cap);
     free(tmp);
@@ -9293,11 +9204,7 @@ PHP_FUNCTION(libvirt_network_get_bridge)
         RETURN_FALSE;
     }
 
-#if PHP_MAJOR_VERSION >= 7
-    RETURN_STRING(name);
-#else
-    RETURN_STRING(name, 1);
-#endif
+    RETURN_STRING(name VIRT_COPY_OPT);
 }
 
 /*
@@ -9370,42 +9277,42 @@ PHP_FUNCTION(libvirt_network_get_information)
         RETURN_FALSE;
     }
 
-    add_assoc_string_ex(return_value, "name", 5, name, 1);
+    add_assoc_string_ex(return_value, "name", 5, name VIRT_COPY_OPT);
 
     /* Get gateway IP address */
     ipaddr = get_string_from_xpath(xml, "//network/ip/@address", NULL, &retval);
     if (ipaddr && retval > 0)
-        add_assoc_string_ex(return_value, "ip", 3, ipaddr, 1);
+        add_assoc_string_ex(return_value, "ip", 3, ipaddr VIRT_COPY_OPT);
 
     /* Get netmask */
     netmask = get_string_from_xpath(xml, "//network/ip/@netmask", NULL, &retval);
     if (netmask && retval > 0) {
         int subnet_bits = get_subnet_bits(netmask);
-        add_assoc_string_ex(return_value, "netmask", 8, netmask, 1);
+        add_assoc_string_ex(return_value, "netmask", 8, netmask VIRT_COPY_OPT);
         add_assoc_long(return_value, "netmask_bits", (long) subnet_bits);
 
         /* Format CIDR address representation */
         ipaddr[strlen(ipaddr) - 1] = ipaddr[strlen(ipaddr) - 1] - 1;
         snprintf(fixedtemp, sizeof(fixedtemp), "%s/%d", ipaddr, subnet_bits);
-        add_assoc_string_ex(return_value, "ip_range", 9, fixedtemp, 1);
+        add_assoc_string_ex(return_value, "ip_range", 9, fixedtemp VIRT_COPY_OPT);
     }
 
     /* Get forwarding settings */
     mode = get_string_from_xpath(xml, "//network/forward/@mode", NULL, &retval);
     if (mode && retval > 0)
-        add_assoc_string_ex(return_value, "forwarding", 11, mode, 1);
+        add_assoc_string_ex(return_value, "forwarding", 11, mode VIRT_COPY_OPT);
 
     /* Get forwarding settings */
     dev = get_string_from_xpath(xml, "//network/forward/@dev", NULL, &retval);
     if (dev && retval > 0)
-        add_assoc_string_ex(return_value, "forward_dev", 12, dev, 1);
+        add_assoc_string_ex(return_value, "forward_dev", 12, dev VIRT_COPY_OPT);
 
     /* Get DHCP values */
     dhcp_start = get_string_from_xpath(xml, "//network/ip/dhcp/range/@start", NULL, &retval);
     dhcp_end = get_string_from_xpath(xml, "//network/ip/dhcp/range/@end", NULL, &retval);
     if (dhcp_start && dhcp_end && retval > 0) {
-        add_assoc_string_ex(return_value, "dhcp_start", 11, dhcp_start,  1);
-        add_assoc_string_ex(return_value, "dhcp_end", 9, dhcp_end, 1);
+        add_assoc_string_ex(return_value, "dhcp_start", 11, dhcp_start VIRT_COPY_OPT);
+        add_assoc_string_ex(return_value, "dhcp_end", 9, dhcp_end VIRT_COPY_OPT);
     }
 
     free(dhcp_end);
@@ -9497,17 +9404,9 @@ PHP_FUNCTION(libvirt_network_get_xml_desc)
 
     tmp = get_string_from_xpath(xml, xpath, NULL, &retval);
     if ((tmp == NULL) || (retval < 0)) {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(xml);
-#else
-        RETVAL_STRING(xml, 1);
-#endif
+        RETVAL_STRING(xml VIRT_COPY_OPT);
     } else {
-#if PHP_MAJOR_VERSION >= 7
-        RETVAL_STRING(tmp);
-#else
-        RETVAL_STRING(tmp, 1);
-#endif
+        RETVAL_STRING(tmp VIRT_COPY_OPT);
     }
 
     free(xml);
@@ -9547,7 +9446,7 @@ PHP_FUNCTION(libvirt_version)
     add_assoc_long(return_value, "libvirt.minor",(long)((libVer/1000) % 1000));
     add_assoc_long(return_value, "libvirt.major",(long)((libVer/1000000) % 1000));
 
-    add_assoc_string_ex(return_value, "connector.version", 18, PHP_LIBVIRT_WORLD_VERSION, 1);
+    add_assoc_string_ex(return_value, "connector.version", 18, PHP_LIBVIRT_WORLD_VERSION VIRT_COPY_OPT);
     add_assoc_long(return_value, "connector.major", VERSION_MAJOR);
     add_assoc_long(return_value, "connector.minor", VERSION_MINOR);
     add_assoc_long(return_value, "connector.release", VERSION_MICRO);
-- 
2.5.5




More information about the libvir-list mailing list