Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
5f728cae
Commit
5f728cae
authored
Jul 24, 2001
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removed HEAP_strdupA.
parent
d8f2c8b6
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
321 additions
and
240 deletions
+321
-240
propsheet.c
dlls/comctl32/propsheet.c
+16
-8
printdrv.c
dlls/gdi/printdrv.c
+6
-2
format_msg.c
dlls/kernel/format_msg.c
+10
-10
setupx_main.c
dlls/setupapi/setupx_main.c
+12
-4
iconcache.c
dlls/shell32/iconcache.c
+7
-3
shelllink.c
dlls/shell32/shelllink.c
+21
-10
lstr.c
dlls/user/lstr.c
+12
-7
afm.c
dlls/wineps/afm.c
+25
-26
escape.c
dlls/wineps/escape.c
+2
-2
init.c
dlls/wineps/init.c
+8
-9
ppd.c
dlls/wineps/ppd.c
+4
-3
truetype.c
dlls/wineps/truetype.c
+3
-4
mci.c
dlls/winmm/mci.c
+34
-14
mmsystem.c
dlls/winmm/mmsystem.c
+4
-2
dos_fs.c
files/dos_fs.c
+4
-2
drive.c
files/drive.c
+21
-14
profile.c
files/profile.c
+45
-39
driver.c
graphics/driver.c
+4
-4
env.c
graphics/env.c
+8
-18
prtdrv.c
graphics/win16drv/prtdrv.c
+2
-1
xfont.c
graphics/x11drv/xfont.c
+11
-7
snoop.c
if1632/snoop.c
+9
-6
heap.h
include/heap.h
+11
-10
module.h
include/module.h
+2
-0
elf.c
loader/elf.c
+11
-11
loadorder.c
loader/loadorder.c
+7
-6
module.c
loader/module.c
+11
-9
int21.c
msdos/int21.c
+2
-2
snoop.c
relay32/snoop.c
+6
-5
clipboard.c
windows/clipboard.c
+3
-2
No files found.
dlls/comctl32/propsheet.c
View file @
5f728cae
...
...
@@ -153,9 +153,10 @@ static BOOL PROPSHEET_CollectSheetInfo(LPCPROPSHEETHEADERA lppsh,
memcpy
(
&
psInfo
->
ppshheader
,
lppsh
,
dwSize
);
if
(
HIWORD
(
lppsh
->
pszCaption
))
psInfo
->
ppshheader
.
pszCaption
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lppsh
->
pszCaption
);
{
psInfo
->
ppshheader
.
pszCaption
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lppsh
->
pszCaption
)
+
1
);
strcpy
(
(
char
*
)
psInfo
->
ppshheader
.
pszCaption
,
lppsh
->
pszCaption
);
}
psInfo
->
nPages
=
lppsh
->
nPages
;
if
(
dwFlags
&
PSH_USEPSTARTPAGE
)
...
...
@@ -1964,14 +1965,21 @@ HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(
memcpy
(
ppsp
,
lpPropSheetPage
,
min
(
lpPropSheetPage
->
dwSize
,
sizeof
(
PROPSHEETPAGEA
)));
if
(
!
(
ppsp
->
dwFlags
&
PSP_DLGINDIRECT
)
&&
HIWORD
(
ppsp
->
u
.
pszTemplate
)
)
ppsp
->
u
.
pszTemplate
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpPropSheetPage
->
u
.
pszTemplate
);
{
ppsp
->
u
.
pszTemplate
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpPropSheetPage
->
u
.
pszTemplate
)
+
1
);
strcpy
(
(
char
*
)
ppsp
->
u
.
pszTemplate
,
lpPropSheetPage
->
u
.
pszTemplate
);
}
if
(
(
ppsp
->
dwFlags
&
PSP_USEICONID
)
&&
HIWORD
(
ppsp
->
u2
.
pszIcon
)
)
ppsp
->
u2
.
pszIcon
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpPropSheetPage
->
u2
.
pszIcon
);
{
ppsp
->
u2
.
pszIcon
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpPropSheetPage
->
u2
.
pszIcon
)
+
1
);
strcpy
(
(
char
*
)
ppsp
->
u2
.
pszIcon
,
lpPropSheetPage
->
u2
.
pszIcon
);
}
if
((
ppsp
->
dwFlags
&
PSP_USETITLE
)
&&
HIWORD
(
ppsp
->
pszTitle
))
ppsp
->
pszTitle
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpPropSheetPage
->
pszTitle
);
{
ppsp
->
pszTitle
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpPropSheetPage
->
pszTitle
)
+
1
);
strcpy
(
(
char
*
)
ppsp
->
pszTitle
,
lpPropSheetPage
->
pszTitle
);
}
else
if
(
!
(
ppsp
->
dwFlags
&
PSP_USETITLE
)
)
ppsp
->
pszTitle
=
NULL
;
...
...
dlls/gdi/printdrv.c
View file @
5f728cae
...
...
@@ -570,9 +570,13 @@ HPJOB16 WINAPI OpenJob16(LPCSTR lpOutput, LPCSTR lpTitle, HDC16 hDC)
hHandle
=
1
;
pPrintJob
->
pszOutput
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpOutput
);
pPrintJob
->
pszOutput
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpOutput
)
+
1
);
strcpy
(
pPrintJob
->
pszOutput
,
lpOutput
);
if
(
lpTitle
)
pPrintJob
->
pszTitle
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpTitle
);
{
pPrintJob
->
pszTitle
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpTitle
)
+
1
);
strcpy
(
pPrintJob
->
pszTitle
,
lpTitle
);
}
pPrintJob
->
hDC
=
hDC
;
pPrintJob
->
fd
=
fd
;
pPrintJob
->
nIndex
=
0
;
...
...
dlls/kernel/format_msg.c
View file @
5f728cae
...
...
@@ -165,8 +165,10 @@ DWORD WINAPI FormatMessageA(
if
(
width
&&
width
!=
FORMAT_MESSAGE_MAX_WIDTH_MASK
)
FIXME
(
"line wrapping (%lu) not supported.
\n
"
,
width
);
from
=
NULL
;
if
(
dwFlags
&
FORMAT_MESSAGE_FROM_STRING
)
{
from
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
(
LPSTR
)
lpSource
);
if
(
dwFlags
&
FORMAT_MESSAGE_FROM_STRING
)
{
from
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
((
LPSTR
)
lpSource
)
+
1
);
strcpy
(
from
,
(
LPSTR
)
lpSource
);
}
else
{
if
(
dwFlags
&
FORMAT_MESSAGE_FROM_SYSTEM
)
...
...
@@ -257,10 +259,9 @@ DWORD WINAPI FormatMessageA(
f
+=
strlen
(
f
);
/*at \0*/
}
}
else
{
if
(
!
args
)
break
;
else
fmtstr
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
"%s"
);
if
(
!
args
)
break
;
fmtstr
=
HeapAlloc
(
GetProcessHeap
(),
0
,
3
);
strcpy
(
fmtstr
,
"%s"
);
}
if
(
args
)
{
int
sz
;
...
...
@@ -482,10 +483,9 @@ DWORD WINAPI FormatMessageW(
f
+=
strlen
(
f
);
/*at \0*/
}
}
else
{
if
(
!
args
)
break
;
else
fmtstr
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
"%s"
);
if
(
!
args
)
break
;
fmtstr
=
HeapAlloc
(
GetProcessHeap
(),
0
,
3
);
strcpy
(
fmtstr
,
"%s"
);
}
if
(
dwFlags
&
FORMAT_MESSAGE_ARGUMENT_ARRAY
)
argliststart
=
args
+
insertnr
-
1
;
...
...
dlls/setupapi/setupx_main.c
View file @
5f728cae
...
...
@@ -49,7 +49,6 @@
#include "setupx16.h"
#include "setupapi_private.h"
#include "winerror.h"
#include "heap.h"
#include "debugtools.h"
DEFAULT_DEBUG_CHANNEL
(
setupapi
);
...
...
@@ -723,11 +722,20 @@ RETERR16 WINAPI CtlSetLdd16(LPLOGDISKDESC pldd)
memcpy
(
pCurrLDD
,
pldd
,
sizeof
(
LOGDISKDESC_S
));
if
(
pldd
->
pszPath
)
pCurrLDD
->
pszPath
=
HEAP_strdupA
(
heap
,
0
,
pldd
->
pszPath
);
{
pCurrLDD
->
pszPath
=
HeapAlloc
(
heap
,
0
,
strlen
(
pldd
->
pszPath
)
+
1
);
strcpy
(
pCurrLDD
->
pszPath
,
pldd
->
pszPath
);
}
if
(
pldd
->
pszVolLabel
)
pCurrLDD
->
pszVolLabel
=
HEAP_strdupA
(
heap
,
0
,
pldd
->
pszVolLabel
);
{
pCurrLDD
->
pszVolLabel
=
HeapAlloc
(
heap
,
0
,
strlen
(
pldd
->
pszVolLabel
)
+
1
);
strcpy
(
pCurrLDD
->
pszVolLabel
,
pldd
->
pszVolLabel
);
}
if
(
pldd
->
pszDiskName
)
pCurrLDD
->
pszDiskName
=
HEAP_strdupA
(
heap
,
0
,
pldd
->
pszDiskName
);
{
pCurrLDD
->
pszDiskName
=
HeapAlloc
(
heap
,
0
,
strlen
(
pldd
->
pszDiskName
)
+
1
);
strcpy
(
pCurrLDD
->
pszDiskName
,
pldd
->
pszDiskName
);
}
if
(
is_new
)
/* link into list */
{
...
...
dlls/shell32/iconcache.c
View file @
5f728cae
...
...
@@ -28,7 +28,8 @@ DEFAULT_DEBUG_CHANNEL(shell);
#define INVALID_INDEX -1
typedef
struct
{
LPCSTR
sSourceFile
;
/* file (not path!) containing the icon */
{
LPSTR
sSourceFile
;
/* file (not path!) containing the icon */
DWORD
dwSourceIndex
;
/* index within the file, if it is a resoure ID it will be negated */
DWORD
dwListIndex
;
/* index within the iconlist */
DWORD
dwFlags
;
/* GIL_* flags */
...
...
@@ -64,12 +65,15 @@ INT CALLBACK SIC_CompareEntrys( LPVOID p1, LPVOID p2, LPARAM lparam)
static
INT
SIC_IconAppend
(
LPCSTR
sSourceFile
,
INT
dwSourceIndex
,
HICON
hSmallIcon
,
HICON
hBigIcon
)
{
LPSIC_ENTRY
lpsice
;
INT
ret
,
index
,
index1
;
char
*
path
;
TRACE
(
"%s %i %x %x
\n
"
,
sSourceFile
,
dwSourceIndex
,
hSmallIcon
,
hBigIcon
);
lpsice
=
(
LPSIC_ENTRY
)
SHAlloc
(
sizeof
(
SIC_ENTRY
));
lpsice
->
sSourceFile
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
PathFindFileNameA
(
sSourceFile
));
path
=
PathFindFileNameA
(
sSourceFile
);
lpsice
->
sSourceFile
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
path
)
+
1
);
strcpy
(
lpsice
->
sSourceFile
,
path
);
lpsice
->
dwSourceIndex
=
dwSourceIndex
;
EnterCriticalSection
(
&
SHELL32_SicCS
);
...
...
dlls/shell32/shelllink.c
View file @
5f728cae
...
...
@@ -153,6 +153,17 @@ typedef struct
#define _ICOM_THIS_From_IPersistStream(class, name) class* This = (class*)(((char*)name)-_IPersistStream_Offset);
#define _IPersistStream_From_ICOM_THIS(class, name) class* StreamThis = (class*)(((char*)name)+_IPersistStream_Offset);
/* strdup on the process heap */
inline
static
LPSTR
heap_strdup
(
LPCSTR
str
)
{
INT
len
=
strlen
(
str
)
+
1
;
LPSTR
p
=
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
if
(
p
)
memcpy
(
p
,
str
,
len
);
return
p
;
}
/**************************************************************************
* IPersistFile_QueryInterface
*/
...
...
@@ -481,7 +492,7 @@ inline static char *get_unix_file_name( const char *dos )
char
buffer
[
MAX_PATH
];
if
(
!
wine_get_unix_file_name
(
dos
,
buffer
,
sizeof
(
buffer
)
))
return
NULL
;
return
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buffer
);
return
heap_strdup
(
buffer
);
}
static
BOOL
create_default_icon
(
const
char
*
filename
)
...
...
@@ -501,7 +512,7 @@ static BOOL create_default_icon( const char *filename )
/* extract an icon from an exe or icon file; helper for IPersistFile_fnSave */
static
char
*
extract_icon
(
const
char
*
path
,
int
index
)
{
char
*
filename
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
tmpnam
(
NULL
)
);
char
*
filename
=
heap_strdup
(
tmpnam
(
NULL
)
);
if
(
ExtractFromEXEDLL
(
path
,
index
,
filename
))
return
filename
;
if
(
ExtractFromICO
(
path
,
filename
))
return
filename
;
if
(
create_default_icon
(
filename
))
return
filename
;
...
...
@@ -545,12 +556,12 @@ static HRESULT WINAPI IPersistFile_fnSave(IPersistFile* iface, LPCOLESTR pszFile
RegCloseKey
(
hkey
);
}
if
(
!*
buffer
)
return
NOERROR
;
shell_link_app
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buffer
);
shell_link_app
=
heap_strdup
(
buffer
);
if
(
!
WideCharToMultiByte
(
CP_ACP
,
0
,
pszFileName
,
-
1
,
buffer
,
sizeof
(
buffer
),
NULL
,
NULL
))
return
ERROR_UNKNOWN
;
GetFullPathNameA
(
buffer
,
sizeof
(
buff2
),
buff2
,
NULL
);
filename
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buff2
);
filename
=
heap_strdup
(
buff2
);
if
(
SHGetSpecialFolderPathA
(
0
,
buffer
,
CSIDL_STARTUP
,
FALSE
))
{
...
...
@@ -797,7 +808,7 @@ static HRESULT WINAPI IPersistStream_fnLoad(
This
->
pPidl
=
ILClone
(
&
lpLinkHeader
->
Pidl
);
SHGetPathFromIDListA
(
&
lpLinkHeader
->
Pidl
,
sTemp
);
This
->
sPath
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
sTemp
);
This
->
sPath
=
heap_strdup
(
sTemp
);
}
This
->
wHotKey
=
lpLinkHeader
->
wHotKey
;
FileTimeToSystemTime
(
&
lpLinkHeader
->
Time1
,
&
This
->
time1
);
...
...
@@ -1033,7 +1044,7 @@ static HRESULT WINAPI IShellLinkA_fnSetDescription(IShellLinkA * iface, LPCSTR p
if
(
This
->
sDescription
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
sDescription
);
if
(
!
(
This
->
sDescription
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszName
)))
if
(
!
(
This
->
sDescription
=
heap_strdup
(
pszName
)))
return
E_OUTOFMEMORY
;
return
NOERROR
;
...
...
@@ -1056,7 +1067,7 @@ static HRESULT WINAPI IShellLinkA_fnSetWorkingDirectory(IShellLinkA * iface, LPC
if
(
This
->
sWorkDir
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
sWorkDir
);
if
(
!
(
This
->
sWorkDir
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszDir
)))
if
(
!
(
This
->
sWorkDir
=
heap_strdup
(
pszDir
)))
return
E_OUTOFMEMORY
;
return
NOERROR
;
...
...
@@ -1079,7 +1090,7 @@ static HRESULT WINAPI IShellLinkA_fnSetArguments(IShellLinkA * iface, LPCSTR psz
if
(
This
->
sArgs
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
sArgs
);
if
(
!
(
This
->
sArgs
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszArgs
)))
if
(
!
(
This
->
sArgs
=
heap_strdup
(
pszArgs
)))
return
E_OUTOFMEMORY
;
return
NOERROR
;
...
...
@@ -1138,7 +1149,7 @@ static HRESULT WINAPI IShellLinkA_fnSetIconLocation(IShellLinkA * iface, LPCSTR
if
(
This
->
sIcoPath
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
sIcoPath
);
if
(
!
(
This
->
sIcoPath
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszIconPath
)))
if
(
!
(
This
->
sIcoPath
=
heap_strdup
(
pszIconPath
)))
return
E_OUTOFMEMORY
;
This
->
iIcoNdx
=
iIcon
;
...
...
@@ -1166,7 +1177,7 @@ static HRESULT WINAPI IShellLinkA_fnSetPath(IShellLinkA * iface, LPCSTR pszFile)
if
(
This
->
sPath
)
HeapFree
(
GetProcessHeap
(),
0
,
This
->
sPath
);
if
(
!
(
This
->
sPath
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszFile
)))
if
(
!
(
This
->
sPath
=
heap_strdup
(
pszFile
)))
return
E_OUTOFMEMORY
;
return
NOERROR
;
...
...
dlls/user/lstr.c
View file @
5f728cae
...
...
@@ -22,7 +22,6 @@
#include "wine/unicode.h"
#include "wine/winbase16.h"
#include "wine/winuser16.h"
#include "heap.h"
#include "debugtools.h"
...
...
@@ -602,7 +601,11 @@ DWORD WINAPI FormatMessage16(
FIXME
(
"line wrapping (%lu) not supported.
\n
"
,
width
);
from
=
NULL
;
if
(
dwFlags
&
FORMAT_MESSAGE_FROM_STRING
)
from
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
MapSL
(
lpSource
));
{
char
*
source
=
MapSL
(
lpSource
);
from
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
source
)
+
1
);
strcpy
(
from
,
source
);
}
if
(
dwFlags
&
FORMAT_MESSAGE_FROM_SYSTEM
)
{
from
=
HeapAlloc
(
GetProcessHeap
(),
0
,
200
);
sprintf
(
from
,
"Systemmessage, messageid = 0x%08x
\n
"
,
dwMessageId
);
...
...
@@ -673,11 +676,13 @@ DWORD WINAPI FormatMessage16(
sprintf
(
fmtstr
,
"%%%s"
,
f
);
f
+=
strlen
(
f
);
/*at \0*/
}
}
else
if
(
!
args
)
break
;
else
fmtstr
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
"%s"
);
}
else
{
if
(
!
args
)
break
;
fmtstr
=
HeapAlloc
(
GetProcessHeap
(),
0
,
3
);
strcpy
(
fmtstr
,
"%s"
);
}
if
(
args
)
{
int
sz
;
LPSTR
b
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sz
=
100
);
...
...
dlls/wineps/afm.c
View file @
5f728cae
...
...
@@ -20,7 +20,6 @@
#include "winreg.h"
#include "psdrv.h"
#include "debugtools.h"
#include "heap.h"
DEFAULT_DEBUG_CHANNEL
(
psdrv
);
#include <ctype.h>
...
...
@@ -282,23 +281,23 @@ static const AFM *PSDRV_AFMParse(char const *file)
value
++
;
if
(
!
strncmp
(
"FontName"
,
buf
,
8
))
{
afm
->
FontName
=
font_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
value
);
if
(
afm
->
FontName
==
NULL
)
if
(
!
(
afm
->
FontName
=
font_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
value
)
+
1
)))
goto
cleanup_fp
;
strcpy
(
(
char
*
)
afm
->
FontName
,
value
);
continue
;
}
if
(
!
strncmp
(
"FullName"
,
buf
,
8
))
{
afm
->
FullName
=
full_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
value
);
if
(
afm
->
FullName
==
NULL
)
if
(
!
(
afm
->
FullName
=
full_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
value
)
+
1
)))
goto
cleanup_fp
;
strcpy
(
(
char
*
)
afm
->
FullName
,
value
);
continue
;
}
if
(
!
strncmp
(
"FamilyName"
,
buf
,
10
))
{
afm
->
FamilyName
=
family_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
value
);
if
(
afm
->
FamilyName
==
NULL
)
goto
cleanup_fp
;
if
(
!
(
afm
->
FamilyName
=
family_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
value
)
+
1
)))
goto
cleanup_fp
;
strcpy
(
(
char
*
)
afm
->
FamilyName
,
value
)
;
continue
;
}
...
...
@@ -381,10 +380,9 @@ static const AFM *PSDRV_AFMParse(char const *file)
}
if
(
!
strncmp
(
"EncodingScheme"
,
buf
,
14
))
{
afm
->
EncodingScheme
=
encoding_scheme
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
value
);
if
(
afm
->
EncodingScheme
==
NULL
)
goto
cleanup_fp
;
if
(
!
(
afm
->
EncodingScheme
=
encoding_scheme
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
value
)
+
1
)))
goto
cleanup_fp
;
strcpy
(
(
char
*
)
afm
->
EncodingScheme
,
value
);
continue
;
}
...
...
@@ -398,21 +396,23 @@ static const AFM *PSDRV_AFMParse(char const *file)
if
(
afm
->
FontName
==
NULL
)
{
WARN
(
"%s contains no FontName.
\n
"
,
file
);
afm
->
FontName
=
font_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
"nofont"
);
if
(
afm
->
FontName
==
NULL
)
if
(
!
(
afm
->
FontName
=
font_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
7
)))
goto
cleanup
;
strcpy
(
(
char
*
)
afm
->
FontName
,
"nofont"
);
}
if
(
afm
->
FullName
==
NULL
)
afm
->
FullName
=
full_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
afm
->
FontName
);
{
if
(
!
(
afm
->
FullName
=
full_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
afm
->
FontName
)
+
1
)))
goto
cleanup
;
strcpy
(
(
char
*
)
afm
->
FullName
,
afm
->
FontName
);
}
if
(
afm
->
FamilyName
==
NULL
)
afm
->
FamilyName
=
family_name
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
afm
->
FontName
);
if
(
afm
->
FullName
==
NULL
||
afm
->
FamilyName
==
NULL
)
goto
cleanup
;
{
if
(
!
(
afm
->
FamilyName
=
family_name
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
afm
->
FontName
)
+
1
)))
goto
cleanup
;
strcpy
(
(
char
*
)
afm
->
FamilyName
,
afm
->
FontName
);
}
if
(
afm
->
Ascender
==
0
.
0
)
afm
->
Ascender
=
afm
->
FontBBox
.
ury
;
if
(
afm
->
Descender
==
0
.
0
)
...
...
@@ -528,13 +528,12 @@ BOOL PSDRV_AddAFMtoList(FONTFAMILY **head, const AFM *afm)
return
FALSE
;
}
*
insert
=
family
;
family
->
FamilyName
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
afm
->
FamilyName
);
if
(
family
->
FamilyName
==
NULL
)
{
if
(
!
(
family
->
FamilyName
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
afm
->
FamilyName
)
+
1
)))
{
HeapFree
(
PSDRV_Heap
,
0
,
family
);
HeapFree
(
PSDRV_Heap
,
0
,
newafmle
);
return
FALSE
;
}
strcpy
(
family
->
FamilyName
,
afm
->
FamilyName
);
family
->
afmlist
=
newafmle
;
return
TRUE
;
}
...
...
dlls/wineps/escape.c
View file @
5f728cae
...
...
@@ -9,7 +9,6 @@
#include "psdrv.h"
#include "debugtools.h"
#include "winspool.h"
#include "heap.h"
DEFAULT_DEBUG_CHANNEL
(
psdrv
);
...
...
@@ -403,7 +402,8 @@ INT PSDRV_StartDoc( DC *dc, const DOCINFOA *doc )
if
(
doc
->
lpszOutput
)
{
HeapFree
(
PSDRV_Heap
,
0
,
physDev
->
job
.
output
);
physDev
->
job
.
output
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
doc
->
lpszOutput
);
physDev
->
job
.
output
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
doc
->
lpszOutput
)
+
1
);
strcpy
(
physDev
->
job
.
output
,
doc
->
lpszOutput
);
}
physDev
->
job
.
hJob
=
OpenJob16
(
physDev
->
job
.
output
,
doc
->
lpszDocName
,
dc
->
hSelf
);
...
...
dlls/wineps/init.c
View file @
5f728cae
...
...
@@ -14,7 +14,6 @@
#include "gdi.h"
#include "psdrv.h"
#include "debugtools.h"
#include "heap.h"
#include "winreg.h"
#include "winspool.h"
#include "winerror.h"
...
...
@@ -426,9 +425,10 @@ static BOOL PSDRV_CreateDC( DC *dc, LPCSTR driver, LPCSTR device,
dc
->
devCaps
->
vertRes
);
dc
->
hFont
=
PSDRV_DefaultFont
;
physDev
->
job
.
output
=
output
?
HEAP_strdupA
(
PSDRV_Heap
,
0
,
output
)
:
HEAP_strdupA
(
PSDRV_Heap
,
0
,
"LPT1:"
);
/* HACK */
if
(
!
output
)
output
=
"LPT1:"
;
/* HACK */
physDev
->
job
.
output
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
output
)
+
1
);
strcpy
(
physDev
->
job
.
output
,
output
);
physDev
->
job
.
hJob
=
0
;
return
TRUE
;
}
...
...
@@ -481,11 +481,10 @@ PRINTERINFO *PSDRV_FindPrinterInfo(LPCSTR name)
pi
=
*
last
=
HeapAlloc
(
PSDRV_Heap
,
HEAP_ZERO_MEMORY
,
sizeof
(
*
pi
)
);
if
(
pi
==
NULL
)
return
NULL
;
pi
->
FriendlyName
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
name
);
if
(
pi
->
FriendlyName
==
NULL
)
goto
fail
;
if
(
!
(
pi
->
FriendlyName
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
name
)
+
1
)))
goto
fail
;
strcpy
(
pi
->
FriendlyName
,
name
);
/* Use Get|SetPrinterDataExA instead? */
res
=
DrvGetPrinterData16
((
LPSTR
)
name
,
(
LPSTR
)
INT_PD_DEFAULT_DEVMODE
,
&
type
,
...
...
dlls/wineps/ppd.c
View file @
5f728cae
...
...
@@ -9,7 +9,6 @@
#include <stdio.h>
#include <ctype.h>
#include "winnt.h"
/* HEAP_ZERO_MEMORY */
#include "heap.h"
#include "debugtools.h"
#include "psdrv.h"
#include "winspool.h"
...
...
@@ -650,8 +649,10 @@ PPD *PSDRV_ParsePPD(char *fname)
if
(
tuple
.
opttrans
)
{
page
->
FullName
=
tuple
.
opttrans
;
tuple
.
opttrans
=
NULL
;
}
else
{
page
->
FullName
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
page
->
Name
);
}
else
{
page
->
FullName
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
page
->
Name
)
+
1
);
strcpy
(
page
->
FullName
,
page
->
Name
);
}
}
if
(
!
page
->
InvocationString
)
{
...
...
dlls/wineps/truetype.c
View file @
5f728cae
...
...
@@ -43,7 +43,6 @@
#include "winreg.h"
#include "psdrv.h"
#include "debugtools.h"
#include "heap.h"
DEFAULT_DEBUG_CHANNEL
(
psdrv
);
...
...
@@ -126,10 +125,10 @@ static BOOL FindCharMap(AFM *afm, AFMSTRINGS *str)
if
(
charmap
->
encoding_id
<
7
)
{
str
->
EncodingScheme
=
HEAP_strdupA
(
PSDRV_Heap
,
0
,
encoding_names
[
charmap
->
encoding_id
]);
if
(
str
->
EncodingScheme
==
NULL
)
if
(
!
(
str
->
EncodingScheme
=
HeapAlloc
(
PSDRV_Heap
,
0
,
strlen
(
encoding_names
[
charmap
->
encoding_id
])
+
1
)))
return
FALSE
;
strcpy
(
str
->
EncodingScheme
,
encoding_names
[
charmap
->
encoding_id
]
);
}
else
{
...
...
dlls/winmm/mci.c
View file @
5f728cae
...
...
@@ -44,6 +44,19 @@ static MCI_MapType MCI_UnMapMsg32ATo16(WORD uDevType, WORD wMsg, DWORD dwFlags,
/* First MCI valid device ID (0 means error) */
#define MCI_MAGIC 0x0001
/* dup a string and uppercase it */
inline
static
LPSTR
str_dup_upper
(
LPCSTR
str
)
{
INT
len
=
strlen
(
str
)
+
1
;
LPSTR
p
=
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
if
(
p
)
{
memcpy
(
p
,
str
,
len
);
CharUpperA
(
p
);
}
return
p
;
}
/**************************************************************************
* MCI_GetDriver [internal]
*/
...
...
@@ -464,7 +477,7 @@ static BOOL MCI_OpenMciDriver(LPWINE_MCIDRIVER wmd, LPCSTR drvTyp, LPARAM lp)
static
DWORD
MCI_LoadMciDriver
(
LPWINE_MM_IDATA
iData
,
LPCSTR
_strDevTyp
,
LPWINE_MCIDRIVER
*
lpwmd
)
{
LPSTR
strDevTyp
=
CharUpperA
(
HEAP_strdupA
(
GetProcessHeap
(),
0
,
_strDevTyp
)
);
LPSTR
strDevTyp
=
str_dup_upper
(
_strDevTyp
);
LPWINE_MCIDRIVER
wmd
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
wmd
));
MCI_OPEN_DRIVER_PARMSA
modp
;
DWORD
dwRet
=
0
;
...
...
@@ -538,12 +551,15 @@ static DWORD MCI_FinishOpen(LPWINE_MCIDRIVER wmd, LPMCI_OPEN_PARMSA lpParms,
DWORD
dwParam
)
{
if
(
dwParam
&
MCI_OPEN_ELEMENT
)
wmd
->
lpstrElementName
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpParms
->
lpstrElementName
);
{
wmd
->
lpstrElementName
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpParms
->
lpstrElementName
)
+
1
);
strcpy
(
wmd
->
lpstrElementName
,
lpParms
->
lpstrElementName
);
}
if
(
dwParam
&
MCI_OPEN_ALIAS
)
wmd
->
lpstrAlias
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpParms
->
lpstrAlias
);
{
wmd
->
lpstrAlias
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpParms
->
lpstrAlias
)
+
1
);
strcpy
(
wmd
->
lpstrAlias
,
lpParms
->
lpstrAlias
);
}
lpParms
->
wDeviceID
=
wmd
->
wDeviceID
;
return
MCI_SendCommandFrom32
(
wmd
->
wDeviceID
,
MCI_OPEN_DRIVER
,
dwParam
,
...
...
@@ -855,8 +871,9 @@ DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet,
TRACE
(
"('%s', %p, %d, %X)
\n
"
,
lpstrCommand
,
lpstrRet
,
uRetLen
,
hwndCallback
);
/* format is <command> <device> <optargs> */
if
(
!
(
verb
=
H
EAP_strdupA
(
GetProcessHeap
(),
0
,
lpstrCommand
)))
if
(
!
(
verb
=
H
eapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpstrCommand
)
+
1
)))
return
MCIERR_OUT_OF_MEMORY
;
strcpy
(
verb
,
lpstrCommand
);
memset
(
data
,
0
,
sizeof
(
data
));
...
...
@@ -886,14 +903,14 @@ DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet,
dwFlags
|=
MCI_OPEN_TYPE
;
data
[
2
]
=
(
DWORD
)
devType
;
devType
=
CharUpperA
(
HEAP_strdupA
(
GetProcessHeap
(),
0
,
devType
)
);
devType
=
str_dup_upper
(
devType
);
dwFlags
|=
MCI_OPEN_ELEMENT
;
data
[
3
]
=
(
DWORD
)
dev
;
}
else
if
(
strchr
(
dev
,
'.'
)
==
NULL
)
{
tmp
=
strchr
(
dev
,
' '
);
if
(
tmp
)
*
tmp
=
'\0'
;
data
[
2
]
=
(
DWORD
)
dev
;
devType
=
CharUpperA
(
HEAP_strdupA
(
GetProcessHeap
(),
0
,
dev
)
);
devType
=
str_dup_upper
(
dev
);
if
(
tmp
)
*
tmp
=
' '
;
dwFlags
|=
MCI_OPEN_TYPE
;
}
else
{
...
...
@@ -901,7 +918,7 @@ DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet,
devType
+=
5
;
tmp
=
strchr
(
devType
,
' '
);
if
(
tmp
)
*
tmp
=
'\0'
;
devType
=
CharUpperA
(
HEAP_strdupA
(
GetProcessHeap
(),
0
,
devType
)
);
devType
=
str_dup_upper
(
devType
);
if
(
tmp
)
*
tmp
=
' '
;
/* dwFlags and data[2] will be correctly set in ParseOpt loop */
}
else
{
...
...
@@ -909,17 +926,20 @@ DWORD WINAPI mciSendStringA(LPCSTR lpstrCommand, LPSTR lpstrRet,
if
((
dwRet
=
MCI_GetDevTypeFromFileName
(
dev
,
buf
,
sizeof
(
buf
))))
goto
errCleanUp
;
devType
=
CharUpperA
(
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buf
)
);
devType
=
str_dup_upper
(
buf
);
}
dwFlags
|=
MCI_OPEN_ELEMENT
;
data
[
3
]
=
(
DWORD
)
dev
;
}
if
((
devAlias
=
strstr
(
args
,
" alias "
)))
{
char
*
tmp2
;
devAlias
+=
7
;
tmp
=
strchr
(
devAlias
,
' '
);
if
(
!
(
tmp
=
strchr
(
devAlias
,
' '
)))
tmp
=
devAlias
+
strlen
(
devAlias
);
if
(
tmp
)
*
tmp
=
'\0'
;
data
[
4
]
=
(
DWORD
)
HEAP_strdupA
(
GetProcessHeap
(),
0
,
devAlias
);
if
(
tmp
)
*
tmp
=
' '
;
tmp2
=
HeapAlloc
(
GetProcessHeap
(),
0
,
tmp
-
devAlias
+
1
);
memcpy
(
tmp2
,
devAlias
,
tmp
-
devAlias
);
tmp2
[
tmp
-
devAlias
]
=
0
;
data
[
4
]
=
(
DWORD
)
tmp2
;
/* should be done in regular options parsing */
/* dwFlags |= MCI_OPEN_ALIAS; */
}
...
...
dlls/winmm/mmsystem.c
View file @
5f728cae
...
...
@@ -536,8 +536,10 @@ BOOL WINAPI PlaySoundA(LPCSTR pszSound, HMODULE hmod, DWORD fdwSound)
StrDup
=
NULL
;
}
if
(
!
((
fdwSound
&
SND_MEMORY
)
||
((
fdwSound
&
SND_RESOURCE
)
&&
!
((
DWORD
)
pszSound
>>
16
))
||
!
pszSound
))
{
StrDup
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszSound
);
!
((
DWORD
)
pszSound
>>
16
))
||
!
pszSound
))
{
StrDup
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
pszSound
)
+
1
);
strcpy
(
StrDup
,
pszSound
);
PlaySound_pszSound
=
StrDup
;
}
else
PlaySound_pszSound
=
pszSound
;
PlaySound_Loop
=
fdwSound
&
SND_LOOP
;
...
...
files/dos_fs.c
View file @
5f728cae
...
...
@@ -1607,7 +1607,8 @@ HANDLE WINAPI FindFirstFileExA(
if
(
!
DOSFS_GetFullName
(
lpFileName
,
FALSE
,
&
full_name
))
break
;
if
(
!
(
handle
=
GlobalAlloc
(
GMEM_MOVEABLE
,
sizeof
(
FIND_FIRST_INFO
))))
break
;
info
=
(
FIND_FIRST_INFO
*
)
GlobalLock
(
handle
);
info
->
path
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
long_name
);
info
->
path
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
full_name
.
long_name
)
+
1
);
strcpy
(
info
->
path
,
full_name
.
long_name
);
info
->
long_mask
=
strrchr
(
info
->
path
,
'/'
);
*
(
info
->
long_mask
++
)
=
'\0'
;
info
->
short_mask
=
NULL
;
...
...
@@ -2294,7 +2295,8 @@ HANDLE16 WINAPI FindFirstFile16( LPCSTR path, WIN32_FIND_DATAA *data )
if
(
!
(
handle
=
GlobalAlloc16
(
GMEM_MOVEABLE
,
sizeof
(
FIND_FIRST_INFO
)
)))
return
INVALID_HANDLE_VALUE16
;
info
=
(
FIND_FIRST_INFO
*
)
GlobalLock16
(
handle
);
info
->
path
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
long_name
);
info
->
path
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
full_name
.
long_name
)
+
1
);
strcpy
(
info
->
path
,
full_name
.
long_name
);
info
->
long_mask
=
strrchr
(
info
->
path
,
'/'
);
if
(
info
->
long_mask
)
*
(
info
->
long_mask
++
)
=
'\0'
;
...
...
files/drive.c
View file @
5f728cae
...
...
@@ -108,6 +108,14 @@ static int DRIVE_CurDrive = -1;
static
HTASK16
DRIVE_LastTask
=
0
;
/* strdup on the process heap */
inline
static
char
*
heap_strdup
(
const
char
*
str
)
{
INT
len
=
strlen
(
str
)
+
1
;
LPSTR
p
=
HeapAlloc
(
GetProcessHeap
(),
0
,
len
);
if
(
p
)
memcpy
(
p
,
str
,
len
);
return
p
;
}
/***********************************************************************
* DRIVE_GetDriveType
...
...
@@ -179,9 +187,9 @@ int DRIVE_Init(void)
continue
;
}
drive
->
root
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
path
);
drive
->
dos_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
""
);
drive
->
unix_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
""
);
drive
->
root
=
heap_strdup
(
path
);
drive
->
dos_cwd
=
heap_strdup
(
""
);
drive
->
unix_cwd
=
heap_strdup
(
""
);
drive
->
type
=
DRIVE_GetDriveType
(
name
);
drive
->
device
=
NULL
;
drive
->
flags
=
0
;
...
...
@@ -212,7 +220,7 @@ int DRIVE_Init(void)
buffer
,
sizeof
(
buffer
)
);
if
(
buffer
[
0
])
{
drive
->
device
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buffer
);
drive
->
device
=
heap_strdup
(
buffer
);
if
(
PROFILE_GetWineIniBool
(
name
,
"ReadVolInfo"
,
1
))
drive
->
flags
|=
DRIVE_READ_VOL_INFO
;
}
...
...
@@ -239,9 +247,9 @@ int DRIVE_Init(void)
{
MESSAGE
(
"Warning: no valid DOS drive found, check your configuration file.
\n
"
);
/* Create a C drive pointing to Unix root dir */
DOSDrives
[
2
].
root
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
"/"
);
DOSDrives
[
2
].
dos_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
""
);
DOSDrives
[
2
].
unix_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
""
);
DOSDrives
[
2
].
root
=
heap_strdup
(
"/"
);
DOSDrives
[
2
].
dos_cwd
=
heap_strdup
(
""
);
DOSDrives
[
2
].
unix_cwd
=
heap_strdup
(
""
);
strcpy
(
DOSDrives
[
2
].
label_conf
,
"Drive C "
);
DOSDrives
[
2
].
serial_conf
=
12345678
;
DOSDrives
[
2
].
type
=
DRIVE_FIXED
;
...
...
@@ -694,9 +702,8 @@ int DRIVE_Chdir( int drive, const char *path )
HeapFree
(
GetProcessHeap
(),
0
,
DOSDrives
[
drive
].
dos_cwd
);
HeapFree
(
GetProcessHeap
(),
0
,
DOSDrives
[
drive
].
unix_cwd
);
DOSDrives
[
drive
].
dos_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
short_name
+
3
);
DOSDrives
[
drive
].
unix_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
unix_cwd
);
DOSDrives
[
drive
].
dos_cwd
=
heap_strdup
(
full_name
.
short_name
+
3
);
DOSDrives
[
drive
].
unix_cwd
=
heap_strdup
(
unix_cwd
);
if
(
pTask
&&
(
pTask
->
curdrive
&
0x80
)
&&
((
pTask
->
curdrive
&
~
0x80
)
==
drive
))
...
...
@@ -771,10 +778,10 @@ int DRIVE_SetLogicalMapping ( int existing_drive, int new_drive )
return
0
;
}
new
->
root
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
old
->
root
);
new
->
dos_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
old
->
dos_cwd
);
new
->
unix_cwd
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
old
->
unix_cwd
);
new
->
device
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
old
->
device
);
new
->
root
=
heap_strdup
(
old
->
root
);
new
->
dos_cwd
=
heap_strdup
(
old
->
dos_cwd
);
new
->
unix_cwd
=
heap_strdup
(
old
->
unix_cwd
);
new
->
device
=
heap_strdup
(
old
->
device
);
memcpy
(
new
->
label_conf
,
old
->
label_conf
,
12
);
memcpy
(
new
->
label_read
,
old
->
label_read
,
12
);
new
->
serial_conf
=
old
->
serial_conf
;
...
...
files/profile.c
View file @
5f728cae
...
...
@@ -32,17 +32,17 @@ DEFAULT_DEBUG_CHANNEL(profile);
typedef
struct
tagPROFILEKEY
{
char
*
name
;
char
*
value
;
struct
tagPROFILEKEY
*
next
;
char
name
[
1
];
}
PROFILEKEY
;
typedef
struct
tagPROFILESECTION
{
char
*
name
;
struct
tagPROFILEKEY
*
key
;
struct
tagPROFILESECTION
*
next
;
}
PROFILESECTION
;
char
name
[
1
];
}
PROFILESECTION
;
typedef
struct
...
...
@@ -168,11 +168,9 @@ static void PROFILE_Free( PROFILESECTION *section )
for
(
;
section
;
section
=
next_section
)
{
if
(
section
->
name
)
HeapFree
(
GetProcessHeap
(),
0
,
section
->
name
);
for
(
key
=
section
->
key
;
key
;
key
=
next_key
)
{
next_key
=
key
->
next
;
if
(
key
->
name
)
HeapFree
(
GetProcessHeap
(),
0
,
key
->
name
);
if
(
key
->
value
)
HeapFree
(
GetProcessHeap
(),
0
,
key
->
value
);
HeapFree
(
GetProcessHeap
(),
0
,
key
);
}
...
...
@@ -205,8 +203,8 @@ static PROFILESECTION *PROFILE_Load( FILE *file )
PROFILEKEY
*
key
,
*
prev_key
,
**
next_key
;
first_section
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
section
)
);
if
(
first_section
==
NULL
)
return
NULL
;
first_section
->
name
=
NULL
;
if
(
first_section
==
NULL
)
return
NULL
;
first_section
->
name
[
0
]
=
0
;
first_section
->
key
=
NULL
;
first_section
->
next
=
NULL
;
next_section
=
&
first_section
->
next
;
...
...
@@ -229,9 +227,9 @@ static PROFILESECTION *PROFILE_Load( FILE *file )
{
*
p2
=
'\0'
;
p
++
;
section
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
section
)
);
if
(
section
==
NULL
)
break
;
s
ection
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
p
);
if
(
!
(
section
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
section
)
+
strlen
(
p
)
)))
break
;
s
trcpy
(
section
->
name
,
p
);
section
->
key
=
NULL
;
section
->
next
=
NULL
;
*
next_section
=
section
;
...
...
@@ -258,10 +256,15 @@ static PROFILESECTION *PROFILE_Load( FILE *file )
if
(
*
p
||
!
prev_key
||
*
prev_key
->
name
)
{
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
key
)
);
if
(
key
==
NULL
)
break
;
key
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
p
);
key
->
value
=
p2
?
HEAP_strdupA
(
GetProcessHeap
(),
0
,
p2
)
:
NULL
;
if
(
!
(
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
*
key
)
+
strlen
(
p
)
)))
break
;
strcpy
(
key
->
name
,
p
);
if
(
p2
)
{
key
->
value
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
p2
)
+
1
);
strcpy
(
key
->
value
,
p2
);
}
else
key
->
value
=
NULL
;
key
->
next
=
NULL
;
*
next_key
=
key
;
next_key
=
&
key
->
next
;
...
...
@@ -361,7 +364,7 @@ static BOOL PROFILE_DeleteSection( PROFILESECTION **section, LPCSTR name )
{
while
(
*
section
)
{
if
((
*
section
)
->
name
&&
!
strcasecmp
(
(
*
section
)
->
name
,
name
))
if
((
*
section
)
->
name
[
0
]
&&
!
strcasecmp
(
(
*
section
)
->
name
,
name
))
{
PROFILESECTION
*
to_del
=
*
section
;
*
section
=
to_del
->
next
;
...
...
@@ -385,7 +388,7 @@ static BOOL PROFILE_DeleteKey( PROFILESECTION **section,
{
while
(
*
section
)
{
if
((
*
section
)
->
name
&&
!
strcasecmp
(
(
*
section
)
->
name
,
section_name
))
if
((
*
section
)
->
name
[
0
]
&&
!
strcasecmp
(
(
*
section
)
->
name
,
section_name
))
{
PROFILEKEY
**
key
=
&
(
*
section
)
->
key
;
while
(
*
key
)
...
...
@@ -394,7 +397,6 @@ static BOOL PROFILE_DeleteKey( PROFILESECTION **section,
{
PROFILEKEY
*
to_del
=
*
key
;
*
key
=
to_del
->
next
;
if
(
to_del
->
name
)
HeapFree
(
GetProcessHeap
(),
0
,
to_del
->
name
);
if
(
to_del
->
value
)
HeapFree
(
GetProcessHeap
(),
0
,
to_del
->
value
);
HeapFree
(
GetProcessHeap
(),
0
,
to_del
);
return
TRUE
;
...
...
@@ -418,14 +420,13 @@ void PROFILE_DeleteAllKeys( LPCSTR section_name)
PROFILESECTION
**
section
=
&
CurProfile
->
section
;
while
(
*
section
)
{
if
((
*
section
)
->
name
&&
!
strcasecmp
(
(
*
section
)
->
name
,
section_name
))
if
((
*
section
)
->
name
[
0
]
&&
!
strcasecmp
(
(
*
section
)
->
name
,
section_name
))
{
PROFILEKEY
**
key
=
&
(
*
section
)
->
key
;
while
(
*
key
)
{
PROFILEKEY
*
to_del
=
*
key
;
*
key
=
to_del
->
next
;
if
(
to_del
->
name
)
HeapFree
(
GetProcessHeap
(),
0
,
to_del
->
name
);
if
(
to_del
->
value
)
HeapFree
(
GetProcessHeap
(),
0
,
to_del
->
value
);
HeapFree
(
GetProcessHeap
(),
0
,
to_del
);
CurProfile
->
changed
=
TRUE
;
...
...
@@ -460,7 +461,7 @@ static PROFILEKEY *PROFILE_Find( PROFILESECTION **section,
while
(
*
section
)
{
if
(
((
*
section
)
->
name
)
if
(
((
*
section
)
->
name
[
0
]
)
&&
(
!
(
strncasecmp
(
(
*
section
)
->
name
,
section_name
,
seclen
)))
&&
(((
*
section
)
->
name
)[
seclen
]
==
'\0'
)
)
{
...
...
@@ -473,9 +474,9 @@ static PROFILEKEY *PROFILE_Find( PROFILESECTION **section,
key
=
&
(
*
key
)
->
next
;
}
if
(
!
create
)
return
NULL
;
*
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILEKEY
)
);
if
(
*
key
==
NULL
)
return
NULL
;
(
*
key
)
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
key_name
);
if
(
!
(
*
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILEKEY
)
+
strlen
(
key_name
)
)))
return
NULL
;
strcpy
(
(
*
key
)
->
name
,
key_name
);
(
*
key
)
->
value
=
NULL
;
(
*
key
)
->
next
=
NULL
;
return
*
key
;
...
...
@@ -483,17 +484,17 @@ static PROFILEKEY *PROFILE_Find( PROFILESECTION **section,
section
=
&
(
*
section
)
->
next
;
}
if
(
!
create
)
return
NULL
;
*
section
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILESECTION
)
);
*
section
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILESECTION
)
+
strlen
(
section_name
)
);
if
(
*
section
==
NULL
)
return
NULL
;
(
*
section
)
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
section_name
);
strcpy
(
(
*
section
)
->
name
,
section_name
);
(
*
section
)
->
next
=
NULL
;
(
*
section
)
->
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILEKEY
)
);
if
((
*
section
)
->
key
==
NULL
)
if
(
!
((
*
section
)
->
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
PROFILEKEY
)
+
strlen
(
key_name
)
))
)
{
HeapFree
(
GetProcessHeap
(),
0
,
*
section
);
return
NULL
;
HeapFree
(
GetProcessHeap
(),
0
,
*
section
);
return
NULL
;
}
(
*
section
)
->
key
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
key_name
);
strcpy
(
(
*
section
)
->
key
->
name
,
key_name
);
(
*
section
)
->
key
->
value
=
NULL
;
(
*
section
)
->
key
->
next
=
NULL
;
return
(
*
section
)
->
key
;
...
...
@@ -651,9 +652,11 @@ static BOOL PROFILE_Open( LPCSTR filename )
if
(
CurProfile
->
filename
)
PROFILE_ReleaseFile
();
/* OK, now that CurProfile is definitely free we assign it our new file */
newdos_name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
short_name
);
newdos_name
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
full_name
.
short_name
)
+
1
);
strcpy
(
newdos_name
,
full_name
.
short_name
);
CurProfile
->
dos_name
=
newdos_name
;
CurProfile
->
filename
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
filename
);
CurProfile
->
filename
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
filename
)
+
1
);
strcpy
(
CurProfile
->
filename
,
filename
);
/* Try to open the profile file, first in $HOME/.wine */
...
...
@@ -667,13 +670,14 @@ static BOOL PROFILE_Open( LPCSTR filename )
{
TRACE
(
"(%s): found it in %s
\n
"
,
filename
,
buffer
);
CurProfile
->
unix_name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
buffer
);
CurProfile
->
unix_name
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
buffer
)
+
1
);
strcpy
(
CurProfile
->
unix_name
,
buffer
);
}
if
(
!
file
)
{
CurProfile
->
unix_name
=
H
EAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
long_name
);
CurProfile
->
unix_name
=
H
eapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
full_name
.
long_name
)
+
1
);
strcpy
(
CurProfile
->
unix_name
,
full_name
.
long_name
);
if
((
file
=
fopen
(
full_name
.
long_name
,
"r"
)))
TRACE
(
"(%s): found it in %s
\n
"
,
filename
,
full_name
.
long_name
);
...
...
@@ -711,7 +715,7 @@ static INT PROFILE_GetSection( PROFILESECTION *section, LPCSTR section_name,
while
(
section
)
{
if
(
section
->
name
&&
!
strcasecmp
(
section
->
name
,
section_name
))
if
(
section
->
name
[
0
]
&&
!
strcasecmp
(
section
->
name
,
section_name
))
{
UINT
oldlen
=
len
;
for
(
key
=
section
->
key
;
key
;
key
=
key
->
next
)
...
...
@@ -761,7 +765,7 @@ static INT PROFILE_GetSectionNames( LPSTR buffer, UINT len )
if
(
!
buffer
)
return
0
;
for
(
section
=
CurProfile
->
section
;
section
;
section
=
section
->
next
)
if
(
section
->
name
)
{
if
(
section
->
name
[
0
]
)
{
l
=
strlen
(
section
->
name
);
cursize
+=
l
+
1
;
if
(
cursize
>
len
+
1
)
...
...
@@ -873,7 +877,8 @@ static BOOL PROFILE_SetString( LPCSTR section_name, LPCSTR key_name,
HeapFree
(
GetProcessHeap
(),
0
,
key
->
value
);
}
else
TRACE
(
" creating key
\n
"
);
key
->
value
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
value
);
key
->
value
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
value
)
+
1
);
strcpy
(
key
->
value
,
value
);
CurProfile
->
changed
=
TRUE
;
}
return
TRUE
;
...
...
@@ -1517,7 +1522,8 @@ BOOL WINAPI WritePrivateProfileSectionA( LPCSTR section,
PROFILE_DeleteAllKeys
(
section
);
ret
=
TRUE
;
while
(
*
string
)
{
LPSTR
buf
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
string
);
LPSTR
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
string
)
+
1
);
strcpy
(
buf
,
string
);
if
((
p
=
strchr
(
buf
,
'='
))){
*
p
=
'\0'
;
ret
=
PROFILE_SetString
(
section
,
buf
,
p
+
1
);
...
...
graphics/driver.c
View file @
5f728cae
...
...
@@ -6,7 +6,6 @@
#include <string.h>
#include "gdi.h"
#include "heap.h"
#include "debugtools.h"
DEFAULT_DEBUG_CHANNEL
(
driver
);
...
...
@@ -18,8 +17,8 @@ typedef struct tagGRAPHICS_DRIVER
const
DC_FUNCTIONS
*
funcs
;
}
GRAPHICS_DRIVER
;
static
GRAPHICS_DRIVER
*
firstDriver
=
NULL
;
static
GRAPHICS_DRIVER
*
genericDriver
=
NULL
;
static
GRAPHICS_DRIVER
*
firstDriver
;
static
GRAPHICS_DRIVER
*
genericDriver
;
/**********************************************************************
* DRIVER_RegisterDriver
...
...
@@ -31,8 +30,9 @@ BOOL DRIVER_RegisterDriver( LPCSTR name, const DC_FUNCTIONS *funcs )
driver
->
funcs
=
funcs
;
if
(
name
)
{
driver
->
name
=
H
EAP_strdupA
(
GetProcessHeap
(),
0
,
name
);
driver
->
name
=
H
eapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
name
)
+
1
);
driver
->
next
=
firstDriver
;
strcpy
(
driver
->
name
,
name
);
firstDriver
=
driver
;
return
TRUE
;
}
...
...
graphics/env.c
View file @
5f728cae
...
...
@@ -11,7 +11,6 @@
#include "config.h"
#include "gdi.h"
#include "debugtools.h"
#include "heap.h"
DEFAULT_DEBUG_CHANNEL
(
gdi
);
...
...
@@ -49,26 +48,17 @@ static ATOM GDI_GetNullPortAtom(void)
static
ATOM
PortNameToAtom
(
LPCSTR
lpPortName
,
BOOL16
add
)
{
char
*
p
;
BOOL
needfree
=
FALSE
;
ATOM
ret
;
if
(
lpPortName
[
strlen
(
lpPortName
)
-
1
]
==
':'
)
{
p
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpPortName
);
p
[
strlen
(
lpPortName
)
-
1
]
=
'\0'
;
needfree
=
TRUE
;
}
else
p
=
(
char
*
)
lpPortName
;
char
buffer
[
256
];
if
(
add
)
ret
=
AddAtomA
(
p
);
else
ret
=
FindAtomA
(
p
);
strncpy
(
buffer
,
lpPortName
,
sizeof
(
buffer
)
);
buffer
[
sizeof
(
buffer
)
-
1
]
=
0
;
if
(
needfree
)
HeapFree
(
GetProcessHeap
(),
0
,
p
)
;
if
(
buffer
[
0
]
&&
buffer
[
strlen
(
buffer
)
-
1
]
==
':'
)
buffer
[
strlen
(
buffer
)
-
1
]
=
0
;
return
ret
;
if
(
add
)
return
AddAtomA
(
buffer
);
else
return
FindAtomA
(
buffer
);
}
...
...
graphics/win16drv/prtdrv.c
View file @
5f728cae
...
...
@@ -187,7 +187,8 @@ LOADED_PRINTER_DRIVER *LoadPrinterDriver(const char *pszDriver)
memset
(
pLPD
,
0
,
sizeof
(
LOADED_PRINTER_DRIVER
));
pLPD
->
hInst
=
hInst
;
pLPD
->
szDriver
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
pszDriver
);
pLPD
->
szDriver
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
pszDriver
)
+
1
);
strcpy
(
pLPD
->
szDriver
,
pszDriver
);
/* Get DS for the printer module */
pLPD
->
ds_reg
=
hInst
;
...
...
graphics/x11drv/xfont.c
View file @
5f728cae
...
...
@@ -26,12 +26,12 @@
#include "wingdi.h"
#include "winnls.h"
#include "winreg.h"
#include "heap.h"
#include "font.h"
#include "debugtools.h"
#include "user.h"
/* for TWEAK_WineLook (FIXME) */
#include "x11font.h"
#include "wine/server.h"
#include "wine/unicode.h"
DEFAULT_DEBUG_CHANNEL
(
font
);
...
...
@@ -1519,7 +1519,10 @@ static void XFONT_LoadAlias(const LFD* lfd, LPCSTR lpAlias, BOOL bSubst)
/* Update any references to the substituted font in aliasTable */
if
(
!
strcmp
(
frMatch
->
lfFaceName
,
pfa
->
faTypeFace
))
pfa
->
faTypeFace
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpAlias
);
{
pfa
->
faTypeFace
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpAlias
)
+
1
);
strcpy
(
pfa
->
faTypeFace
,
lpAlias
);
}
prev
=
pfa
;
}
...
...
@@ -1959,9 +1962,8 @@ static int XFONT_BuildMetrics(char** x_pattern, int res, unsigned x_checksum, in
XFontStruct
*
x_fs
;
fontInfo
*
pfi
;
typeface
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
x_pattern
[
i
]);
if
(
!
typeface
)
break
;
if
(
!
(
typeface
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
x_pattern
[
i
])
+
1
)))
break
;
strcpy
(
typeface
,
x_pattern
[
i
]
);
lfd
=
LFD_Parse
(
typeface
);
if
(
!
lfd
)
...
...
@@ -1996,8 +1998,10 @@ static int XFONT_BuildMetrics(char** x_pattern, int res, unsigned x_checksum, in
memset
(
fr
->
resource
,
0
,
sizeof
(
LFD
));
TRACE
(
"family: -%s-%s-
\n
"
,
lfd
->
foundry
,
lfd
->
family
);
fr
->
resource
->
foundry
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lfd
->
foundry
);
fr
->
resource
->
family
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lfd
->
family
);
fr
->
resource
->
foundry
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lfd
->
foundry
)
+
1
);
strcpy
(
(
char
*
)
fr
->
resource
->
foundry
,
lfd
->
foundry
);
fr
->
resource
->
family
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lfd
->
family
)
+
1
);
strcpy
(
(
char
*
)
fr
->
resource
->
family
,
lfd
->
family
);
fr
->
resource
->
weight
=
""
;
if
(
pfr
)
pfr
->
next
=
fr
;
...
...
if1632/snoop.c
View file @
5f728cae
...
...
@@ -12,7 +12,6 @@
#include "winnt.h"
#include "wine/winbase16.h"
#include "wine/library.h"
#include "heap.h"
#include "global.h"
#include "stackframe.h"
#include "builtin16.h"
...
...
@@ -43,8 +42,8 @@ typedef struct tagSNOOP16_DLL {
HMODULE16
hmod
;
HANDLE16
funhandle
;
SNOOP16_FUN
*
funs
;
LPCSTR
name
;
struct
tagSNOOP16_DLL
*
next
;
char
name
[
1
];
}
SNOOP16_DLL
;
typedef
struct
tagSNOOP16_RETURNENTRY
{
...
...
@@ -118,12 +117,12 @@ SNOOP16_RegisterDLL(NE_MODULE *pModule,LPCSTR name) {
return
;
/* already registered */
dll
=
&
((
*
dll
)
->
next
);
}
*
dll
=
(
SNOOP16_DLL
*
)
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
SNOOP16_DLL
));
*
dll
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
SNOOP16_DLL
)
+
strlen
(
name
));
(
*
dll
)
->
next
=
NULL
;
(
*
dll
)
->
hmod
=
pModule
->
self
;
if
((
s
=
strrchr
(
name
,
'\\'
)))
name
=
s
+
1
;
(
*
dll
)
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
name
);
strcpy
(
(
*
dll
)
->
name
,
name
);
if
((
s
=
strrchr
((
*
dll
)
->
name
,
'.'
)))
*
s
=
'\0'
;
(
*
dll
)
->
funhandle
=
GlobalHandleToSel16
(
GLOBAL_Alloc
(
GMEM_ZEROINIT
,
65535
,
0
,
WINE_LDT_FLAGS_CODE
));
...
...
@@ -184,9 +183,13 @@ SNOOP16_GetProcAddress16(HMODULE16 hmod,DWORD ordinal,FARPROC16 origfun) {
}
}
if
(
*
cpnt
)
fun
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
name
);
{
fun
->
name
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
name
)
+
1
);
strcpy
(
fun
->
name
,
name
);
}
else
fun
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
""
);
fun
->
name
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
1
);
/* empty string */
if
(
!
SNOOP_ShowDebugmsgSnoop
(
dll
->
name
,
ordinal
,
fun
->
name
))
return
origfun
;
...
...
include/heap.h
View file @
5f728cae
...
...
@@ -23,26 +23,27 @@ extern SEGPTR HEAP_GetSegptr( HANDLE heap, DWORD flags, LPCVOID ptr );
(HeapAlloc( GetProcessHeap(), HEAP_WINE_SEGPTR, (size) ))
#define SEGPTR_NEW(type) \
((type *)HeapAlloc( GetProcessHeap(), HEAP_WINE_SEGPTR, sizeof(type) ))
#define SEGPTR_STRDUP(str) \
(HIWORD(str) ? HEAP_strdupA( GetProcessHeap(), HEAP_WINE_SEGPTR, (str) ) : (LPSTR)(str))
#define SEGPTR_STRDUP_WtoA(str) \
(HIWORD(str) ? HEAP_strdupWtoA( GetProcessHeap(), HEAP_WINE_SEGPTR, (str) ) : (LPSTR)(str))
#define SEGPTR_FREE(ptr) \
(HIWORD(ptr) ? HeapFree( GetProcessHeap(), HEAP_WINE_SEGPTR, (ptr) ) : 0)
#define SEGPTR_GET(ptr) MapLS(ptr)
inline
static
LPSTR
SEGPTR_STRDUP
(
LPCSTR
str
)
{
if
(
HIWORD
(
str
))
{
INT
len
=
strlen
(
str
)
+
1
;
LPSTR
p
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_WINE_SEGPTR
,
len
);
if
(
p
)
memcpy
(
p
,
str
,
len
);
return
p
;
}
return
(
LPSTR
)
str
;
}
/* strdup macros */
/* DO NOT USE THEM!! they will go away soon */
inline
static
LPSTR
HEAP_strdupA
(
HANDLE
heap
,
DWORD
flags
,
LPCSTR
str
)
{
INT
len
=
strlen
(
str
)
+
1
;
LPSTR
p
=
HeapAlloc
(
heap
,
flags
,
len
);
if
(
p
)
memcpy
(
p
,
str
,
len
);
return
p
;
}
inline
static
LPWSTR
HEAP_strdupAtoW
(
HANDLE
heap
,
DWORD
flags
,
LPCSTR
str
)
{
LPWSTR
ret
;
...
...
include/module.h
View file @
5f728cae
...
...
@@ -132,6 +132,8 @@ typedef struct _wine_modref
char
*
modname
;
char
*
short_filename
;
char
*
short_modname
;
char
data
[
1
];
/* space for storing filename and short_filename */
}
WINE_MODREF
;
#define WINE_MODREF_INTERNAL 0x00000001
...
...
loader/elf.c
View file @
5f728cae
...
...
@@ -17,7 +17,6 @@
#include <sys/types.h>
#include "snoop.h"
#include "heap.h"
#include "file.h"
#include "module.h"
#include "debugtools.h"
...
...
@@ -193,16 +192,17 @@ static FARPROC ELF_FindExportedFunction( WINE_MODREF *wm, LPCSTR funcName, BOOL
/* Function@nrofargs usually marks a stdcall function
* with nrofargs bytes that are popped at the end
*/
if
(
strchr
(
funcName
,
'@'
))
{
LPSTR
t
,
fn
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
funcName
);
t
=
strchr
(
fn
,
'@'
);
*
t
=
'\0'
;
nrofargs
=
0
;
sscanf
(
t
+
1
,
"%d"
,
&
nrofargs
);
fun
=
wine_dlsym
(
wm
->
dlhandle
,
fn
,
error
,
sizeof
(
error
));
HeapFree
(
GetProcessHeap
(),
0
,
fn
);
}
LPCSTR
t
;
if
((
t
=
strchr
(
funcName
,
'@'
)))
{
LPSTR
fn
=
HeapAlloc
(
GetProcessHeap
(),
0
,
t
-
funcName
+
1
);
memcpy
(
fn
,
funcName
,
t
-
funcName
);
fn
[
t
-
funcName
]
=
0
;
nrofargs
=
0
;
sscanf
(
t
+
1
,
"%d"
,
&
nrofargs
);
fun
=
wine_dlsym
(
wm
->
dlhandle
,
fn
,
error
,
sizeof
(
error
));
HeapFree
(
GetProcessHeap
(),
0
,
fn
);
}
}
/* We sometimes have Win32 dlls implemented using stdcall but UNIX
* dlls using cdecl. If we find out the number of args the function
...
...
loader/loadorder.c
View file @
5f728cae
...
...
@@ -13,7 +13,6 @@
#include "winreg.h"
#include "winerror.h"
#include "options.h"
#include "heap.h"
#include "file.h"
#include "module.h"
#include "debugtools.h"
...
...
@@ -119,7 +118,8 @@ static char *get_tok(const char *str, const char *delim)
if
(
str
&&
!
buf
)
{
buf
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
str
);
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
str
)
+
1
);
strcpy
(
buf
,
str
);
cptr
=
strtok
(
buf
,
delim
);
}
else
...
...
@@ -220,7 +220,8 @@ static BOOL AddLoadOrder(module_loadorder_t *plo)
}
}
memcpy
(
cmdline_list
.
order
[
i
].
loadorder
,
plo
->
loadorder
,
sizeof
(
plo
->
loadorder
));
cmdline_list
.
order
[
i
].
modulename
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
plo
->
modulename
);
cmdline_list
.
order
[
i
].
modulename
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
plo
->
modulename
)
+
1
);
strcpy
(
(
char
*
)
cmdline_list
.
order
[
i
].
modulename
,
plo
->
modulename
);
cmdline_list
.
count
++
;
return
TRUE
;
}
...
...
@@ -267,10 +268,10 @@ static BOOL AddLoadOrderSet(char *key, char *order)
*/
void
MODULE_AddLoadOrderOption
(
const
char
*
option
)
{
char
*
key
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
option
);
char
*
value
=
strchr
(
key
,
'='
);
char
*
value
,
*
key
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
option
)
+
1
);
if
(
!
value
)
goto
error
;
strcpy
(
key
,
option
);
if
(
!
(
value
=
strchr
(
key
,
'='
)))
goto
error
;
*
value
++
=
'\0'
;
TRACE
(
"Commandline override '%s' = '%s'
\n
"
,
key
,
value
);
...
...
loader/module.c
View file @
5f728cae
...
...
@@ -63,20 +63,23 @@ static WINE_MODREF *MODULE32_LookupHMODULE( HMODULE hmod )
WINE_MODREF
*
MODULE_AllocModRef
(
HMODULE
hModule
,
LPCSTR
filename
)
{
WINE_MODREF
*
wm
;
DWORD
len
;
if
((
wm
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
wm
)
)))
DWORD
long_len
=
strlen
(
filename
);
DWORD
short_len
=
GetShortPathNameA
(
filename
,
NULL
,
0
);
if
((
wm
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
*
wm
)
+
long_len
+
short_len
+
1
)))
{
wm
->
module
=
hModule
;
wm
->
tlsindex
=
-
1
;
wm
->
filename
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
filename
);
wm
->
filename
=
wm
->
data
;
memcpy
(
wm
->
filename
,
filename
,
long_len
+
1
);
if
((
wm
->
modname
=
strrchr
(
wm
->
filename
,
'\\'
)))
wm
->
modname
++
;
else
wm
->
modname
=
wm
->
filename
;
len
=
GetShortPathNameA
(
wm
->
filename
,
NULL
,
0
);
wm
->
short_filename
=
(
char
*
)
HeapAlloc
(
GetProcessHeap
(),
0
,
len
+
1
);
GetShortPathNameA
(
wm
->
filename
,
wm
->
short_filename
,
len
+
1
);
wm
->
short_filename
=
wm
->
filename
+
long_len
+
1
;
GetShortPathNameA
(
wm
->
filename
,
wm
->
short_filename
,
short_len
+
1
);
if
((
wm
->
short_modname
=
strrchr
(
wm
->
short_filename
,
'\\'
)))
wm
->
short_modname
++
;
else
wm
->
short_modname
=
wm
->
short_filename
;
...
...
@@ -842,7 +845,8 @@ HINSTANCE WINAPI WinExec( LPCSTR lpCmdLine, UINT nCmdShow )
startup
.
wShowWindow
=
nCmdShow
;
/* cmdline needs to be writeable for CreateProcess */
if
(
!
(
cmdline
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
lpCmdLine
)))
return
0
;
if
(
!
(
cmdline
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
lpCmdLine
)
+
1
)))
return
0
;
strcpy
(
cmdline
,
lpCmdLine
);
if
(
CreateProcessA
(
NULL
,
cmdline
,
NULL
,
NULL
,
FALSE
,
0
,
NULL
,
NULL
,
&
startup
,
&
info
))
...
...
@@ -1527,8 +1531,6 @@ static void MODULE_FlushModrefs(void)
else
UnmapViewOfFile
(
(
LPVOID
)
wm
->
module
);
FreeLibrary16
(
wm
->
hDummyMod
);
HeapFree
(
GetProcessHeap
(),
0
,
wm
->
deps
);
HeapFree
(
GetProcessHeap
(),
0
,
wm
->
filename
);
HeapFree
(
GetProcessHeap
(),
0
,
wm
->
short_filename
);
HeapFree
(
GetProcessHeap
(),
0
,
wm
);
}
}
...
...
msdos/int21.c
View file @
5f728cae
...
...
@@ -26,7 +26,6 @@
#include "winerror.h"
#include "drive.h"
#include "file.h"
#include "heap.h"
#include "msdos.h"
#include "options.h"
#include "miscemu.h"
...
...
@@ -615,7 +614,8 @@ static int INT21_FindFirst( CONTEXT86 *context )
SET_CFLAG
(
context
);
return
0
;
}
dta
->
unixPath
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
full_name
.
long_name
);
dta
->
unixPath
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
full_name
.
long_name
)
+
1
);
strcpy
(
dta
->
unixPath
,
full_name
.
long_name
);
p
=
strrchr
(
dta
->
unixPath
,
'/'
);
*
p
=
'\0'
;
...
...
relay32/snoop.c
View file @
5f728cae
...
...
@@ -11,7 +11,6 @@
#include <string.h>
#include "winbase.h"
#include "winnt.h"
#include "heap.h"
#include "snoop.h"
#include "stackframe.h"
#include "debugtools.h"
...
...
@@ -58,11 +57,12 @@ typedef struct tagSNOOP_FUN {
typedef
struct
tagSNOOP_DLL
{
HMODULE
hmod
;
SNOOP_FUN
*
funs
;
LPCSTR
name
;
DWORD
ordbase
;
DWORD
nrofordinals
;
struct
tagSNOOP_DLL
*
next
;
char
name
[
1
];
}
SNOOP_DLL
;
typedef
struct
tagSNOOP_RETURNENTRY
{
/* code part */
BYTE
lcall
;
/* 0xe8 call snoopret relative*/
...
...
@@ -137,12 +137,12 @@ SNOOP_RegisterDLL(HMODULE hmod,LPCSTR name,DWORD ordbase,DWORD nrofordinals) {
return
;
/* already registered */
dll
=
&
((
*
dll
)
->
next
);
}
*
dll
=
(
SNOOP_DLL
*
)
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
SNOOP_DLL
));
*
dll
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
SNOOP_DLL
)
+
strlen
(
name
));
(
*
dll
)
->
next
=
NULL
;
(
*
dll
)
->
hmod
=
hmod
;
(
*
dll
)
->
ordbase
=
ordbase
;
(
*
dll
)
->
nrofordinals
=
nrofordinals
;
(
*
dll
)
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
name
);
strcpy
(
(
*
dll
)
->
name
,
name
);
if
((
s
=
strrchr
((
*
dll
)
->
name
,
'.'
)))
*
s
=
'\0'
;
(
*
dll
)
->
funs
=
VirtualAlloc
(
NULL
,
nrofordinals
*
sizeof
(
SNOOP_FUN
),
MEM_COMMIT
|
MEM_RESERVE
,
PAGE_EXECUTE_READWRITE
);
...
...
@@ -196,7 +196,8 @@ SNOOP_GetProcAddress(HMODULE hmod,LPCSTR name,DWORD ordinal,FARPROC origfun) {
fun
=
dll
->
funs
+
ordinal
;
if
(
!
fun
->
name
)
{
fun
->
name
=
HEAP_strdupA
(
GetProcessHeap
(),
0
,
name
);
fun
->
name
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
name
)
+
1
);
strcpy
(
fun
->
name
,
name
);
fun
->
lcall
=
0xe8
;
/* NOTE: origreturn struct member MUST come directly after snoopentry */
fun
->
snoopentry
=
(
char
*
)
SNOOP_Entry
-
((
char
*
)(
&
fun
->
nrofargs
));
...
...
windows/clipboard.c
View file @
5f728cae
...
...
@@ -1217,12 +1217,13 @@ UINT WINAPI RegisterClipboardFormatA( LPCSTR FormatName )
lpNewFormat
->
wFormatID
=
LastRegFormat
;
lpNewFormat
->
wRefCount
=
1
;
lpNewFormat
->
Name
=
(
LPSTR
)
HEAP_strdupA
(
GetProcessHeap
(),
0
,
FormatName
);
if
(
lpNewFormat
->
Name
==
NULL
)
{
if
(
!
(
lpNewFormat
->
Name
=
HeapAlloc
(
GetProcessHeap
(),
0
,
strlen
(
FormatName
)
+
1
)))
{
WARN
(
"No more memory for the new format name!
\n
"
);
HeapFree
(
GetProcessHeap
(),
0
,
lpNewFormat
);
return
0
;
}
strcpy
(
lpNewFormat
->
Name
,
FormatName
);
lpNewFormat
->
wDataPresent
=
0
;
lpNewFormat
->
hData16
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment