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
ac572bc4
Commit
ac572bc4
authored
Aug 15, 2023
by
Gabriel Ivăncescu
Committed by
Alexandre Julliard
Aug 16, 2023
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Move ccref from the node to the dispex.
Signed-off-by:
Gabriel Ivăncescu
<
gabrielopcode@gmail.com
>
parent
d4770578
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
10 additions
and
12 deletions
+10
-12
dispex.c
dlls/mshtml/dispex.c
+1
-0
htmlnode.c
dlls/mshtml/htmlnode.c
+3
-4
mshtml_private.h
dlls/mshtml/mshtml_private.h
+6
-8
No files found.
dlls/mshtml/dispex.c
View file @
ac572bc4
...
...
@@ -2094,6 +2094,7 @@ void init_dispatch(DispatchEx *dispex, IUnknown *outer, dispex_static_data_t *da
dispex
->
IDispatchEx_iface
.
lpVtbl
=
&
DispatchExVtbl
;
dispex
->
outer
=
outer
;
dispex
->
dynamic_data
=
NULL
;
ccref_init
(
&
dispex
->
ccref
,
1
);
if
(
data
->
vtbl
&&
data
->
vtbl
->
get_compat_mode
)
{
/* delayed init */
...
...
dlls/mshtml/htmlnode.c
View file @
ac572bc4
...
...
@@ -501,7 +501,7 @@ static ULONG WINAPI HTMLDOMNode_AddRef(IHTMLDOMNode *iface)
HTMLDOMNode
*
This
=
impl_from_IHTMLDOMNode
(
iface
);
LONG
ref
;
ref
=
ccref_incr
(
&
This
->
ccref
,
(
nsISupports
*
)
&
This
->
IHTMLDOMNode_iface
);
ref
=
ccref_incr
(
&
This
->
event_target
.
dispex
.
ccref
,
(
nsISupports
*
)
&
This
->
IHTMLDOMNode_iface
);
TRACE
(
"(%p) ref=%ld
\n
"
,
This
,
ref
);
...
...
@@ -511,7 +511,7 @@ static ULONG WINAPI HTMLDOMNode_AddRef(IHTMLDOMNode *iface)
static
ULONG
WINAPI
HTMLDOMNode_Release
(
IHTMLDOMNode
*
iface
)
{
HTMLDOMNode
*
This
=
impl_from_IHTMLDOMNode
(
iface
);
LONG
ref
=
ccref_decr
(
&
This
->
ccref
,
(
nsISupports
*
)
&
This
->
IHTMLDOMNode_iface
,
&
node_ccp
);
LONG
ref
=
ccref_decr
(
&
This
->
event_target
.
dispex
.
ccref
,
(
nsISupports
*
)
&
This
->
IHTMLDOMNode_iface
,
&
node_ccp
);
TRACE
(
"(%p) ref=%ld
\n
"
,
This
,
ref
);
...
...
@@ -1490,7 +1490,6 @@ void HTMLDOMNode_Init(HTMLDocumentNode *doc, HTMLDOMNode *node, nsIDOMNode *nsno
node
->
IHTMLDOMNode2_iface
.
lpVtbl
=
&
HTMLDOMNode2Vtbl
;
node
->
IHTMLDOMNode3_iface
.
lpVtbl
=
&
HTMLDOMNode3Vtbl
;
ccref_init
(
&
node
->
ccref
,
1
);
EventTarget_Init
(
&
node
->
event_target
,
(
IUnknown
*
)
&
node
->
IHTMLDOMNode_iface
,
dispex_data
,
doc
->
document_mode
);
if
(
&
doc
->
node
!=
node
)
...
...
@@ -1582,7 +1581,7 @@ static nsresult NSAPI HTMLDOMNode_traverse(void *ccp, void *p, nsCycleCollection
TRACE
(
"%p
\n
"
,
This
);
describe_cc_node
(
&
This
->
ccref
,
"HTMLDOMNode"
,
cb
);
describe_cc_node
(
&
This
->
event_target
.
dispex
.
ccref
,
"HTMLDOMNode"
,
cb
);
if
(
This
->
nsnode
)
note_cc_edge
((
nsISupports
*
)
This
->
nsnode
,
"This->nsnode"
,
cb
);
...
...
dlls/mshtml/mshtml_private.h
View file @
ac572bc4
...
...
@@ -337,6 +337,11 @@ typedef struct dispex_dynamic_data_t dispex_dynamic_data_t;
#define MSHTML_CUSTOM_DISPID_CNT (MSHTML_DISPID_CUSTOM_MAX-MSHTML_DISPID_CUSTOM_MIN)
typedef
struct
DispatchEx
DispatchEx
;
typedef
struct
nsCycleCollectionTraversalCallback
nsCycleCollectionTraversalCallback
;
typedef
struct
{
UINT_PTR
x
;
}
nsCycleCollectingAutoRefCnt
;
/*
dispex is our base IDispatchEx implementation for all mshtml objects, and the vtbl allows
...
...
@@ -393,23 +398,18 @@ struct DispatchEx {
IDispatchEx
IDispatchEx_iface
;
IUnknown
*
outer
;
nsCycleCollectingAutoRefCnt
ccref
;
dispex_data_t
*
info
;
dispex_dynamic_data_t
*
dynamic_data
;
};
typedef
struct
{
UINT_PTR
x
;
}
nsCycleCollectingAutoRefCnt
;
typedef
struct
{
void
*
vtbl
;
int
ref_flags
;
void
*
callbacks
;
}
ExternalCycleCollectionParticipant
;
typedef
struct
nsCycleCollectionTraversalCallback
nsCycleCollectionTraversalCallback
;
typedef
struct
{
nsresult
(
NSAPI
*
traverse
)(
void
*
,
void
*
,
nsCycleCollectionTraversalCallback
*
);
nsresult
(
NSAPI
*
unlink
)(
void
*
);
...
...
@@ -851,8 +851,6 @@ struct HTMLDOMNode {
IHTMLDOMNode3
IHTMLDOMNode3_iface
;
const
NodeImplVtbl
*
vtbl
;
nsCycleCollectingAutoRefCnt
ccref
;
nsIDOMNode
*
nsnode
;
HTMLDocumentNode
*
doc
;
};
...
...
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