diff options
author | blythe%netscape.com <devnull@localhost> | 2002-02-08 22:33:59 +0000 |
---|---|---|
committer | blythe%netscape.com <devnull@localhost> | 2002-02-08 22:33:59 +0000 |
commit | 7f6cde496dcf591566c7e039dee430ddadca9e62 (patch) | |
tree | e18b7d74a117b86ed87559cd7aa46f12a7d7a7a3 | |
parent | aeac384c51f5ae369dfbb2ddda7f874895e21715 (diff) | |
download | nspr-hg-7f6cde496dcf591566c7e039dee430ddadca9e62.tar.gz |
CreateSemaphoreA handled
-rw-r--r-- | pr/include/md/_win32_unicode.h | 9 | ||||
-rw-r--r-- | pr/src/md/windows/w32ipcsem.c | 4 | ||||
-rw-r--r-- | pr/src/md/windows/w32unicode.c | 56 |
3 files changed, 60 insertions, 9 deletions
diff --git a/pr/include/md/_win32_unicode.h b/pr/include/md/_win32_unicode.h index 4d56f69d..7bf9396c 100644 --- a/pr/include/md/_win32_unicode.h +++ b/pr/include/md/_win32_unicode.h @@ -113,6 +113,15 @@ _MD_RemoveDirectoryA( LPCSTR lpPathName ); +HANDLE +WINAPI +_MD_CreateSemaphoreA( + IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + IN LONG lInitialCount, + IN LONG lMaximumCount, + IN LPCSTR lpName + ); + #endif /* WINCE */ #endif /* nspr_win32_unicode_h___ */ diff --git a/pr/src/md/windows/w32ipcsem.c b/pr/src/md/windows/w32ipcsem.c index 521cb732..1e9eade6 100644 --- a/pr/src/md/windows/w32ipcsem.c +++ b/pr/src/md/windows/w32ipcsem.c @@ -147,7 +147,7 @@ PRSem *_PR_MD_OPEN_SEMAPHORE( #if !defined(WINCE) sem->sem = CreateSemaphore(lpSA, value, 0x7fffffff, osname); #else - sem->sem = CreateSemaphoreA(lpSA, value, 0x7fffffff, osname); + sem->sem = _MD_CreateSemaphoreA(lpSA, value, 0x7fffffff, osname); #endif if (lpSA != NULL) { _PR_NT_FreeSecurityDescriptorACL(pSD, pACL); @@ -189,7 +189,7 @@ PRSem *_PR_MD_OPEN_SEMAPHORE( * We create the semaphore. If it existed previouisly, the * state is signaled by GetLastError.... */ - sem->sem = CreateSemaphoreA(lpSA, 0, 0x7fffffff, osname); + sem->sem = _MD_CreateSemaphoreA(lpSA, 0, 0x7fffffff, osname); if(NULL != sem->sem) { DWORD lastErr = GetLastError(); diff --git a/pr/src/md/windows/w32unicode.c b/pr/src/md/windows/w32unicode.c index 85f47241..cef4021c 100644 --- a/pr/src/md/windows/w32unicode.c +++ b/pr/src/md/windows/w32unicode.c @@ -138,13 +138,17 @@ OutputDebugStringA( LPCSTR lpOutputString ) { - LPWSTR str = NULL; + LPWSTR wideStr = NULL; - str = _PR_MD_MALLOC_A2W(lpOutputString); - if(NULL != str) + wideStr = _PR_MD_MALLOC_A2W(lpOutputString); + if(NULL == lpOutputString || NULL != wideStr) { - OutputDebugStringW(str); - PR_Free(str); + OutputDebugStringW(wideStr); + + if(NULL != wideStr) + { + PR_Free(wideStr); + } } else { @@ -194,7 +198,7 @@ CreateProcessA ( LPWSTR wideImageName = NULL; wideImageName = _PR_MD_MALLOC_A2W(pszImageName); - if(NULL != wideImageName) + if(NULL == pszImageName || NULL != wideImageName) { LPWSTR wideCmdLine = NULL; @@ -227,7 +231,10 @@ CreateProcessA ( PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); } - PR_Free(wideImageName); + if(NULL != wideImageName) + { + PR_Free(wideImageName); + } } else { @@ -406,4 +413,39 @@ _MD_RemoveDirectoryA( return retval; } +HANDLE +WINAPI +_MD_CreateSemaphoreA( + IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, + IN LONG lInitialCount, + IN LONG lMaximumCount, + IN LPCSTR lpName + ) +{ + HANDLE retval = NULL; + LPWSTR wideStr = NULL; + + wideStr = _PR_MD_MALLOC_A2W(lpName); + if(NULL == lpName || NULL != wideStr) + { + retval = CreateSemaphoreW( + lpSemaphoreAttributes, + lInitialCount, + lMaximumCount, + wideStr + ); + + if(NULL != wideStr) + { + PR_Free(wideStr); + } + } + else + { + PR_SetError(PR_OUT_OF_MEMORY_ERROR, 0); + } + + return retval; +} + #endif /* WINCE */
\ No newline at end of file |