From: Alex Henrie alexhenrie24@gmail.com
--- dlls/odbccp32/odbccp32.c | 107 +++++++++++++++++++-------------------- 1 file changed, 53 insertions(+), 54 deletions(-)
diff --git a/dlls/odbccp32/odbccp32.c b/dlls/odbccp32/odbccp32.c index 0025fad7c4b..90875121438 100644 --- a/dlls/odbccp32/odbccp32.c +++ b/dlls/odbccp32/odbccp32.c @@ -31,7 +31,6 @@ #include "winnls.h" #include "sqlext.h" #include "wine/debug.h" -#include "wine/heap.h"
#include "odbcinst.h"
@@ -88,7 +87,7 @@ static void clear_errors(void) num_errors = 0; }
-static inline WCHAR *heap_strdupAtoW(const char *str) +static inline WCHAR *strdupAtoW(const char *str) { LPWSTR ret = NULL;
@@ -96,7 +95,7 @@ static inline WCHAR *heap_strdupAtoW(const char *str) DWORD len;
len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); - ret = heap_alloc(len*sizeof(WCHAR)); + ret = malloc(len * sizeof(WCHAR)); if(ret) MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len); } @@ -125,7 +124,7 @@ static LPWSTR SQLInstall_strdup_multi(LPCSTR str) ;
len = MultiByteToWideChar(CP_ACP, 0, str, p - str, NULL, 0 ); - ret = HeapAlloc(GetProcessHeap(), 0, (len+1)*sizeof(WCHAR)); + ret = malloc((len + 1) * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, str, p - str, ret, len ); ret[len] = 0;
@@ -141,7 +140,7 @@ static LPWSTR SQLInstall_strdup(LPCSTR str) return ret;
len = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0 ); - ret = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR)); + ret = malloc(len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, str, -1, ret, len );
return ret; @@ -182,7 +181,7 @@ static BOOL SQLInstall_narrow(int mode, LPSTR buffer, LPCWSTR str, WORD str_leng { if (len > buffer_length) { - pbuf = HeapAlloc(GetProcessHeap(), 0, len); + pbuf = malloc(len); } else { @@ -212,7 +211,7 @@ static BOOL SQLInstall_narrow(int mode, LPSTR buffer, LPCWSTR str, WORD str_leng } if (pbuf != buffer) { - HeapFree(GetProcessHeap(), 0, pbuf); + free(pbuf); } } else @@ -247,7 +246,7 @@ static HMODULE load_config_driver(const WCHAR *driver) return NULL; }
- filename = HeapAlloc(GetProcessHeap(), 0, size); + filename = malloc(size); if(!filename) { RegCloseKey(hkeydriver); @@ -266,13 +265,13 @@ static HMODULE load_config_driver(const WCHAR *driver)
if(ret != ERROR_SUCCESS) { - HeapFree(GetProcessHeap(), 0, filename); + free(filename); push_error(ODBC_ERROR_COMPONENT_NOT_FOUND, odbc_error_component_not_found); return NULL; }
hmod = LoadLibraryExW(filename, NULL, LOAD_LIBRARY_SEARCH_DLL_LOAD_DIR | LOAD_LIBRARY_SEARCH_DEFAULT_DIRS); - HeapFree(GetProcessHeap(), 0, filename); + free(filename);
if(!hmod) push_error(ODBC_ERROR_LOAD_LIB_FAILED, odbc_error_load_lib_failed); @@ -295,7 +294,7 @@ static BOOL write_config_value(const WCHAR *driver, const WCHAR *args) { WCHAR *divider, *value;
- name = heap_alloc( (lstrlenW(args) + 1) * sizeof(WCHAR)); + name = malloc((wcslen(args) + 1) * sizeof(WCHAR)); if(!name) { push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem); @@ -317,7 +316,7 @@ static BOOL write_config_value(const WCHAR *driver, const WCHAR *args) if(RegSetValueExW(hkeydriver, name, 0, REG_SZ, (BYTE*)value, (lstrlenW(value)+1) * sizeof(WCHAR)) != ERROR_SUCCESS) ERR("Failed to write registry installed key\n"); - heap_free(name); + free(name);
RegCloseKey(hkeydriver); } @@ -333,7 +332,7 @@ static BOOL write_config_value(const WCHAR *driver, const WCHAR *args) fail: RegCloseKey(hkeydriver); RegCloseKey(hkey); - heap_free(name); + free(name);
return FALSE; } @@ -432,7 +431,7 @@ BOOL WINAPI SQLConfigDataSource(HWND hwnd, WORD request, LPCSTR driver, LPCSTR a if (!mapped_request) return FALSE;
- driverW = heap_strdupAtoW(driver); + driverW = strdupAtoW(driver); if (!driverW) { push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem); @@ -442,7 +441,7 @@ BOOL WINAPI SQLConfigDataSource(HWND hwnd, WORD request, LPCSTR driver, LPCSTR a mod = load_config_driver(driverW); if (!mod) { - heap_free(driverW); + free(driverW); return FALSE; }
@@ -465,7 +464,7 @@ BOOL WINAPI SQLConfigDataSource(HWND hwnd, WORD request, LPCSTR driver, LPCSTR a attr = SQLInstall_strdup_multi(attributes); if(attr) ret = pConfigDSNW(hwnd, mapped_request, driverW, attr); - heap_free(attr); + free(attr); } }
@@ -474,7 +473,7 @@ BOOL WINAPI SQLConfigDataSource(HWND hwnd, WORD request, LPCSTR driver, LPCSTR a if (!ret) push_error(ODBC_ERROR_REQUEST_FAILED, odbc_error_request_failed);
- heap_free(driverW); + free(driverW); FreeLibrary(mod);
return ret; @@ -524,7 +523,7 @@ BOOL WINAPI SQLConfigDriver(HWND hwnd, WORD request, LPCSTR driver, TRACE("(%p %d %s %s %p %d %p)\n", hwnd, request, debugstr_a(driver), debugstr_a(args), msg, msgmax, msgout);
- driverW = heap_strdupAtoW(driver); + driverW = strdupAtoW(driver); if(!driverW) { push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem); @@ -533,24 +532,24 @@ BOOL WINAPI SQLConfigDriver(HWND hwnd, WORD request, LPCSTR driver, if(request == ODBC_CONFIG_DRIVER) { BOOL ret = FALSE; - WCHAR *argsW = heap_strdupAtoW(args); + WCHAR *argsW = strdupAtoW(args); if(argsW) { ret = write_config_value(driverW, argsW); - HeapFree(GetProcessHeap(), 0, argsW); + free(argsW); } else { push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem); }
- HeapFree(GetProcessHeap(), 0, driverW); + free(driverW);
return ret; }
hmod = load_config_driver(driverW); - HeapFree(GetProcessHeap(), 0, driverW); + free(driverW); if(!hmod) return FALSE;
@@ -638,7 +637,7 @@ BOOL WINAPI SQLGetInstalledDriversW(WCHAR *buf, WORD size, WORD *sizeout) }
valuelen = 256; - value = heap_alloc(valuelen * sizeof(WCHAR)); + value = malloc(valuelen * sizeof(WCHAR));
size--;
@@ -648,7 +647,7 @@ BOOL WINAPI SQLGetInstalledDriversW(WCHAR *buf, WORD size, WORD *sizeout) res = RegEnumValueW(drivers, index, value, &len, NULL, NULL, NULL, NULL); while (res == ERROR_MORE_DATA) { - value = heap_realloc(value, ++len * sizeof(WCHAR)); + value = realloc(value, ++len * sizeof(WCHAR)); res = RegEnumValueW(drivers, index, value, &len, NULL, NULL, NULL, NULL); } if (res == ERROR_SUCCESS) @@ -669,7 +668,7 @@ BOOL WINAPI SQLGetInstalledDriversW(WCHAR *buf, WORD size, WORD *sizeout)
buf[written++] = 0;
- heap_free(value); + free(value); RegCloseKey(drivers); if (sizeout) *sizeout = written; @@ -690,7 +689,7 @@ BOOL WINAPI SQLGetInstalledDrivers(char *buf, WORD size, WORD *sizeout) return FALSE; }
- wbuf = heap_alloc(size * sizeof(WCHAR)); + wbuf = malloc(size * sizeof(WCHAR)); if (!wbuf) { push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem); @@ -700,7 +699,7 @@ BOOL WINAPI SQLGetInstalledDrivers(char *buf, WORD size, WORD *sizeout) ret = SQLGetInstalledDriversW(wbuf, size, &written); if (!ret) { - heap_free(wbuf); + free(wbuf); return FALSE; }
@@ -708,7 +707,7 @@ BOOL WINAPI SQLGetInstalledDrivers(char *buf, WORD size, WORD *sizeout) *sizeout = WideCharToMultiByte(CP_ACP, 0, wbuf, written, NULL, 0, NULL, NULL); WideCharToMultiByte(CP_ACP, 0, wbuf, written, buf, size, NULL, NULL);
- heap_free(wbuf); + free(wbuf); return TRUE; }
@@ -825,13 +824,13 @@ int WINAPI SQLGetPrivateProfileString(LPCSTR section, LPCSTR entry, if (!section || !defvalue || !buff) return 0;
- sectionW = heap_strdupAtoW(section); - filenameW = heap_strdupAtoW(filename); + sectionW = strdupAtoW(section); + filenameW = strdupAtoW(filename);
sectionkey = get_privateprofile_sectionkey(sectionW, filenameW);
- heap_free(sectionW); - heap_free(filenameW); + free(sectionW); + free(filenameW);
if (sectionkey) { @@ -999,7 +998,7 @@ static void write_registry_values(const WCHAR *regkey, const WCHAR *driver, cons lstrcmpiW(translator, entry) == 0) { len = lstrlenW(path) + lstrlenW(slash) + lstrlenW(divider) + 1; - value = heap_alloc(len * sizeof(WCHAR)); + value = malloc(len * sizeof(WCHAR)); if(!value) { ERR("Out of memory\n"); @@ -1013,14 +1012,14 @@ static void write_registry_values(const WCHAR *regkey, const WCHAR *driver, cons else { len = lstrlenW(divider) + 1; - value = heap_alloc(len * sizeof(WCHAR)); + value = malloc(len * sizeof(WCHAR)); lstrcpyW(value, divider); }
if (RegSetValueExW(hkeydriver, entry, 0, REG_SZ, (BYTE*)value, (lstrlenW(value)+1)*sizeof(WCHAR)) != ERROR_SUCCESS) ERR("Failed to write registry data %s %s\n", debugstr_w(entry), debugstr_w(value)); - heap_free(value); + free(value); } else { @@ -1110,8 +1109,8 @@ BOOL WINAPI SQLInstallDriverEx(LPCSTR lpszDriver, LPCSTR lpszPathIn, }
out: - HeapFree(GetProcessHeap(), 0, driver); - HeapFree(GetProcessHeap(), 0, pathin); + free(driver); + free(pathin); return ret; }
@@ -1266,7 +1265,7 @@ SQLRETURN WINAPI SQLInstallerError(WORD iError, DWORD *pfErrorCode, wbuf = 0; if (lpszErrorMsg && cbErrorMsgMax) { - wbuf = HeapAlloc(GetProcessHeap(), 0, cbErrorMsgMax*sizeof(WCHAR)); + wbuf = malloc(cbErrorMsgMax * sizeof(WCHAR)); if (!wbuf) return SQL_ERROR; } @@ -1275,7 +1274,7 @@ SQLRETURN WINAPI SQLInstallerError(WORD iError, DWORD *pfErrorCode, { WORD cbBuf = 0; SQLInstall_narrow(1, lpszErrorMsg, wbuf, cbwbuf+1, cbErrorMsgMax, &cbBuf); - HeapFree(GetProcessHeap(), 0, wbuf); + free(wbuf); if (pcbErrorMsg) *pcbErrorMsg = cbBuf-1; } @@ -1352,8 +1351,8 @@ BOOL WINAPI SQLInstallTranslatorEx(LPCSTR lpszTranslator, LPCSTR lpszPathIn, }
out: - HeapFree(GetProcessHeap(), 0, translator); - HeapFree(GetProcessHeap(), 0, pathin); + free(translator); + free(pathin); return ret; }
@@ -1509,7 +1508,7 @@ BOOL WINAPI SQLRemoveDriver(LPCSTR lpszDriver, BOOL fRemoveDSN,
ret = SQLRemoveDriverW(driver, fRemoveDSN, lpdwUsageCount);
- HeapFree(GetProcessHeap(), 0, driver); + free(driver); return ret; }
@@ -1559,7 +1558,7 @@ BOOL WINAPI SQLRemoveDSNFromIni(LPCSTR lpszDSN) else push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem);
- heap_free(dsn); + free(dsn);
return ret; } @@ -1640,7 +1639,7 @@ BOOL WINAPI SQLRemoveTranslator(LPCSTR lpszTranslator, LPDWORD lpdwUsageCount) translator = SQLInstall_strdup(lpszTranslator); ret = SQLRemoveTranslatorW(translator, lpdwUsageCount);
- HeapFree(GetProcessHeap(), 0, translator); + free(translator); return ret; }
@@ -1759,8 +1758,8 @@ BOOL WINAPI SQLWriteDSNToIni(LPCSTR lpszDSN, LPCSTR lpszDriver) else push_error(ODBC_ERROR_OUT_OF_MEM, odbc_error_out_of_mem);
- heap_free(dsn); - heap_free(driver); + free(dsn); + free(driver);
return ret; } @@ -1836,17 +1835,17 @@ BOOL WINAPI SQLWritePrivateProfileString(LPCSTR lpszSection, LPCSTR lpszEntry, clear_errors(); TRACE("%s %s %s %s\n", lpszSection, lpszEntry, lpszString, lpszFilename);
- sect = heap_strdupAtoW(lpszSection); - entry = heap_strdupAtoW(lpszEntry); - string = heap_strdupAtoW(lpszString); - file = heap_strdupAtoW(lpszFilename); + sect = strdupAtoW(lpszSection); + entry = strdupAtoW(lpszEntry); + string = strdupAtoW(lpszString); + file = strdupAtoW(lpszFilename);
ret = SQLWritePrivateProfileStringW(sect, entry, string, file);
- heap_free(sect); - heap_free(entry); - heap_free(string); - heap_free(file); + free(sect); + free(entry); + free(string); + free(file);
return ret; }