projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[runtime] Initialize the class name cache using double checked locking.
[mono.git]
/
mono
/
metadata
/
domain-internals.h
diff --git
a/mono/metadata/domain-internals.h
b/mono/metadata/domain-internals.h
index a5fc96dec612bcc55e66d709aff4f89e8cef9f67..b70d40695886a845801f4de7096dab6605952052 100644
(file)
--- a/
mono/metadata/domain-internals.h
+++ b/
mono/metadata/domain-internals.h
@@
-18,7
+18,6
@@
extern mono_mutex_t mono_delegate_section;
extern mono_mutex_t mono_delegate_section;
-extern mono_mutex_t mono_strtod_mutex;
/*
* If this is set, the memory belonging to appdomains is not freed when a domain is
/*
* If this is set, the memory belonging to appdomains is not freed when a domain is
@@
-101,13
+100,7
@@
typedef struct {
* Contains information about the type arguments for generic shared methods.
*/
typedef struct {
* Contains information about the type arguments for generic shared methods.
*/
typedef struct {
- /*
- * If not NULL, determines whenever the class type arguments of the gshared method are references or vtypes.
- * The array length is equal to class_inst->type_argv.
- */
- gboolean *var_is_vt;
- /* Same for method type parameters */
- gboolean *mvar_is_vt;
+ gboolean is_gsharedvt;
} MonoGenericSharingContext;
/* Simplified DWARF location list entry */
} MonoGenericSharingContext;
/* Simplified DWARF location list entry */
@@
-184,21
+177,17
@@
typedef struct
} MonoArchEHJitInfo;
typedef struct {
} MonoArchEHJitInfo;
typedef struct {
- gboolean cas_inited:1;
- gboolean cas_class_assert:1;
- gboolean cas_class_deny:1;
- gboolean cas_class_permitonly:1;
- gboolean cas_method_assert:1;
- gboolean cas_method_deny:1;
- gboolean cas_method_permitonly:1;
-} MonoMethodCasInfo;
+ /* Relative to code_start */
+ int thunks_offset;
+ int thunks_size;
+} MonoThunkJitInfo;
typedef enum {
JIT_INFO_NONE = 0,
typedef enum {
JIT_INFO_NONE = 0,
- JIT_INFO_HAS_
CAS
_INFO = (1 << 0),
- JIT_INFO_HAS_
GENERIC_JIT_INFO
= (1 << 1),
- JIT_INFO_HAS_
TRY_BLOCK_HOLES
= (1 << 2),
- JIT_INFO_HAS_
ARCH_EH
_INFO = (1 << 3)
+ JIT_INFO_HAS_
GENERIC_JIT
_INFO = (1 << 0),
+ JIT_INFO_HAS_
TRY_BLOCK_HOLES
= (1 << 1),
+ JIT_INFO_HAS_
ARCH_EH_INFO
= (1 << 2),
+ JIT_INFO_HAS_
THUNK
_INFO = (1 << 3)
} MonoJitInfoFlags;
struct _MonoJitInfo {
} MonoJitInfoFlags;
struct _MonoJitInfo {
@@
-219,10
+208,10
@@
struct _MonoJitInfo {
guint32 num_clauses:15;
/* Whenever the code is domain neutral or 'shared' */
gboolean domain_neutral:1;
guint32 num_clauses:15;
/* Whenever the code is domain neutral or 'shared' */
gboolean domain_neutral:1;
- gboolean has_cas_info:1;
gboolean has_generic_jit_info:1;
gboolean has_try_block_holes:1;
gboolean has_arch_eh_info:1;
gboolean has_generic_jit_info:1;
gboolean has_try_block_holes:1;
gboolean has_arch_eh_info:1;
+ gboolean has_thunk_info:1;
gboolean from_aot:1;
gboolean from_llvm:1;
gboolean dbg_attrs_inited:1;
gboolean from_aot:1;
gboolean from_llvm:1;
gboolean dbg_attrs_inited:1;
@@
-244,6
+233,7
@@
struct _MonoJitInfo {
/* There is an optional MonoGenericJitInfo after the clauses */
/* There is an optional MonoTryBlockHoleTableJitInfo after MonoGenericJitInfo clauses*/
/* There is an optional MonoArchEHJitInfo after MonoTryBlockHoleTableJitInfo */
/* There is an optional MonoGenericJitInfo after the clauses */
/* There is an optional MonoTryBlockHoleTableJitInfo after MonoGenericJitInfo clauses*/
/* There is an optional MonoArchEHJitInfo after MonoTryBlockHoleTableJitInfo */
+ /* There is an optional MonoThunkJitInfo after MonoArchEHJitInfo */
};
#define MONO_SIZEOF_JIT_INFO (offsetof (struct _MonoJitInfo, clauses))
};
#define MONO_SIZEOF_JIT_INFO (offsetof (struct _MonoJitInfo, clauses))
@@
-288,13
+278,6
@@
typedef struct _MonoThunkFreeList {
typedef struct _MonoJitCodeHash MonoJitCodeHash;
typedef struct _MonoJitCodeHash MonoJitCodeHash;
-typedef struct _MonoTlsDataRecord MonoTlsDataRecord;
-struct _MonoTlsDataRecord {
- MonoTlsDataRecord *next;
- guint32 tls_offset;
- guint32 size;
-};
-
struct _MonoDomain {
/*
* This lock must never be taken before the loader lock,
struct _MonoDomain {
/*
* This lock must never be taken before the loader lock,
@@
-372,7
+355,6
@@
struct _MonoDomain {
MonoMethod *private_invoke_method;
/* Used to store offsets of thread and context static fields */
GHashTable *special_static_fields;
MonoMethod *private_invoke_method;
/* Used to store offsets of thread and context static fields */
GHashTable *special_static_fields;
- MonoTlsDataRecord *tlsrec_list;
/*
* This must be a GHashTable, since these objects can't be finalized
* if the hashtable contains a GC visible reference to them.
/*
* This must be a GHashTable, since these objects can't be finalized
* if the hashtable contains a GC visible reference to them.
@@
-417,13
+399,6
@@
struct _MonoDomain {
MonoClass *sockaddr_class;
MonoClassField *sockaddr_data_field;
MonoClass *sockaddr_class;
MonoClassField *sockaddr_data_field;
- /* Used by threadpool.c */
- MonoImage *system_image;
- MonoClass *corlib_asyncresult_class;
- MonoClass *socket_class;
- MonoClass *ad_unloaded_ex_class;
- MonoClass *process_class;
-
/* Cache function pointers for architectures */
/* that require wrappers */
GHashTable *ftnptrs_hash;
/* Cache function pointers for architectures */
/* that require wrappers */
GHashTable *ftnptrs_hash;
@@
-550,8
+525,8
@@
mono_jit_info_get_try_block_hole_table_info (MonoJitInfo *ji);
MonoArchEHJitInfo*
mono_jit_info_get_arch_eh_info (MonoJitInfo *ji);
MonoArchEHJitInfo*
mono_jit_info_get_arch_eh_info (MonoJitInfo *ji);
-Mono
MethodCas
Info*
-mono_jit_info_get_
cas
_info (MonoJitInfo *ji);
+Mono
ThunkJit
Info*
+mono_jit_info_get_
thunk
_info (MonoJitInfo *ji);
/*
* Installs a new function which is used to return a MonoJitInfo for a method inside
/*
* Installs a new function which is used to return a MonoJitInfo for a method inside