projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[runtime] Don't insta-fail when a faulty COM type is encountered. (#5616)
[mono.git]
/
mono
/
metadata
/
method-builder.h
diff --git
a/mono/metadata/method-builder.h
b/mono/metadata/method-builder.h
index 73b4e273aad4e39af6a057db92ea0298c8c3d403..92d71dd4eadb1ae33dd0eeb67cbc081d726492bf 100644
(file)
--- a/
mono/metadata/method-builder.h
+++ b/
mono/metadata/method-builder.h
@@
-1,5
+1,6
@@
-/*
- * method-builder.h: Functions for creating IL methods at runtime.
+/**
+ * \file
+ * Functions for creating IL methods at runtime.
*
* Author:
* Paolo Molaro (lupus@ximian.com)
*
* Author:
* Paolo Molaro (lupus@ximian.com)
@@
-11,6
+12,7
@@
#ifndef __MONO_METHOD_BUILDER_H__
#define __MONO_METHOD_BUILDER_H__
#ifndef __MONO_METHOD_BUILDER_H__
#define __MONO_METHOD_BUILDER_H__
+#include "config.h"
#include <mono/metadata/class.h>
#include <mono/metadata/object-internals.h>
#include <mono/metadata/class-internals.h>
#include <mono/metadata/class.h>
#include <mono/metadata/object-internals.h>
#include <mono/metadata/class-internals.h>
@@
-22,124
+24,142
@@
G_BEGIN_DECLS
typedef struct _MonoMethodBuilder {
MonoMethod *method;
char *name;
typedef struct _MonoMethodBuilder {
MonoMethod *method;
char *name;
+ gboolean no_dup_name;
+#ifdef ENABLE_ILGEN
GList *locals_list;
int locals;
gboolean dynamic;
GList *locals_list;
int locals;
gboolean dynamic;
- gboolean no_dup_name;
- gboolean skip_visibility;
+ gboolean skip_visibility, init_locals;
guint32 code_size, pos;
unsigned char *code;
int num_clauses;
MonoExceptionClause *clauses;
guint32 code_size, pos;
unsigned char *code;
int num_clauses;
MonoExceptionClause *clauses;
+ const char **param_names;
+#endif
} MonoMethodBuilder;
MonoMethodBuilder *
} MonoMethodBuilder;
MonoMethodBuilder *
-mono_mb_new (MonoClass *klass, const char *name, MonoWrapperType type)
MONO_INTERNAL
;
+mono_mb_new (MonoClass *klass, const char *name, MonoWrapperType type);
MonoMethodBuilder *
MonoMethodBuilder *
-mono_mb_new_no_dup_name (MonoClass *klass, const char *name, MonoWrapperType type)
MONO_INTERNAL
;
+mono_mb_new_no_dup_name (MonoClass *klass, const char *name, MonoWrapperType type);
void
void
-mono_mb_free (MonoMethodBuilder *mb)
MONO_INTERNAL
;
+mono_mb_free (MonoMethodBuilder *mb);
+MonoMethod *
+mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, int max_stack);
+
+guint32
+mono_mb_add_data (MonoMethodBuilder *mb, gpointer data);
+
+#ifdef ENABLE_ILGEN
void
void
-mono_mb_patch_addr (MonoMethodBuilder *mb, int pos, int value)
MONO_INTERNAL
;
+mono_mb_patch_addr (MonoMethodBuilder *mb, int pos, int value);
void
void
-mono_mb_patch_addr_s (MonoMethodBuilder *mb, int pos, gint8 value)
MONO_INTERNAL
;
+mono_mb_patch_addr_s (MonoMethodBuilder *mb, int pos, gint8 value);
void
void
-mono_mb_patch_branch (MonoMethodBuilder *mb, guint32 pos)
MONO_INTERNAL
;
+mono_mb_patch_branch (MonoMethodBuilder *mb, guint32 pos);
void
void
-mono_mb_patch_short_branch (MonoMethodBuilder *mb, guint32 pos)
MONO_INTERNAL
;
+mono_mb_patch_short_branch (MonoMethodBuilder *mb, guint32 pos);
int
int
-mono_mb_get_label (MonoMethodBuilder *mb)
MONO_INTERNAL
;
+mono_mb_get_label (MonoMethodBuilder *mb);
int
int
-mono_mb_get_pos (MonoMethodBuilder *mb) MONO_INTERNAL;
-
-guint32
-mono_mb_add_data (MonoMethodBuilder *mb, gpointer data) MONO_INTERNAL;
+mono_mb_get_pos (MonoMethodBuilder *mb);
void
void
-mono_mb_emit_ptr (MonoMethodBuilder *mb, gpointer ptr)
MONO_INTERNAL
;
+mono_mb_emit_ptr (MonoMethodBuilder *mb, gpointer ptr);
void
void
-mono_mb_emit_calli (MonoMethodBuilder *mb, MonoMethodSignature *sig)
MONO_INTERNAL
;
+mono_mb_emit_calli (MonoMethodBuilder *mb, MonoMethodSignature *sig);
void
void
-mono_mb_emit_native_call (MonoMethodBuilder *mb, MonoMethodSignature *sig, gpointer func)
MONO_INTERNAL
;
+mono_mb_emit_native_call (MonoMethodBuilder *mb, MonoMethodSignature *sig, gpointer func);
void
void
-mono_mb_emit_managed_call (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *opt_sig)
MONO_INTERNAL
;
+mono_mb_emit_managed_call (MonoMethodBuilder *mb, MonoMethod *method, MonoMethodSignature *opt_sig);
void
void
-mono_mb_emit_icall (MonoMethodBuilder *mb, gpointer func)
MONO_INTERNAL
;
+mono_mb_emit_icall (MonoMethodBuilder *mb, gpointer func);
int
int
-mono_mb_add_local (MonoMethodBuilder *mb, MonoType *type)
MONO_INTERNAL
;
+mono_mb_add_local (MonoMethodBuilder *mb, MonoType *type);
-MonoMethod *
-mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, int max_stack) MONO_INTERNAL;
+void
+mono_mb_emit_ldarg (MonoMethodBuilder *mb, guint argnum);
+
+void
+mono_mb_emit_ldarg_addr (MonoMethodBuilder *mb, guint argnum);
void
void
-mono_mb_emit_ld
arg (MonoMethodBuilder *mb, guint argnum) MONO_INTERNAL
;
+mono_mb_emit_ld
loc (MonoMethodBuilder *mb, guint num)
;
void
void
-mono_mb_emit_ld
arg_addr (MonoMethodBuilder *mb, guint argnum) MONO_INTERNAL
;
+mono_mb_emit_ld
loc_addr (MonoMethodBuilder *mb, guint locnum)
;
void
void
-mono_mb_emit_
ldloc (MonoMethodBuilder *mb, guint num) MONO_INTERNAL
;
+mono_mb_emit_
stloc (MonoMethodBuilder *mb, guint num)
;
void
void
-mono_mb_emit_
ldloc_addr (MonoMethodBuilder *mb, guint locnum) MONO_INTERNAL
;
+mono_mb_emit_
exception (MonoMethodBuilder *mb, const char *exc_name, const char *msg)
;
void
void
-mono_mb_emit_
stloc (MonoMethodBuilder *mb, guint num) MONO_INTERNAL
;
+mono_mb_emit_
exception_full (MonoMethodBuilder *mb, const char *exc_nspace, const char *exc_name, const char *msg)
;
void
void
-mono_mb_emit_exception
(MonoMethodBuilder *mb, const char *exc_name, const char *msg) MONO_INTERNAL
;
+mono_mb_emit_exception
_for_error (MonoMethodBuilder *mb, MonoError *error)
;
void
void
-mono_mb_emit_
exception_full (MonoMethodBuilder *mb, const char *exc_nspace, const char *exc_name, const char *msg) MONO_INTERNAL
;
+mono_mb_emit_
icon (MonoMethodBuilder *mb, gint32 value)
;
void
void
-mono_mb_emit_icon
(MonoMethodBuilder *mb, gint32 value) MONO_INTERNAL
;
+mono_mb_emit_icon
8 (MonoMethodBuilder *mb, gint64 value)
;
guint32
guint32
-mono_mb_emit_branch (MonoMethodBuilder *mb, guint8 op)
MONO_INTERNAL
;
+mono_mb_emit_branch (MonoMethodBuilder *mb, guint8 op);
guint32
guint32
-mono_mb_emit_short_branch (MonoMethodBuilder *mb, guint8 op) MONO_INTERNAL;
+mono_mb_emit_short_branch (MonoMethodBuilder *mb, guint8 op);
+
+void
+mono_mb_emit_branch_label (MonoMethodBuilder *mb, guint8 op, guint32 label);
+
+void
+mono_mb_emit_add_to_local (MonoMethodBuilder *mb, guint16 local, gint32 incr);
void
void
-mono_mb_emit_
branch_label (MonoMethodBuilder *mb, guint8 op, guint32 label) MONO_INTERNAL
;
+mono_mb_emit_
ldflda (MonoMethodBuilder *mb, gint32 offset)
;
void
void
-mono_mb_emit_
add_to_local (MonoMethodBuilder *mb, guint16 local, gint32 incr) MONO_INTERNAL
;
+mono_mb_emit_
byte (MonoMethodBuilder *mb, guint8 op)
;
void
void
-mono_mb_emit_
ldflda (MonoMethodBuilder *mb, gint32 offset) MONO_INTERNAL
;
+mono_mb_emit_
i2 (MonoMethodBuilder *mb, gint16 data)
;
void
void
-mono_mb_emit_
byte (MonoMethodBuilder *mb, guint8 op) MONO_INTERNAL
;
+mono_mb_emit_
i4 (MonoMethodBuilder *mb, gint32 data)
;
void
void
-mono_mb_emit_i
2 (MonoMethodBuilder *mb, gint16 data) MONO_INTERNAL
;
+mono_mb_emit_i
8 (MonoMethodBuilder *mb, gint64 data)
;
void
void
-mono_mb_emit_
i4 (MonoMethodBuilder *mb, gint32 data) MONO_INTERNAL
;
+mono_mb_emit_
op (MonoMethodBuilder *mb, guint8 op, gpointer data)
;
void
void
-mono_mb_emit_
op (MonoMethodBuilder *mb, guint8 op, gpointer data) MONO_INTERNAL
;
+mono_mb_emit_
ldstr (MonoMethodBuilder *mb, char *str)
;
void
void
-mono_mb_
emit_ldstr (MonoMethodBuilder *mb, char *str) MONO_INTERNAL
;
+mono_mb_
set_clauses (MonoMethodBuilder *mb, int num_clauses, MonoExceptionClause *clauses)
;
void
void
-mono_mb_set_clauses (MonoMethodBuilder *mb, int num_clauses, MonoExceptionClause *clauses) MONO_INTERNAL;
+mono_mb_set_param_names (MonoMethodBuilder *mb, const char **param_names);
+
+#endif
G_END_DECLS
G_END_DECLS