#endif
static void
-append_class_name (GString *res, MonoClass *class, gboolean include_namespace)
+append_class_name (GString *res, MonoClass *klass, gboolean include_namespace)
{
- if (!class) {
+ if (!klass) {
g_string_append (res, "Unknown");
return;
}
- if (class->nested_in) {
- append_class_name (res, class->nested_in, include_namespace);
+ if (klass->nested_in) {
+ append_class_name (res, klass->nested_in, include_namespace);
g_string_append_c (res, '/');
}
- if (include_namespace && *(class->name_space)) {
- g_string_append (res, class->name_space);
+ if (include_namespace && *(klass->name_space)) {
+ g_string_append (res, klass->name_space);
g_string_append_c (res, '.');
}
- g_string_append (res, class->name);
+ g_string_append (res, klass->name);
}
static MonoClass*
return result;
}
+char*
+mono_signature_full_name (MonoMethodSignature *sig)
+{
+ int i;
+ char *result;
+ GString *res;
+
+ if (!sig)
+ return g_strdup ("<invalid signature>");
+
+ res = g_string_new ("");
+
+ mono_type_get_desc (res, sig->ret, TRUE);
+ g_string_append_c (res, '(');
+ for (i = 0; i < sig->param_count; ++i) {
+ if (i > 0)
+ g_string_append_c (res, ',');
+ mono_type_get_desc (res, sig->params [i], TRUE);
+ }
+ g_string_append_c (res, ')');
+ result = res->str;
+ g_string_free (res, FALSE);
+ return result;
+}
+
static void
ginst_get_desc (GString *str, MonoGenericInst *ginst)
{
}
static void
-objval_describe (MonoClass *class, const char *addr)
+objval_describe (MonoClass *klass, const char *addr)
{
MonoClassField *field;
MonoClass *p;
const char *field_ptr;
gssize type_offset = 0;
- if (class->valuetype)
+
+ if (klass->valuetype)
type_offset = -sizeof (MonoObject);
- for (p = class; p != NULL; p = p->parent) {
+ for (p = klass; p != NULL; p = p->parent) {
gpointer iter = NULL;
int printed_header = FALSE;
while ((field = mono_class_get_fields (p, &iter))) {
if (field->type->attrs & (FIELD_ATTRIBUTE_STATIC | FIELD_ATTRIBUTE_HAS_FIELD_RVA))
continue;
- if (p != class && !printed_header) {
+ if (p != klass && !printed_header) {
const char *sep;
g_print ("In class ");
sep = print_name_space (p);
void
mono_object_describe_fields (MonoObject *obj)
{
- MonoClass *class = mono_object_class (obj);
- objval_describe (class, (char*)obj);
+ MonoClass *klass = mono_object_class (obj);
+ objval_describe (klass, (char*)obj);
}
/**
if (!vtable)
return;
- if (!(addr = mono_vtable_get_static_field_data (vtable)))
+ if (!(addr = (const char *)mono_vtable_get_static_field_data (vtable)))
return;
for (p = klass; p != NULL; p = p->parent) {
continue;
if (!(field->type->attrs & (FIELD_ATTRIBUTE_STATIC | FIELD_ATTRIBUTE_HAS_FIELD_RVA)))
continue;
- // Special static fields don't have a domain-level static slot
- if (mono_class_field_is_special_static (field))
- continue;
field_ptr = (const char*)addr + field->offset;