+/**
+ * \file
+ */
#include <glib.h>
#include "class-internals.h"
#include "image.h"
#include "utils/mono-proclib.h"
-#include "io-layer/io-layer.h"
+#include "utils/w32api.h"
#define LOGDEBUG(...)
/* define LOGDEBUG(...) g_message(__VA_ARGS__) */
MonoClassField *field;
MonoString *string;
- mono_error_init (error);
+ error_init (error);
LOGDEBUG (g_message ("%s: Setting field %s to [%s]", __func__, fieldname, g_utf16_to_utf8 (val, len, NULL, NULL, NULL)));
}
static void
-process_set_field_string_char (MonoObject *obj, const gchar *fieldname, const gchar *val)
+process_set_field_string_char (MonoObject *obj, const gchar *fieldname, const gchar *val, MonoError *error)
{
MonoDomain *domain;
MonoClass *klass;
MonoClassField *field;
MonoString *string;
+ error_init (error);
LOGDEBUG (g_message ("%s: Setting field %s to [%s]", __func__, fieldname, val));
domain = mono_object_domain (obj);
field = mono_class_get_field_from_name (klass, fieldname);
g_assert (field);
- string = mono_string_new (domain, val);
+ string = mono_string_new_checked (domain, val, error);
+ return_if_nok (error);
mono_gc_wbarrier_generic_store (((char *)obj) + field->offset, (MonoObject*)string);
}
gunichar2 *lang_key, *buffer;
UINT chars;
- mono_error_init (error);
+ error_init (error);
lang_key_utf8 = g_strdup_printf (key, lang_lo, lang_hi, 0x04, 0xb0);
gunichar2 lang_buf[128];
guint32 lang, lang_count;
- mono_error_init (error);
+ error_init (error);
datalen = mono_w32process_get_fileversion_info_size (filename, &verinfohandle);
if (datalen) {
MODULEINFO modinfo;
BOOL ok;
- mono_error_init (error);
+ error_init (error);
/* Build a System.Diagnostics.ProcessModule with the data. */
item = mono_object_new_checked (domain, proc_class, error);
gchar *filename;
const gchar *modulename;
- mono_error_init (error);
+ error_init (error);
domain = mono_domain_get ();
filename = g_strdup_printf ("[In Memory] %s", modulename);
process_get_assembly_fileversion (filever, assembly);
- process_set_field_string_char (filever, "filename", filename);
+ process_set_field_string_char (filever, "filename", filename, error);
+ return_val_if_nok (error, NULL);
process_set_field_object (item, "version_info", filever);
process_set_field_intptr (item, "baseaddr", assembly->image->raw_data);
process_set_field_int (item, "memory_size", assembly->image->raw_data_len);
- process_set_field_string_char (item, "filename", filename);
- process_set_field_string_char (item, "modulename", modulename);
+ process_set_field_string_char (item, "filename", filename, error);
+ return_val_if_nok (error, NULL);
+ process_set_field_string_char (item, "modulename", modulename, error);
+ return_val_if_nok (error, NULL);
g_free (filename);