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
083eca07
Commit
083eca07
authored
Jun 07, 2010
by
Eric Pouech
Committed by
Alexandre Julliard
Jun 08, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
dbghelp: Properly manage in dbghelp interfaces local variables and parameters that are constant.
parent
99a5488a
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
31 additions
and
3 deletions
+31
-3
dbghelp_private.h
dlls/dbghelp/dbghelp_private.h
+1
-0
module.c
dlls/dbghelp/module.c
+1
-0
type.c
dlls/dbghelp/type.c
+29
-3
No files found.
dlls/dbghelp/dbghelp_private.h
View file @
083eca07
...
...
@@ -347,6 +347,7 @@ struct module_format
struct
module
{
struct
process
*
process
;
IMAGEHLP_MODULEW64
module
;
/* ANSI copy of module.ModuleName for efficiency */
char
module_name
[
MAX_PATH
];
...
...
dlls/dbghelp/module.c
View file @
083eca07
...
...
@@ -142,6 +142,7 @@ struct module* module_new(struct process* pcs, const WCHAR* name,
pool_init
(
&
module
->
pool
,
65536
);
module
->
process
=
pcs
;
module
->
module
.
SizeOfStruct
=
sizeof
(
module
->
module
);
module
->
module
.
BaseOfImage
=
mod_addr
;
module
->
module
.
ImageSize
=
size
;
...
...
dlls/dbghelp/type.c
View file @
083eca07
...
...
@@ -803,9 +803,35 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
break
;
case
TI_GET_VALUE
:
if
(
type
->
tag
!=
SymTagData
||
((
const
struct
symt_data
*
)
type
)
->
kind
!=
DataIsConstant
)
return
FALSE
;
X
(
VARIANT
)
=
((
const
struct
symt_data
*
)
type
)
->
u
.
value
;
if
(
type
->
tag
!=
SymTagData
)
return
FALSE
;
switch
(((
const
struct
symt_data
*
)
type
)
->
kind
)
{
case
DataIsConstant
:
X
(
VARIANT
)
=
((
const
struct
symt_data
*
)
type
)
->
u
.
value
;
break
;
case
DataIsLocal
:
case
DataIsParam
:
{
struct
location
loc
=
((
const
struct
symt_data
*
)
type
)
->
u
.
var
;
unsigned
i
;
struct
module_format
*
modfmt
;
if
(
loc
.
kind
<
loc_user
)
return
FALSE
;
for
(
i
=
0
;
i
<
DFI_LAST
;
i
++
)
{
modfmt
=
module
->
format_info
[
i
];
if
(
modfmt
&&
modfmt
->
loc_compute
)
{
modfmt
->
loc_compute
(
module
->
process
,
modfmt
,
(
const
struct
symt_function
*
)((
const
struct
symt_data
*
)
type
)
->
container
,
&
loc
);
break
;
}
}
if
(
loc
.
kind
!=
loc_absolute
)
return
FALSE
;
X
(
VARIANT
).
n1
.
n2
.
vt
=
VT_UI4
;
/* FIXME */
X
(
VARIANT
).
n1
.
n2
.
n3
.
uiVal
=
loc
.
offset
;
}
break
;
default:
return
FALSE
;
}
break
;
case
TI_GET_CALLING_CONVENTION
:
...
...
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