Rebase against c1824d578ac514d29e79a5a00d6759f11dbe4813.

This commit is contained in:
Alistair Leslie-Hughes 2021-01-27 11:13:11 +11:00
parent fd3372e71c
commit 73480ec459
6 changed files with 80 additions and 229 deletions

View File

@ -1,4 +1,4 @@
From 389c087267b8d9d3892c68b52ffa965df38730db Mon Sep 17 00:00:00 2001
From ca61f3487605168b0f68f9c3d64bec15f5ecef1f Mon Sep 17 00:00:00 2001
From: Derek Lesho <dlesho@codeweavers.com>
Date: Mon, 16 Mar 2020 12:09:39 -0500
Subject: [PATCH] winegstreamer: Implement decoder MFT on gstreamer.
@ -28,7 +28,7 @@ index 4f6b428f067..81c670c17e4 100644
pin.c \
qualitycontrol.c \
diff --git a/dlls/winegstreamer/gst_cbs.c b/dlls/winegstreamer/gst_cbs.c
index b9effe73a5b..4afefe91aa8 100644
index 6c5877ce785..cf410b8934d 100644
--- a/dlls/winegstreamer/gst_cbs.c
+++ b/dlls/winegstreamer/gst_cbs.c
@@ -51,6 +51,8 @@ static void CALLBACK perform_cb(TP_CALLBACK_INSTANCE *instance, void *user)
@ -40,7 +40,7 @@ index b9effe73a5b..4afefe91aa8 100644
pthread_mutex_lock(&cbdata->lock);
cbdata->finished = 1;
@@ -363,3 +365,66 @@ void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user)
@@ -301,3 +303,66 @@ void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user)
call_cb(&cbdata);
}
@ -108,10 +108,10 @@ index b9effe73a5b..4afefe91aa8 100644
+ return cbdata.u.new_sample_data.ret;
+}
diff --git a/dlls/winegstreamer/gst_cbs.h b/dlls/winegstreamer/gst_cbs.h
index 0e262c12db8..98dff43ba9b 100644
index f063a0a2a7b..7737ae589d2 100644
--- a/dlls/winegstreamer/gst_cbs.h
+++ b/dlls/winegstreamer/gst_cbs.h
@@ -50,6 +50,12 @@ enum CB_TYPE {
@@ -45,6 +45,12 @@ enum CB_TYPE {
MF_SRC_STREAM_REMOVED,
MF_SRC_NO_MORE_PADS,
MEDIA_SOURCE_MAX,
@ -124,7 +124,7 @@ index 0e262c12db8..98dff43ba9b 100644
};
struct cb_data {
@@ -120,6 +126,17 @@ struct cb_data {
@@ -103,6 +109,17 @@ struct cb_data {
GstQuery *query;
gboolean ret;
} query_sink_data;
@ -142,15 +142,15 @@ index 0e262c12db8..98dff43ba9b 100644
} u;
int finished;
@@ -131,6 +148,7 @@ struct cb_data {
@@ -114,6 +131,7 @@ struct cb_data {
void mark_wine_thread(void) DECLSPEC_HIDDEN;
void perform_cb_gstdemux(struct cb_data *data) DECLSPEC_HIDDEN;
void perform_cb_media_source(struct cb_data *data) DECLSPEC_HIDDEN;
+void perform_cb_mf_decode(struct cb_data *data) DECLSPEC_HIDDEN;
void existing_new_pad_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
gboolean query_function_wrapper(GstPad *pad, GstObject *parent, GstQuery *query) DECLSPEC_HIDDEN;
@@ -152,5 +170,10 @@ GstBusSyncReply mf_src_bus_watch_wrapper(GstBus *bus, GstMessage *message, gpoin
gboolean activate_mode_wrapper(GstPad *pad, GstObject *parent, GstPadMode mode, gboolean activate) DECLSPEC_HIDDEN;
@@ -130,5 +148,10 @@ GstBusSyncReply mf_src_bus_watch_wrapper(GstBus *bus, GstMessage *message, gpoin
void mf_src_stream_added_wrapper(GstElement *bin, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void mf_src_stream_removed_wrapper(GstElement *element, GstPad *pad, gpointer user) DECLSPEC_HIDDEN;
void mf_src_no_more_pads_wrapper(GstElement *element, gpointer user) DECLSPEC_HIDDEN;

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "2d6462cdee2bd87a49382794e5a554f33c367f09"
echo "c1824d578ac514d29e79a5a00d6759f11dbe4813"
}
# Show version information
@ -4514,8 +4514,6 @@ fi
# | tools/widl/widltypes.h
# |
if test "$enable_widl_winrt_support" -eq 1; then
patch_apply widl-winrt-support/0003-widl-Support-WinRT-mta-threading-attribute-parsing.patch
patch_apply widl-winrt-support/0004-widl-Support-WinRT-exclusiveto-attribute-parsing.patch
patch_apply widl-winrt-support/0005-widl-Support-WinRT-runtimeclass-type.patch
patch_apply widl-winrt-support/0006-widl-Support-WinRT-eventadd-eventremove-attributes.patch
patch_apply widl-winrt-support/0007-widl-Support-WinRT-flags-attribute-parsing.patch

View File

@ -1,100 +0,0 @@
From feb19e6a9ae86a2a17a981ab7f69481e57c2a465 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 11:35:49 +0200
Subject: [PATCH] widl: Support WinRT mta threading attribute parsing.
---
tools/widl/header.c | 28 ++++++++++++++++++++++++++++
tools/widl/parser.l | 1 +
tools/widl/parser.y | 2 ++
tools/widl/widltypes.h | 3 ++-
4 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index d5e35aac92f..aaae2fcf3c8 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -1480,6 +1480,34 @@ static char *format_apicontract_macro(const type_t *type)
return name;
}
+static void write_winrt_type_comments(FILE *header, const type_t *type)
+{
+ expr_t *contract = get_attrp(type->attrs, ATTR_CONTRACT);
+ fprintf(header, " *\n");
+ if (contract)
+ {
+ const type_t *type = contract->u.tref.type;
+ char *name = format_namespace(type->namespace, "", ".", type->name, NULL);
+ int ver = contract->ref->u.lval;
+ fprintf(header, " * Introduced to %s in version %d.%d\n *\n", name, (ver >> 16) & 0xffff, ver & 0xffff);
+ free(name);
+ }
+ switch (get_attrv(type->attrs, ATTR_THREADING))
+ {
+ case THREADING_SINGLE: fprintf(header, " * Class Threading Model: Single Threaded Apartment\n *\n"); break;
+ case THREADING_BOTH: fprintf(header, " * Class Threading Model: Both Single and Multi Threaded Apartment\n *\n"); break;
+ case THREADING_MTA: fprintf(header, " * Class Threading Model: Multi Threaded Apartment\n *\n"); break;
+ default: break;
+ }
+ switch (get_attrv(type->attrs, ATTR_MARSHALING_BEHAVIOR))
+ {
+ case MARSHALING_AGILE: fprintf(header, " * Class Marshaling Behavior: Agile - Class is agile\n *\n"); break;
+ case MARSHALING_STANDARD: fprintf(header, " * Class Marshaling Behavior: Standard - Class marshals using the standard marshaler\n *\n"); break;
+ case MARSHALING_NONE: fprintf(header, " * Class Marshaling Behavior: None - Class cannot be marshaled\n *\n"); break;
+ default: break;
+ }
+}
+
static void write_apicontract_guard_start(FILE *header, const expr_t *expr)
{
const type_t *type;
diff --git a/tools/widl/parser.l b/tools/widl/parser.l
index 01c6f800a08..067966a85d4 100644
--- a/tools/widl/parser.l
+++ b/tools/widl/parser.l
@@ -385,6 +385,7 @@ static const struct keyword attr_keywords[] =
{"marshaling_behavior", tMARSHALINGBEHAVIOR, 1},
{"maybe", tMAYBE, 0},
{"message", tMESSAGE, 0},
+ {"mta" , tMTA, 1},
{"neutral", tNEUTRAL, 0},
{"nocode", tNOCODE, 0},
{"nonbrowsable", tNONBROWSABLE, 0},
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 48f180cdb49..fd994ae70bb 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -222,6 +222,7 @@ static typelib_t *current_typelib;
%token tMAYBE tMESSAGE
%token tMETHODS
%token tMODULE
+%token tMTA
%token tNAMESPACE
%token tNOCODE tNONBROWSABLE
%token tNONCREATABLE
@@ -1154,6 +1155,7 @@ threading_type:
| tSINGLE { $$ = THREADING_SINGLE; }
| tFREE { $$ = THREADING_FREE; }
| tBOTH { $$ = THREADING_BOTH; }
+ | tMTA { $$ = THREADING_MTA; }
;
pointer_type:
diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h
index 6c130d4701e..8a3bd00e340 100644
--- a/tools/widl/widltypes.h
+++ b/tools/widl/widltypes.h
@@ -269,7 +269,8 @@ enum threading_type
THREADING_NEUTRAL,
THREADING_SINGLE,
THREADING_FREE,
- THREADING_BOTH
+ THREADING_BOTH,
+ THREADING_MTA,
};
enum marshaling_type
--
2.29.2

View File

@ -1,92 +0,0 @@
From 25fe11311b4f20a900d4b001a051c17a980d0b75 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 00:11:08 +0200
Subject: [PATCH] widl: Support WinRT exclusiveto attribute parsing.
---
tools/widl/header.c | 7 +++++++
tools/widl/parser.l | 1 +
tools/widl/parser.y | 3 +++
tools/widl/widltypes.h | 1 +
4 files changed, 12 insertions(+)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 3fa938192d3..1d910364994 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -1485,6 +1485,7 @@ static char *format_apicontract_macro(const type_t *type)
static void write_winrt_type_comments(FILE *header, const type_t *type)
{
expr_t *contract = get_attrp(type->attrs, ATTR_CONTRACT);
+ type_t *exclusiveto = get_attrp(type->attrs, ATTR_EXCLUSIVETO);
fprintf(header, " *\n");
if (contract)
{
@@ -1494,6 +1495,12 @@ static void write_winrt_type_comments(FILE *header, const type_t *type)
fprintf(header, " * Introduced to %s in version %d.%d\n *\n", name, (ver >> 16) & 0xffff, ver & 0xffff);
free(name);
}
+ if (exclusiveto)
+ {
+ char *name = format_namespace(exclusiveto->namespace, "", ".", exclusiveto->name, NULL);
+ fprintf(header, " * Interface is a part of the implementation of type %s\n *\n", name);
+ free(name);
+ }
switch (get_attrv(type->attrs, ATTR_THREADING))
{
case THREADING_SINGLE: fprintf(header, " * Class Threading Model: Single Threaded Apartment\n *\n"); break;
diff --git a/tools/widl/parser.l b/tools/widl/parser.l
index 067966a85d4..de25b7d12c4 100644
--- a/tools/widl/parser.l
+++ b/tools/widl/parser.l
@@ -358,6 +358,7 @@ static const struct keyword attr_keywords[] =
{"encode", tENCODE, 0},
{"endpoint", tENDPOINT, 0},
{"entry", tENTRY, 0},
+ {"exclusiveto", tEXCLUSIVETO, 1},
{"explicit_handle", tEXPLICITHANDLE, 0},
{"fault_status", tFAULTSTATUS, 0},
{"force_allocate", tFORCEALLOCATE, 0},
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index caaa2f49d0c..57f1e3f5301 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -196,6 +196,7 @@ static typelib_t *current_typelib;
%token tDLLNAME tDONTFREE tDOUBLE tDUAL
%token tENABLEALLOCATE tENCODE tENDPOINT
%token tENTRY tENUM tERRORSTATUST
+%token tEXCLUSIVETO
%token tEXPLICITHANDLE tEXTERN
%token tFALSE
%token tFASTCALL tFAULTSTATUS
@@ -561,6 +562,7 @@ attribute: { $$ = NULL; }
| tENCODE { $$ = make_attr(ATTR_ENCODE); }
| tENDPOINT '(' str_list ')' { $$ = make_attrp(ATTR_ENDPOINT, $3); }
| tENTRY '(' expr_const ')' { $$ = make_attrp(ATTR_ENTRY, $3); }
+ | tEXCLUSIVETO '(' decl_spec ')' { $$ = make_attrp(ATTR_EXCLUSIVETO, $3->type); }
| tEXPLICITHANDLE { $$ = make_attr(ATTR_EXPLICIT_HANDLE); }
| tFAULTSTATUS { $$ = make_attr(ATTR_FAULTSTATUS); }
| tFORCEALLOCATE { $$ = make_attr(ATTR_FORCEALLOCATE); }
@@ -2223,6 +2225,7 @@ struct allowed_attr allowed_attr[] =
/* ATTR_ENCODE */ { 0, 0, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "encode" },
/* ATTR_ENDPOINT */ { 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "endpoint" },
/* ATTR_ENTRY */ { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "entry" },
+ /* ATTR_EXCLUSIVETO */ { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "exclusive_to" },
/* ATTR_EXPLICIT_HANDLE */ { 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "explicit_handle" },
/* ATTR_FAULTSTATUS */ { 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "fault_status" },
/* ATTR_FORCEALLOCATE */ { 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "force_allocate" },
diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h
index 8a3bd00e340..7ad0cbea66f 100644
--- a/tools/widl/widltypes.h
+++ b/tools/widl/widltypes.h
@@ -103,6 +103,7 @@ enum attr_type
ATTR_ENCODE,
ATTR_ENDPOINT,
ATTR_ENTRY,
+ ATTR_EXCLUSIVETO,
ATTR_EXPLICIT_HANDLE,
ATTR_FAULTSTATUS,
ATTR_FORCEALLOCATE,
--
2.29.2

View File

@ -1,4 +1,4 @@
From b44446b4cb028670ebc371a7c7f3bb5eef05c7c3 Mon Sep 17 00:00:00 2001
From 62715392ea059ed59519abacb47ab84e1fc5ab64 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 20 Nov 2020 11:06:18 +0100
Subject: [PATCH] widl: Support WinRT runtimeclass type.
@ -10,15 +10,15 @@ type is instead used in the generated code.
---
include/windows.media.speechsynthesis.idl | 25 ++
tools/widl/expr.c | 1 +
tools/widl/header.c | 65 +++++-
tools/widl/header.c | 100 +++++++-
tools/widl/parser.l | 1 +
tools/widl/parser.y | 269 +++++++++++++---------
tools/widl/typegen.c | 4 +
tools/widl/typelib.c | 1 +
tools/widl/typetree.c | 17 ++
tools/widl/typetree.h | 24 ++
tools/widl/widltypes.h | 7 +
10 files changed, 300 insertions(+), 114 deletions(-)
tools/widl/widltypes.h | 10 +-
10 files changed, 337 insertions(+), 115 deletions(-)
diff --git a/include/windows.media.speechsynthesis.idl b/include/windows.media.speechsynthesis.idl
index 7a1de5fcba6..90bc9f279c6 100644
@ -76,10 +76,10 @@ index be8311cfb7f..13bd5a889aa 100644
break;
case TYPE_ALIAS:
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 1d910364994..93bcb4f5214 100644
index d5e35aac92f..cd31d145caa 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -465,6 +465,9 @@ void write_type_left(FILE *h, const decl_spec_t *ds, enum name_type name_type, i
@@ -463,6 +463,9 @@ void write_type_left(FILE *h, const decl_spec_t *ds, enum name_type name_type, i
case TYPE_COCLASS:
fprintf(h, "%s", name);
break;
@ -89,7 +89,7 @@ index 1d910364994..93bcb4f5214 100644
case TYPE_VOID:
fprintf(h, "void");
break;
@@ -547,6 +550,7 @@ void write_type_right(FILE *h, type_t *t, int is_field)
@@ -545,6 +548,7 @@ void write_type_right(FILE *h, type_t *t, int is_field)
case TYPE_MODULE:
case TYPE_COCLASS:
case TYPE_INTERFACE:
@ -97,7 +97,7 @@ index 1d910364994..93bcb4f5214 100644
break;
case TYPE_APICONTRACT:
/* not supposed to be here */
@@ -1033,7 +1037,8 @@ static int is_aggregate_return(const var_t *func)
@@ -1031,7 +1035,8 @@ static int is_aggregate_return(const var_t *func)
{
enum type_type type = type_get_type(type_function_get_rettype(func->declspec.type));
return type == TYPE_STRUCT || type == TYPE_UNION ||
@ -107,10 +107,29 @@ index 1d910364994..93bcb4f5214 100644
}
static char *get_vtbl_entry_name(const type_t *iface, const var_t *func)
@@ -1501,6 +1506,21 @@ static void write_winrt_type_comments(FILE *header, const type_t *type)
fprintf(header, " * Interface is a part of the implementation of type %s\n *\n", name);
free(name);
}
@@ -1480,6 +1485,56 @@ static char *format_apicontract_macro(const type_t *type)
return name;
}
+static void write_winrt_type_comments(FILE *header, const type_t *type)
+{
+ expr_t *contract = get_attrp(type->attrs, ATTR_CONTRACT);
+ type_t *exclusiveto = get_attrp(type->attrs, ATTR_EXCLUSIVETO);
+ fprintf(header, " *\n");
+ if (contract)
+ {
+ const type_t *type = contract->u.tref.type;
+ char *name = format_namespace(type->namespace, "", ".", type->name, NULL);
+ int ver = contract->ref->u.lval;
+ fprintf(header, " * Introduced to %s in version %d.%d\n *\n", name, (ver >> 16) & 0xffff, ver & 0xffff);
+ free(name);
+ }
+ if (exclusiveto)
+ {
+ char *name = format_namespace(exclusiveto->namespace, "", ".", exclusiveto->name, NULL);
+ fprintf(header, " * Interface is a part of the implementation of type %s\n *\n", name);
+ free(name);
+ }
+ if (type_get_type(type) == TYPE_RUNTIMECLASS)
+ {
+ ifref_list_t *ifaces = type_runtimeclass_get_ifaces(type);
@ -126,10 +145,26 @@ index 1d910364994..93bcb4f5214 100644
+ }
+ fprintf(header, " *\n");
+ }
switch (get_attrv(type->attrs, ATTR_THREADING))
{
case THREADING_SINGLE: fprintf(header, " * Class Threading Model: Single Threaded Apartment\n *\n"); break;
@@ -1728,6 +1748,45 @@ static void write_apicontract(FILE *header, type_t *apicontract)
+ switch (get_attrv(type->attrs, ATTR_THREADING))
+ {
+ case THREADING_SINGLE: fprintf(header, " * Class Threading Model: Single Threaded Apartment\n *\n"); break;
+ case THREADING_BOTH: fprintf(header, " * Class Threading Model: Both Single and Multi Threaded Apartment\n *\n"); break;
+ case THREADING_MTA: fprintf(header, " * Class Threading Model: Multi Threaded Apartment\n *\n"); break;
+ default: break;
+ }
+ switch (get_attrv(type->attrs, ATTR_MARSHALING_BEHAVIOR))
+ {
+ case MARSHALING_AGILE: fprintf(header, " * Class Marshaling Behavior: Agile - Class is agile\n *\n"); break;
+ case MARSHALING_STANDARD: fprintf(header, " * Class Marshaling Behavior: Standard - Class marshals using the standard marshaler\n *\n"); break;
+ case MARSHALING_NONE: fprintf(header, " * Class Marshaling Behavior: None - Class cannot be marshaled\n *\n"); break;
+ default: break;
+ }
+}
+
static void write_apicontract_guard_start(FILE *header, const expr_t *expr)
{
const type_t *type;
@@ -1689,6 +1744,45 @@ static void write_apicontract(FILE *header, type_t *apicontract)
free(name);
}
@ -175,7 +210,7 @@ index 1d910364994..93bcb4f5214 100644
static void write_import(FILE *header, const char *fname)
{
char *hname, *p;
@@ -1792,6 +1851,8 @@ static void write_forward_decls(FILE *header, const statement_list_t *stmts)
@@ -1753,6 +1847,8 @@ static void write_forward_decls(FILE *header, const statement_list_t *stmts)
}
else if (type_get_type(stmt->u.type) == TYPE_COCLASS)
write_coclass_forward(header, stmt->u.type);
@ -184,7 +219,7 @@ index 1d910364994..93bcb4f5214 100644
break;
case STMT_TYPEREF:
case STMT_IMPORTLIB:
@@ -1848,6 +1909,8 @@ static void write_header_stmts(FILE *header, const statement_list_t *stmts, cons
@@ -1809,6 +1905,8 @@ static void write_header_stmts(FILE *header, const statement_list_t *stmts, cons
write_coclass(header, stmt->u.type);
else if (type_get_type(stmt->u.type) == TYPE_APICONTRACT)
write_apicontract(header, stmt->u.type);
@ -194,7 +229,7 @@ index 1d910364994..93bcb4f5214 100644
{
write_type_definition(header, stmt->u.type, stmt->declonly);
diff --git a/tools/widl/parser.l b/tools/widl/parser.l
index de25b7d12c4..80a6bc38afb 100644
index 7a811d537d1..6bbfed5e80b 100644
--- a/tools/widl/parser.l
+++ b/tools/widl/parser.l
@@ -298,6 +298,7 @@ static const struct keyword keywords[] = {
@ -206,7 +241,7 @@ index de25b7d12c4..80a6bc38afb 100644
{"signed", tSIGNED, 0},
{"sizeof", tSIZEOF, 0},
diff --git a/tools/widl/parser.y b/tools/widl/parser.y
index 57f1e3f5301..93714ebf712 100644
index 351bbd12107..d12caa06b63 100644
--- a/tools/widl/parser.y
+++ b/tools/widl/parser.y
@@ -100,6 +100,7 @@ static attr_list_t *check_library_attrs(const char *name, attr_list_t *attrs);
@ -710,10 +745,20 @@ index 7abec41a8fd..951084cf875 100644
{
type = type_get_real_type(type);
diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h
index 7ad0cbea66f..77313b30c0f 100644
index fbaabfbc8c3..77313b30c0f 100644
--- a/tools/widl/widltypes.h
+++ b/tools/widl/widltypes.h
@@ -426,6 +426,11 @@ struct alias_details
@@ -270,7 +270,8 @@ enum threading_type
THREADING_NEUTRAL,
THREADING_SINGLE,
THREADING_FREE,
- THREADING_BOTH
+ THREADING_BOTH,
+ THREADING_MTA,
};
enum marshaling_type
@@ -425,6 +426,11 @@ struct alias_details
struct _decl_spec_t aliasee;
};
@ -725,7 +770,7 @@ index 7ad0cbea66f..77313b30c0f 100644
#define HASHMAX 64
struct namespace {
@@ -453,6 +458,7 @@ enum type_type
@@ -452,6 +458,7 @@ enum type_type
TYPE_ARRAY,
TYPE_BITFIELD,
TYPE_APICONTRACT,
@ -733,7 +778,7 @@ index 7ad0cbea66f..77313b30c0f 100644
};
struct _type_t {
@@ -473,6 +479,7 @@ struct _type_t {
@@ -472,6 +479,7 @@ struct _type_t {
struct pointer_details pointer;
struct bitfield_details bitfield;
struct alias_details alias;

View File

@ -1 +1 @@
2d6462cdee2bd87a49382794e5a554f33c367f09
c1824d578ac514d29e79a5a00d6759f11dbe4813