Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
e31cfb0b
Commit
e31cfb0b
authored
Apr 04, 2012
by
Huw Davies
Committed by
Alexandre Julliard
Apr 04, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wineps: Move some allocations to the process heap.
parent
e370f4bf
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
31 deletions
+32
-31
ps.c
dlls/wineps.drv/ps.c
+32
-31
No files found.
dlls/wineps.drv/ps.c
View file @
e31cfb0b
...
...
@@ -221,7 +221,7 @@ DWORD PSDRV_WriteSpool(PHYSDEV dev, LPCSTR lpData, DWORD cch)
static
INT
PSDRV_WriteFeature
(
PHYSDEV
dev
,
LPCSTR
feature
,
LPCSTR
value
,
LPCSTR
invocation
)
{
char
*
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
psbeginfeature
)
+
char
*
buf
=
HeapAlloc
(
GetProcessHeap
()
,
0
,
sizeof
(
psbeginfeature
)
+
strlen
(
feature
)
+
strlen
(
value
));
sprintf
(
buf
,
psbeginfeature
,
feature
,
value
);
...
...
@@ -229,7 +229,7 @@ static INT PSDRV_WriteFeature(PHYSDEV dev, LPCSTR feature, LPCSTR value, LPCSTR
write_spool
(
dev
,
invocation
,
strlen
(
invocation
)
);
write_spool
(
dev
,
psendfeature
,
strlen
(
psendfeature
)
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
()
,
0
,
buf
);
return
1
;
}
...
...
@@ -306,11 +306,12 @@ INT PSDRV_WriteHeader( PHYSDEV dev, LPCWSTR title )
DUPLEX
*
duplex
;
int
win_duplex
;
int
llx
,
lly
,
urx
,
ury
;
int
ret
,
len
;
TRACE
(
"%s
\n
"
,
debugstr_w
(
title
));
escaped_title
=
escape_title
(
title
);
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
psheader
)
+
buf
=
HeapAlloc
(
GetProcessHeap
()
,
0
,
sizeof
(
psheader
)
+
strlen
(
escaped_title
)
+
30
);
if
(
!
buf
)
{
WARN
(
"HeapAlloc failed
\n
"
);
...
...
@@ -328,12 +329,15 @@ INT PSDRV_WriteHeader( PHYSDEV dev, LPCWSTR title )
sprintf
(
buf
,
psheader
,
escaped_title
,
llx
,
lly
,
urx
,
ury
);
HeapFree
(
GetProcessHeap
(),
0
,
escaped_title
);
if
(
write_spool
(
dev
,
buf
,
strlen
(
buf
)
)
!=
strlen
(
buf
)
)
{
len
=
strlen
(
buf
);
ret
=
write_spool
(
dev
,
buf
,
len
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
if
(
ret
!=
len
)
{
WARN
(
"WriteSpool error
\n
"
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
0
;
return
0
;
}
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
write_spool
(
dev
,
psbeginprolog
,
strlen
(
psbeginprolog
)
);
write_spool
(
dev
,
psprolog
,
strlen
(
psprolog
)
);
...
...
@@ -389,8 +393,9 @@ INT PSDRV_WriteFooter( PHYSDEV dev )
{
PSDRV_PDEVICE
*
physDev
=
get_psdrv_dev
(
dev
);
char
*
buf
;
int
ret
=
1
;
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
psfooter
)
+
100
);
buf
=
HeapAlloc
(
GetProcessHeap
()
,
0
,
sizeof
(
psfooter
)
+
100
);
if
(
!
buf
)
{
WARN
(
"HeapAlloc failed
\n
"
);
return
0
;
...
...
@@ -400,11 +405,10 @@ INT PSDRV_WriteFooter( PHYSDEV dev )
if
(
write_spool
(
dev
,
buf
,
strlen
(
buf
)
)
!=
strlen
(
buf
)
)
{
WARN
(
"WriteSpool error
\n
"
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
0
;
ret
=
0
;
}
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
1
;
HeapFree
(
GetProcessHeap
()
,
0
,
buf
);
return
ret
;
}
...
...
@@ -427,10 +431,11 @@ INT PSDRV_WriteNewPage( PHYSDEV dev )
char
*
buf
;
char
name
[
100
];
signed
int
xtrans
,
ytrans
,
rotation
;
int
ret
=
1
;
sprintf
(
name
,
"%d"
,
physDev
->
job
.
PageNo
);
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
psnewpage
)
+
200
);
buf
=
HeapAlloc
(
GetProcessHeap
()
,
0
,
sizeof
(
psnewpage
)
+
200
);
if
(
!
buf
)
{
WARN
(
"HeapAlloc failed
\n
"
);
return
0
;
...
...
@@ -458,11 +463,10 @@ INT PSDRV_WriteNewPage( PHYSDEV dev )
if
(
write_spool
(
dev
,
buf
,
strlen
(
buf
)
)
!=
strlen
(
buf
)
)
{
WARN
(
"WriteSpool error
\n
"
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
0
;
ret
=
0
;
}
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
1
;
HeapFree
(
GetProcessHeap
()
,
0
,
buf
);
return
ret
;
}
...
...
@@ -525,8 +529,7 @@ BOOL PSDRV_WriteSetFont(PHYSDEV dev, const char *name, matrix size, INT escapeme
{
char
*
buf
;
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
pssetfont
)
+
strlen
(
name
)
+
40
);
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
pssetfont
)
+
strlen
(
name
)
+
40
);
if
(
!
buf
)
{
WARN
(
"HeapAlloc failed
\n
"
);
...
...
@@ -536,7 +539,7 @@ BOOL PSDRV_WriteSetFont(PHYSDEV dev, const char *name, matrix size, INT escapeme
sprintf
(
buf
,
pssetfont
,
name
,
size
.
xx
,
size
.
xy
,
size
.
yx
,
size
.
yy
,
-
escapement
);
PSDRV_WriteSpool
(
dev
,
buf
,
strlen
(
buf
));
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
return
TRUE
;
}
...
...
@@ -678,7 +681,7 @@ BOOL PSDRV_WriteIndexColorSpaceEnd(PHYSDEV dev)
static
BOOL
PSDRV_WriteRGB
(
PHYSDEV
dev
,
COLORREF
*
map
,
int
number
)
{
char
*
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
number
*
7
+
1
),
*
ptr
;
char
*
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
number
*
7
+
1
),
*
ptr
;
int
i
;
ptr
=
buf
;
...
...
@@ -689,13 +692,13 @@ static BOOL PSDRV_WriteRGB(PHYSDEV dev, COLORREF *map, int number)
ptr
+=
7
;
}
PSDRV_WriteSpool
(
dev
,
buf
,
number
*
7
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
return
TRUE
;
}
BOOL
PSDRV_WriteRGBQUAD
(
PHYSDEV
dev
,
const
RGBQUAD
*
rgb
,
int
number
)
{
char
*
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
number
*
7
+
1
),
*
ptr
;
char
*
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
number
*
7
+
1
),
*
ptr
;
int
i
;
ptr
=
buf
;
...
...
@@ -704,7 +707,7 @@ BOOL PSDRV_WriteRGBQUAD(PHYSDEV dev, const RGBQUAD *rgb, int number)
((
i
&
0x7
)
==
0x7
)
||
(
i
==
number
-
1
)
?
'\n'
:
' '
);
PSDRV_WriteSpool
(
dev
,
buf
,
ptr
-
buf
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
return
TRUE
;
}
...
...
@@ -720,8 +723,7 @@ static BOOL PSDRV_WriteImageDict(PHYSDEV dev, WORD depth,
static
const
char
end
[]
=
" /DataSource currentfile /ASCII85Decode filter /RunLengthDecode filter
\n
>>
\n
"
;
static
const
char
endbits
[]
=
" /DataSource <%s>
\n
>>
\n
"
;
char
*
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
1000
);
char
buf
[
1000
];
if
(
top_down
)
sprintf
(
buf
,
start
,
widthSrc
,
heightSrc
,
...
...
@@ -759,7 +761,6 @@ static BOOL PSDRV_WriteImageDict(PHYSDEV dev, WORD depth,
PSDRV_WriteSpool
(
dev
,
buf
,
strlen
(
buf
));
}
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
return
TRUE
;
}
...
...
@@ -785,7 +786,7 @@ BOOL PSDRV_WriteImage(PHYSDEV dev, WORD depth, INT xDst, INT yDst,
BOOL
PSDRV_WriteBytes
(
PHYSDEV
dev
,
const
BYTE
*
bytes
,
DWORD
number
)
{
char
*
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
number
*
3
+
1
);
char
*
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
number
*
3
+
1
);
char
*
ptr
;
unsigned
int
i
;
...
...
@@ -800,7 +801,7 @@ BOOL PSDRV_WriteBytes(PHYSDEV dev, const BYTE *bytes, DWORD number)
}
}
PSDRV_WriteSpool
(
dev
,
buf
,
ptr
-
buf
);
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
return
TRUE
;
}
...
...
@@ -873,7 +874,7 @@ BOOL PSDRV_WriteDIBPatternDict(PHYSDEV dev, const BITMAPINFO *bmi, BYTE *bits, U
w
=
bmi
->
bmiHeader
.
biWidth
&
~
0x7
;
h
=
bmi
->
bmiHeader
.
biHeight
&
~
0x7
;
buf
=
HeapAlloc
(
PSDRV_Heap
,
0
,
sizeof
(
do_pattern
)
+
100
);
buf
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
do_pattern
)
+
100
);
ptr
=
buf
;
for
(
y
=
h
-
1
;
y
>=
0
;
y
--
)
{
for
(
x
=
0
;
x
<
w
/
8
;
x
++
)
{
...
...
@@ -897,6 +898,6 @@ BOOL PSDRV_WriteDIBPatternDict(PHYSDEV dev, const BITMAPINFO *bmi, BYTE *bits, U
h_mult
=
(
physDev
->
logPixelsY
+
150
)
/
300
;
sprintf
(
buf
,
do_pattern
,
w
*
w_mult
,
h
*
h_mult
,
w
*
w_mult
,
h
*
h_mult
,
w
*
w_mult
,
h
*
h_mult
);
PSDRV_WriteSpool
(
dev
,
buf
,
strlen
(
buf
));
HeapFree
(
PSDRV_Heap
,
0
,
buf
);
HeapFree
(
GetProcessHeap
(),
0
,
buf
);
return
TRUE
;
}
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