[PATCH 2/2] wbemprox: Remove string duplication helper.

Nikolay Sivov nsivov at codeweavers.com
Tue Apr 12 01:28:24 CDT 2022


Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
 dlls/wbemprox/builtin.c          | 142 +++++++++++++++----------------
 dlls/wbemprox/class.c            |   4 +-
 dlls/wbemprox/qualifier.c        |   4 +-
 dlls/wbemprox/query.c            |   4 +-
 dlls/wbemprox/services.c         |   6 +-
 dlls/wbemprox/table.c            |   2 +-
 dlls/wbemprox/wbemprox_private.h |   8 --
 7 files changed, 81 insertions(+), 89 deletions(-)

diff --git a/dlls/wbemprox/builtin.c b/dlls/wbemprox/builtin.c
index bb1c10ac2fd..07a5873208f 100644
--- a/dlls/wbemprox/builtin.c
+++ b/dlls/wbemprox/builtin.c
@@ -1215,28 +1215,28 @@ static WCHAR *get_baseboard_string( BYTE id, const char *buf, UINT len )
 static WCHAR *get_baseboard_manufacturer( const char *buf, UINT len )
 {
     WCHAR *ret = get_baseboard_string( 1, buf, len );
-    if (!ret) return heap_strdupW( L"Intel Corporation" );
+    if (!ret) return wcsdup( L"Intel Corporation" );
     return ret;
 }
 
 static WCHAR *get_baseboard_product( const char *buf, UINT len )
 {
     WCHAR *ret = get_baseboard_string( 2, buf, len );
-    if (!ret) return heap_strdupW( L"Base Board" );
+    if (!ret) return wcsdup( L"Base Board" );
     return ret;
 }
 
 static WCHAR *get_baseboard_serialnumber( const char *buf, UINT len )
 {
     WCHAR *ret = get_baseboard_string( 4, buf, len );
-    if (!ret) return heap_strdupW( L"None" );
+    if (!ret) return wcsdup( L"None" );
     return ret;
 }
 
 static WCHAR *get_baseboard_version( const char *buf, UINT len )
 {
     WCHAR *ret = get_baseboard_string( 3, buf, len );
-    if (!ret) return heap_strdupW( L"1.0" );
+    if (!ret) return wcsdup( L"1.0" );
     return ret;
 }
 
@@ -1301,7 +1301,7 @@ static WCHAR *get_bios_string( BYTE id, const char *buf, UINT len )
 static WCHAR *get_bios_manufacturer( const char *buf, UINT len )
 {
     WCHAR *ret = get_bios_string( 1, buf, len );
-    if (!ret) return heap_strdupW( L"The Wine Project" );
+    if (!ret) return wcsdup( L"The Wine Project" );
     return ret;
 }
 
@@ -1339,7 +1339,7 @@ static WCHAR *convert_bios_date( const WCHAR *str )
 static WCHAR *get_bios_releasedate( const char *buf, UINT len )
 {
     WCHAR *ret, *date = get_bios_string( 3, buf, len );
-    if (!date || !(ret = convert_bios_date( date ))) ret = heap_strdupW( L"20120608000000.000000+000" );
+    if (!date || !(ret = convert_bios_date( date ))) ret = wcsdup( L"20120608000000.000000+000" );
     free( date );
     return ret;
 }
@@ -1347,7 +1347,7 @@ static WCHAR *get_bios_releasedate( const char *buf, UINT len )
 static WCHAR *get_bios_smbiosbiosversion( const char *buf, UINT len )
 {
     WCHAR *ret = get_bios_string( 2, buf, len );
-    if (!ret) return heap_strdupW( L"Wine" );
+    if (!ret) return wcsdup( L"Wine" );
     return ret;
 }
 
@@ -1461,7 +1461,7 @@ static enum fill_status fill_cdromdrive( struct table *table, const struct expr
             rec = (struct record_cdromdrive *)(table->data + offset);
             rec->device_id    = L"IDE\\CDROMWINE_CD-ROM_____________________________1.0_____\\5&3A2A5854&0&1.0.0";
             swprintf( drive, ARRAY_SIZE( drive ), L"%c:", 'A' + i );
-            rec->drive        = heap_strdupW( drive );
+            rec->drive        = wcsdup( drive );
             rec->mediatype    = L"CR-ROM";
             rec->name         = L"Wine CD_ROM ATA Device";
             rec->pnpdevice_id = L"IDE\\CDROMWINE_CD-ROM_____________________________1.0_____\\5&3A2A5854&0&1.0.0";
@@ -1618,14 +1618,14 @@ static WCHAR *get_compsysproduct_string( BYTE id, const char *buf, UINT len )
 static WCHAR *get_compsysproduct_identifyingnumber( const char *buf, UINT len )
 {
     WCHAR *ret = get_compsysproduct_string( 4, buf, len );
-    if (!ret) return heap_strdupW( L"0" );
+    if (!ret) return wcsdup( L"0" );
     return ret;
 }
 
 static WCHAR *get_compsysproduct_name( const char *buf, UINT len )
 {
     WCHAR *ret = get_compsysproduct_string( 2, buf, len );
-    if (!ret) return heap_strdupW( L"Wine" );
+    if (!ret) return wcsdup( L"Wine" );
     return ret;
 }
 
@@ -1646,21 +1646,21 @@ static WCHAR *get_compsysproduct_uuid( const char *buf, UINT len )
               ptr[2], ptr[3], ptr[4], ptr[5], ptr[6], ptr[7], ptr[8], ptr[9], ptr[10], ptr[11], ptr[12], ptr[13],
               ptr[14], ptr[15] );
 done:
-    if (!ret) ret = heap_strdupW( L"deaddead-dead-dead-dead-deaddeaddead" );
+    if (!ret) ret = wcsdup( L"deaddead-dead-dead-dead-deaddeaddead" );
     return ret;
 }
 
 static WCHAR *get_compsysproduct_vendor( const char *buf, UINT len )
 {
     WCHAR *ret = get_compsysproduct_string( 1, buf, len );
-    if (!ret) return heap_strdupW( L"The Wine Project" );
+    if (!ret) return wcsdup( L"The Wine Project" );
     return ret;
 }
 
 static WCHAR *get_compsysproduct_version( const char *buf, UINT len )
 {
     WCHAR *ret = get_compsysproduct_string( 3, buf, len );
-    if (!ret) return heap_strdupW( L"1.0" );
+    if (!ret) return wcsdup( L"1.0" );
     return ret;
 }
 
@@ -2244,7 +2244,7 @@ static WCHAR *get_diskdrive_serialnumber( WCHAR letter )
 
 done:
     if (handle != INVALID_HANDLE_VALUE) CloseHandle( handle );
-    if (!ret) ret = heap_strdupW( L"WINEHDISK" );
+    if (!ret) ret = wcsdup( L"WINEHDISK" );
     return ret;
 }
 
@@ -2273,7 +2273,7 @@ static enum fill_status fill_diskdrive( struct table *table, const struct expr *
 
             rec = (struct record_diskdrive *)(table->data + offset);
             swprintf( device_id, ARRAY_SIZE( device_id ), fmtW, index );
-            rec->device_id     = heap_strdupW( device_id );
+            rec->device_id     = wcsdup( device_id );
             rec->index         = index++;
             rec->interfacetype = L"IDE";
             rec->manufacturer  = L"(Standard disk drives)";
@@ -2338,11 +2338,11 @@ static struct association *get_diskdrivetodiskpartition_pairs( UINT *count )
     for (i = 0; i < query->view->result_count; i++)
     {
         if ((hr = get_propval( query->view, i, L"__PATH", &val, NULL, NULL )) != S_OK) goto done;
-        if (!(ret[i].ref = heap_strdupW( V_BSTR(&val) ))) goto done;
+        if (!(ret[i].ref = wcsdup( V_BSTR(&val) ))) goto done;
         VariantClear( &val );
 
         if ((hr = get_propval( query2->view, i, L"__PATH", &val, NULL, NULL )) != S_OK) goto done;
-        if (!(ret[i].ref2 = heap_strdupW( V_BSTR(&val) ))) goto done;
+        if (!(ret[i].ref2 = wcsdup( V_BSTR(&val) ))) goto done;
         VariantClear( &val );
     }
 
@@ -2400,8 +2400,8 @@ static WCHAR *get_filesystem( const WCHAR *root )
     WCHAR buffer[MAX_PATH + 1];
 
     if (GetVolumeInformationW( root, NULL, 0, NULL, NULL, NULL, buffer, MAX_PATH + 1 ))
-        return heap_strdupW( buffer );
-    return heap_strdupW( L"NTFS" );
+        return wcsdup( buffer );
+    return wcsdup( L"NTFS" );
 }
 
 static enum fill_status fill_diskpartition( struct table *table, const struct expr *cond )
@@ -2430,10 +2430,10 @@ static enum fill_status fill_diskpartition( struct table *table, const struct ex
             rec->bootable       = (i == 2) ? -1 : 0;
             rec->bootpartition  = (i == 2) ? -1 : 0;
             swprintf( device_id, ARRAY_SIZE( device_id ), L"Disk #%u, Partition #0", index );
-            rec->device_id      = heap_strdupW( device_id );
+            rec->device_id      = wcsdup( device_id );
             rec->diskindex      = index++;
             rec->index          = 0;
-            rec->pnpdevice_id   = heap_strdupW( device_id );
+            rec->pnpdevice_id   = wcsdup( device_id );
             get_freespace( root, &size );
             rec->size           = size;
             rec->startingoffset = 0;
@@ -2545,7 +2545,7 @@ static WCHAR *get_volumename( const WCHAR *root )
 {
     WCHAR buf[MAX_PATH + 1] = {0};
     GetVolumeInformationW( root, buf, ARRAY_SIZE( buf ), NULL, NULL, NULL, NULL, 0 );
-    return heap_strdupW( buf );
+    return wcsdup( buf );
 }
 static WCHAR *get_volumeserialnumber( const WCHAR *root )
 {
@@ -2554,7 +2554,7 @@ static WCHAR *get_volumeserialnumber( const WCHAR *root )
 
     GetVolumeInformationW( root, NULL, 0, &serial, NULL, NULL, NULL, 0 );
     swprintf( buffer, ARRAY_SIZE( buffer ), L"%08X", serial );
-    return heap_strdupW( buffer );
+    return wcsdup( buffer );
 }
 
 static enum fill_status fill_logicaldisk( struct table *table, const struct expr *cond )
@@ -2581,12 +2581,12 @@ static enum fill_status fill_logicaldisk( struct table *table, const struct expr
 
             rec = (struct record_logicaldisk *)(table->data + offset);
             swprintf( device_id, ARRAY_SIZE( device_id ), L"%c:", 'A' + i );
-            rec->caption            = heap_strdupW( device_id );
-            rec->device_id          = heap_strdupW( device_id );
+            rec->caption            = wcsdup( device_id );
+            rec->device_id          = wcsdup( device_id );
             rec->drivetype          = type;
             rec->filesystem         = get_filesystem( root );
             rec->freespace          = get_freespace( root, &size );
-            rec->name               = heap_strdupW( device_id );
+            rec->name               = wcsdup( device_id );
             rec->size               = size;
             rec->volumename         = get_volumename( root );
             rec->volumeserialnumber = get_volumeserialnumber( root );
@@ -2629,11 +2629,11 @@ static struct association *get_logicaldisktopartition_pairs( UINT *count )
     for (i = 0; i < query->view->result_count; i++)
     {
         if ((hr = get_propval( query->view, i, L"__PATH", &val, NULL, NULL )) != S_OK) goto done;
-        if (!(ret[i].ref = heap_strdupW( V_BSTR(&val) ))) goto done;
+        if (!(ret[i].ref = wcsdup( V_BSTR(&val) ))) goto done;
         VariantClear( &val );
 
         if ((hr = get_propval( query2->view, i, L"__PATH", &val, NULL, NULL )) != S_OK) goto done;
-        if (!(ret[i].ref2 = heap_strdupW( V_BSTR(&val) ))) goto done;
+        if (!(ret[i].ref2 = wcsdup( V_BSTR(&val) ))) goto done;
         VariantClear( &val );
     }
 
@@ -2792,18 +2792,18 @@ static enum fill_status fill_networkadapter( struct table *table, const struct e
         swprintf( device_id, ARRAY_SIZE( device_id ), L"%u", aa->u.s.IfIndex );
         rec->adaptertype          = get_adaptertype( aa->IfType, &adaptertypeid, &physical );
         rec->adaptertypeid        = adaptertypeid;
-        rec->description          = heap_strdupW( aa->Description );
-        rec->device_id            = heap_strdupW( device_id );
+        rec->description          = wcsdup( aa->Description );
+        rec->device_id            = wcsdup( device_id );
         rec->guid                 = get_networkadapter_guid( &aa->Luid );
         rec->index                = aa->u.s.IfIndex;
         rec->interface_index      = aa->u.s.IfIndex;
         rec->mac_address          = get_mac_address( aa->PhysicalAddress, aa->PhysicalAddressLength );
         rec->manufacturer         = L"The Wine Project";
-        rec->name                 = heap_strdupW( aa->FriendlyName );
+        rec->name                 = wcsdup( aa->FriendlyName );
         rec->netconnection_status = get_connection_status( aa->OperStatus );
         rec->physicaladapter      = physical;
         rec->pnpdevice_id         = L"PCI\\VEN_8086&DEV_100E&SUBSYS_001E8086&REV_02\\3&267A616A&1&18";
-        rec->servicename          = heap_strdupW( aa->FriendlyName );
+        rec->servicename          = wcsdup( aa->FriendlyName );
         rec->speed                = 1000000;
         if (!match_row( table, row, cond, &status ))
         {
@@ -2828,7 +2828,7 @@ static WCHAR *get_dnshostname( IP_ADAPTER_UNICAST_ADDRESS *addr )
     if (!addr) return NULL;
     if (GetNameInfoW( sa->lpSockaddr, sa->iSockaddrLength, buf, ARRAY_SIZE( buf ), NULL,
                       0, NI_NAMEREQD )) return NULL;
-    return heap_strdupW( buf );
+    return wcsdup( buf );
 }
 static struct array *get_defaultipgateway( IP_ADAPTER_GATEWAY_ADDRESS *list )
 {
@@ -2850,7 +2850,7 @@ static struct array *get_defaultipgateway( IP_ADAPTER_GATEWAY_ADDRESS *list )
     {
         buflen = ARRAY_SIZE( buf );
         if (WSAAddressToStringW( gateway->Address.lpSockaddr, gateway->Address.iSockaddrLength,
-                                 NULL, buf, &buflen) || !(ptr[i++] = heap_strdupW( buf )))
+                                 NULL, buf, &buflen) || !(ptr[i++] = wcsdup( buf )))
         {
             for (; i > 0; i--) free( ptr[i - 1] );
             free( ptr );
@@ -2883,7 +2883,7 @@ static struct array *get_dnsserversearchorder( IP_ADAPTER_DNS_SERVER_ADDRESS *li
     {
         buflen = ARRAY_SIZE( buf );
         if (WSAAddressToStringW( server->Address.lpSockaddr, server->Address.iSockaddrLength,
-                                 NULL, buf, &buflen) || !(ptr[i++] = heap_strdupW( buf )))
+                                 NULL, buf, &buflen) || !(ptr[i++] = wcsdup( buf )))
         {
             for (; i > 0; i--) free( ptr[i - 1] );
             free( ptr );
@@ -2917,7 +2917,7 @@ static struct array *get_ipaddress( IP_ADAPTER_UNICAST_ADDRESS_LH *list )
     {
         buflen = ARRAY_SIZE( buf );
         if (WSAAddressToStringW( address->Address.lpSockaddr, address->Address.iSockaddrLength,
-                                 NULL, buf, &buflen) || !(ptr[i++] = heap_strdupW( buf )))
+                                 NULL, buf, &buflen) || !(ptr[i++] = wcsdup( buf )))
         {
             for (; i > 0; i--) free( ptr[i - 1] );
             free( ptr );
@@ -2960,13 +2960,13 @@ static struct array *get_ipsubnet( IP_ADAPTER_UNICAST_ADDRESS_LH *list )
                     || WSAAddressToStringW( (SOCKADDR*)&addr, sizeof(addr), NULL, buf, &buflen))
                 ptr[i] = NULL;
             else
-                ptr[i] = heap_strdupW( buf );
+                ptr[i] = wcsdup( buf );
         }
         else
         {
             WCHAR buf[11];
             swprintf( buf, ARRAY_SIZE( buf ), L"%u", address->OnLinkPrefixLength );
-            ptr[i] = heap_strdupW( buf );
+            ptr[i] = wcsdup( buf );
         }
         if (!ptr[i++])
         {
@@ -3021,7 +3021,7 @@ static enum fill_status fill_networkadapterconfig( struct table *table, const st
 
         rec = (struct record_networkadapterconfig *)(table->data + offset);
         rec->defaultipgateway     = get_defaultipgateway( aa->FirstGatewayAddress );
-        rec->description          = heap_strdupW( aa->Description );
+        rec->description          = wcsdup( aa->Description );
         rec->dhcpenabled          = -1;
         rec->dnsdomain            = L"";
         rec->dnshostname          = get_dnshostname( aa->FirstUnicastAddress );
@@ -3103,7 +3103,7 @@ static enum fill_status fill_pnpentity( struct table *table, const struct expr *
         if (SetupDiGetDeviceInstanceIdW( device_info_set, &devinfo, device_id,
                     ARRAY_SIZE(device_id), NULL ))
         {
-            rec->device_id = heap_strdupW( device_id );
+            rec->device_id = wcsdup( device_id );
             rec->manufacturer = L"The Wine Project";
             rec->name = L"Wine PnP Device";
 
@@ -3152,14 +3152,14 @@ static enum fill_status fill_printer( struct table *table, const struct expr *co
         rec = (struct record_printer *)(table->data + offset);
         rec->attributes           = info[i].Attributes;
         swprintf( id, ARRAY_SIZE( id ), L"Printer%u", i );
-        rec->device_id            = heap_strdupW( id );
-        rec->drivername           = heap_strdupW( info[i].pDriverName );
+        rec->device_id            = wcsdup( id );
+        rec->drivername           = wcsdup( info[i].pDriverName );
         rec->horizontalresolution = info[i].pDevMode->u1.s1.dmPrintQuality;
         rec->local                = -1;
-        rec->location             = heap_strdupW( info[i].pLocation );
-        rec->name                 = heap_strdupW( info[i].pPrinterName );
+        rec->location             = wcsdup( info[i].pLocation );
+        rec->name                 = wcsdup( info[i].pPrinterName );
         rec->network              = 0;
-        rec->portname             = heap_strdupW( info[i].pPortName );
+        rec->portname             = wcsdup( info[i].pPortName );
         if (!match_row( table, i, cond, &status ))
         {
             free_row_values( table, i );
@@ -3177,7 +3177,7 @@ static enum fill_status fill_printer( struct table *table, const struct expr *co
 
 static WCHAR *get_cmdline( DWORD process_id )
 {
-    if (process_id == GetCurrentProcessId()) return heap_strdupW( GetCommandLineW() );
+    if (process_id == GetCurrentProcessId()) return wcsdup( GetCommandLineW() );
     return NULL; /* FIXME handle different process case */
 }
 
@@ -3206,12 +3206,12 @@ static enum fill_status fill_process( struct table *table, const struct expr *co
         }
 
         rec = (struct record_process *)(table->data + offset);
-        rec->caption        = heap_strdupW( entry.szExeFile );
+        rec->caption        = wcsdup( entry.szExeFile );
         rec->commandline    = get_cmdline( entry.th32ProcessID );
-        rec->description    = heap_strdupW( entry.szExeFile );
+        rec->description    = wcsdup( entry.szExeFile );
         swprintf( handle, ARRAY_SIZE( handle ), L"%u", entry.th32ProcessID );
-        rec->handle         = heap_strdupW( handle );
-        rec->name           = heap_strdupW( entry.szExeFile );
+        rec->handle         = wcsdup( handle );
+        rec->name           = wcsdup( entry.szExeFile );
         rec->process_id     = entry.th32ProcessID;
         rec->pprocess_id    = entry.th32ParentProcessID;
         rec->thread_count   = entry.cntThreads;
@@ -3393,25 +3393,25 @@ static enum fill_status fill_processor( struct table *table, const struct expr *
         rec = (struct record_processor *)(table->data + offset);
         rec->addresswidth           = !wcscmp( get_osarchitecture(), L"32-bit" ) ? 32 : 64;
         rec->architecture           = !wcscmp( get_osarchitecture(), L"32-bit" ) ? 0 : 9;
-        rec->caption                = heap_strdupW( caption );
+        rec->caption                = wcsdup( caption );
         rec->cpu_status             = 1; /* CPU Enabled */
         rec->currentclockspeed      = get_processor_currentclockspeed( i );
         rec->datawidth              = !wcscmp( get_osarchitecture(), L"32-bit" ) ? 32 : 64;
-        rec->description            = heap_strdupW( caption );
+        rec->description            = wcsdup( caption );
         swprintf( device_id, ARRAY_SIZE( device_id ), L"CPU%u", i );
-        rec->device_id              = heap_strdupW( device_id );
+        rec->device_id              = wcsdup( device_id );
         rec->family                 = 2; /* Unknown */
         rec->level                  = 15;
-        rec->manufacturer           = heap_strdupW( manufacturer );
+        rec->manufacturer           = wcsdup( manufacturer );
         rec->maxclockspeed          = get_processor_maxclockspeed( i );
-        rec->name                   = heap_strdupW( name );
+        rec->name                   = wcsdup( name );
         rec->num_cores              = num_physical / num_packages;
         rec->num_logical_processors = num_logical / num_packages;
-        rec->processor_id           = heap_strdupW( processor_id );
+        rec->processor_id           = wcsdup( processor_id );
         rec->processortype          = 3; /* central processor */
         rec->revision               = get_processor_revision();
         rec->unique_id              = NULL;
-        rec->version                = heap_strdupW( version );
+        rec->version                = wcsdup( version );
         if (!match_row( table, i, cond, &status ))
         {
             free_row_values( table, i );
@@ -3575,7 +3575,7 @@ static WCHAR *get_osserialnumber(void)
         }
     }
     if (hkey) RegCloseKey( hkey );
-    if (!ret) return heap_strdupW( L"12345-OEM-1234567-12345" );
+    if (!ret) return wcsdup( L"12345-OEM-1234567-12345" );
     return ret;
 }
 static WCHAR *get_osversion( OSVERSIONINFOEXW *ver )
@@ -3616,7 +3616,7 @@ static enum fill_status fill_operatingsystem( struct table *table, const struct
     rec->caption                = get_oscaption( &ver );
     rec->codeset                = get_codeset();
     rec->countrycode            = get_countrycode();
-    rec->csdversion             = ver.szCSDVersion[0] ? heap_strdupW( ver.szCSDVersion ) : NULL;
+    rec->csdversion             = ver.szCSDVersion[0] ? wcsdup( ver.szCSDVersion ) : NULL;
     rec->csname                 = get_computername();
     rec->currenttimezone        = get_currenttimezone();
     rec->freephysicalmemory     = get_available_physical_memory() / 1024;
@@ -3750,13 +3750,13 @@ static enum fill_status fill_service( struct table *table, const struct expr *co
         rec = (struct record_service *)(table->data + offset);
         rec->accept_pause   = (status->dwControlsAccepted & SERVICE_ACCEPT_PAUSE_CONTINUE) ? -1 : 0;
         rec->accept_stop    = (status->dwControlsAccepted & SERVICE_ACCEPT_STOP) ? -1 : 0;
-        rec->displayname    = heap_strdupW( services[i].lpDisplayName );
-        rec->name           = heap_strdupW( services[i].lpServiceName );
+        rec->displayname    = wcsdup( services[i].lpDisplayName );
+        rec->name           = wcsdup( services[i].lpServiceName );
         rec->process_id     = status->dwProcessId;
         rec->servicetype    = get_service_type( status->dwServiceType );
         rec->startmode      = get_service_startmode( config->dwStartType );
         rec->state          = get_service_state( status->dwCurrentState );
-        rec->systemname     = heap_strdupW( sysnameW );
+        rec->systemname     = wcsdup( sysnameW );
         rec->pause_service  = service_pause_service;
         rec->resume_service = service_resume_service;
         rec->start_service  = service_start_service;
@@ -3783,7 +3783,7 @@ done:
 static WCHAR *get_accountname( LSA_TRANSLATED_NAME *name )
 {
     if (!name || !name->Name.Buffer) return NULL;
-    return heap_strdupW( name->Name.Buffer );
+    return wcsdup( name->Name.Buffer );
 }
 static struct array *get_binaryrepresentation( PSID sid, UINT len )
 {
@@ -3805,7 +3805,7 @@ static struct array *get_binaryrepresentation( PSID sid, UINT len )
 static WCHAR *get_referenceddomainname( LSA_REFERENCED_DOMAIN_LIST *domain )
 {
     if (!domain || !domain->Domains || !domain->Domains->Name.Buffer) return NULL;
-    return heap_strdupW( domain->Domains->Name.Buffer );
+    return wcsdup( domain->Domains->Name.Buffer );
 }
 static const WCHAR *find_sid_str( const struct expr *cond )
 {
@@ -3862,7 +3862,7 @@ static enum fill_status fill_sid( struct table *table, const struct expr *cond )
     rec->accountname            = get_accountname( name );
     rec->binaryrepresentation   = get_binaryrepresentation( sid, len );
     rec->referenceddomainname   = get_referenceddomainname( domain );
-    rec->sid                    = heap_strdupW( str );
+    rec->sid                    = wcsdup( str );
     rec->sidlength              = len;
 
     TRACE("created 1 row\n");
@@ -3891,7 +3891,7 @@ static WCHAR *get_systemenclosure_string( BYTE id, const char *buf, UINT len )
 static WCHAR *get_systemenclosure_manufacturer( const char *buf, UINT len )
 {
     WCHAR *ret = get_systemenclosure_string( 1, buf, len );
-    if (!ret) return heap_strdupW( L"Wine" );
+    if (!ret) return wcsdup( L"Wine" );
     return ret;
 }
 
@@ -4052,25 +4052,25 @@ static enum fill_status fill_videocontroller( struct table *table, const struct
     rec->adapter_ram           = vidmem;
     rec->availability          = 3; /* Running or Full Power */
     rec->config_errorcode      = 0; /* no error */
-    rec->caption               = heap_strdupW( name );
+    rec->caption               = wcsdup( name );
     rec->current_bitsperpixel  = get_bitsperpixel( &hres, &vres );
     rec->current_horizontalres = hres;
     rec->current_refreshrate   = 0; /* default refresh rate */
     rec->current_scanmode      = 2; /* Unknown */
     rec->current_verticalres   = vres;
-    rec->description           = heap_strdupW( name );
+    rec->description           = wcsdup( name );
     rec->device_id             = L"VideoController1";
     rec->driverdate            = L"20220118000000.000000-000";
     rec->driverversion         = L"30.0.14023.3004";
     rec->installeddriver       = get_videocontroller_installeddriver( desc.VendorId );
-    rec->name                  = heap_strdupW( name );
+    rec->name                  = wcsdup( name );
     rec->pnpdevice_id          = get_videocontroller_pnpdeviceid( &desc );
     rec->status                = L"OK";
     rec->videoarchitecture     = 2; /* Unknown */
     rec->videomemorytype       = 2; /* Unknown */
     swprintf( mode, ARRAY_SIZE( mode ), L"%u x %u x %I64u colors", hres, vres, (UINT64)1 << rec->current_bitsperpixel );
-    rec->videomodedescription  = heap_strdupW( mode );
-    rec->videoprocessor        = heap_strdupW( name );
+    rec->videomodedescription  = wcsdup( mode );
+    rec->videoprocessor        = wcsdup( name );
     if (!match_row( table, row, cond, &status )) free_row_values( table, row );
     else row++;
 
diff --git a/dlls/wbemprox/class.c b/dlls/wbemprox/class.c
index 37150769816..d9848986044 100644
--- a/dlls/wbemprox/class.c
+++ b/dlls/wbemprox/class.c
@@ -783,7 +783,7 @@ static HRESULT create_signature_columns_and_data( IEnumWbemClassObject *iter, UI
 
         hr = IWbemClassObject_Get( param, L"Parameter", 0, &val, NULL, NULL );
         if (hr != S_OK) goto error;
-        columns[i].name = heap_strdupW( V_BSTR( &val ) );
+        columns[i].name = wcsdup( V_BSTR( &val ) );
         VariantClear( &val );
 
         hr = IWbemClassObject_Get( param, L"Type", 0, &val, NULL, NULL );
@@ -1068,7 +1068,7 @@ HRESULT create_class_object( enum wbm_namespace ns, const WCHAR *name, IEnumWbem
     co->IWbemClassObject_iface.lpVtbl = &class_object_vtbl;
     co->refs  = 1;
     if (!name) co->name = NULL;
-    else if (!(co->name = heap_strdupW( name )))
+    else if (!(co->name = wcsdup( name )))
     {
         free( co );
         return E_OUTOFMEMORY;
diff --git a/dlls/wbemprox/qualifier.c b/dlls/wbemprox/qualifier.c
index 826c48e9d93..9a8947ede80 100644
--- a/dlls/wbemprox/qualifier.c
+++ b/dlls/wbemprox/qualifier.c
@@ -282,13 +282,13 @@ HRESULT WbemQualifierSet_create( enum wbm_namespace ns, const WCHAR *class, cons
     if (!(set = malloc( sizeof(*set) ))) return E_OUTOFMEMORY;
 
     set->IWbemQualifierSet_iface.lpVtbl = &qualifier_set_vtbl;
-    if (!(set->class = heap_strdupW( class )))
+    if (!(set->class = wcsdup( class )))
     {
         free( set );
         return E_OUTOFMEMORY;
     }
     if (!member) set->member = NULL;
-    else if (!(set->member = heap_strdupW( member )))
+    else if (!(set->member = wcsdup( member )))
     {
         free( set->class );
         free( set );
diff --git a/dlls/wbemprox/query.c b/dlls/wbemprox/query.c
index d02ae82420c..8233d35878d 100644
--- a/dlls/wbemprox/query.c
+++ b/dlls/wbemprox/query.c
@@ -1298,7 +1298,7 @@ static struct array *to_array( VARIANT *var, CIMTYPE *type )
                 destroy_array( ret, basetype );
                 return NULL;
             }
-            *(WCHAR **)ptr = heap_strdupW( str );
+            *(WCHAR **)ptr = wcsdup( str );
             SysFreeString( str );
             if (!*(WCHAR **)ptr)
             {
@@ -1336,7 +1336,7 @@ HRESULT to_longlong( VARIANT *var, LONGLONG *val, CIMTYPE *type )
         *type = CIM_BOOLEAN;
         break;
     case VT_BSTR:
-        *val = (INT_PTR)heap_strdupW( V_BSTR( var ) );
+        *val = (INT_PTR)wcsdup( V_BSTR( var ) );
         if (!*val) return E_OUTOFMEMORY;
         *type = CIM_STRING;
         break;
diff --git a/dlls/wbemprox/services.c b/dlls/wbemprox/services.c
index 9b9e1f37abd..6fc05be9f3c 100644
--- a/dlls/wbemprox/services.c
+++ b/dlls/wbemprox/services.c
@@ -749,7 +749,7 @@ static HRESULT WINAPI wbem_services_ExecQueryAsync(
         free_async( async );
         goto done;
     }
-    if (!(query->str = heap_strdupW( strQuery )))
+    if (!(query->str = wcsdup( strQuery )))
     {
         free_async( async );
         goto done;
@@ -818,7 +818,7 @@ static HRESULT WINAPI wbem_services_ExecNotificationQueryAsync(
         free_async( async );
         goto done;
     }
-    if (!(query->str = heap_strdupW( strQuery )))
+    if (!(query->str = wcsdup( strQuery )))
     {
         free_async( async );
         goto done;
@@ -1152,7 +1152,7 @@ static HRESULT WINAPI wbem_context_SetValue(
     else
     {
         if (!(value = calloc( 1, sizeof(*value) ))) return E_OUTOFMEMORY;
-        if (!(value->name = heap_strdupW( name )))
+        if (!(value->name = wcsdup( name )))
         {
             free( value );
             return E_OUTOFMEMORY;
diff --git a/dlls/wbemprox/table.c b/dlls/wbemprox/table.c
index 005c7678170..34b09bc872f 100644
--- a/dlls/wbemprox/table.c
+++ b/dlls/wbemprox/table.c
@@ -376,7 +376,7 @@ struct table *create_table( const WCHAR *name, UINT num_cols, const struct colum
     struct table *table;
 
     if (!(table = malloc( sizeof(*table) ))) return NULL;
-    table->name               = heap_strdupW( name );
+    table->name               = wcsdup( name );
     table->num_cols           = num_cols;
     table->columns            = columns;
     table->num_rows           = num_rows;
diff --git a/dlls/wbemprox/wbemprox_private.h b/dlls/wbemprox/wbemprox_private.h
index 9e900132419..893fd922e19 100644
--- a/dlls/wbemprox/wbemprox_private.h
+++ b/dlls/wbemprox/wbemprox_private.h
@@ -275,14 +275,6 @@ HRESULT sysrestore_enable(IWbemClassObject *obj, IWbemContext *context, IWbemCla
 HRESULT sysrestore_get_last_status(IWbemClassObject *obj, IWbemContext *context, IWbemClassObject *in, IWbemClassObject **out) DECLSPEC_HIDDEN;
 HRESULT sysrestore_restore(IWbemClassObject *obj, IWbemContext *context, IWbemClassObject *in, IWbemClassObject **out) DECLSPEC_HIDDEN;
 
-static inline WCHAR *heap_strdupW( const WCHAR *src )
-{
-    WCHAR *dst;
-    if (!src) return NULL;
-    if ((dst = malloc( (lstrlenW( src ) + 1) * sizeof(WCHAR) ))) lstrcpyW( dst, src );
-    return dst;
-}
-
 static inline WCHAR *heap_strdupAW( const char *src )
 {
     int len;
-- 
2.35.1




More information about the wine-devel mailing list