static int
id_from_string (MonoString *instance, gboolean is_process)
{
+ MonoError error;
int id = -1;
if (mono_string_length (instance)) {
- char *id_str = mono_string_to_utf8 (instance);
+ char *id_str = mono_string_to_utf8_checked (instance, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
char *end;
id = strtol (id_str, &end, 0);
if (end == id_str && !is_process)
static void*
network_get_impl (MonoString* counter, MonoString* instance, int *type, MonoBoolean *custom)
{
+ MonoError error;
const CounterDesc *cdesc;
NetworkVtableArg *narg;
ImplVtable *vtable;
*custom = FALSE;
if ((cdesc = get_counter_in_category (&predef_categories [CATEGORY_NETWORK], counter))) {
- instance_name = mono_string_to_utf8 (instance);
+ instance_name = mono_string_to_utf8_checked (instance, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
narg = g_new0 (NetworkVtableArg, 1);
narg->id = cdesc->id;
narg->name = instance_name;
static ImplVtable*
predef_vtable (void *arg, MonoString *instance)
{
+ MonoError error;
MonoSharedArea *area;
PredefVtable *vtable;
- char *pids = mono_string_to_utf8 (instance);
+ char *pids = mono_string_to_utf8_checked (instance, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
int pid;
pid = atoi (pids);
static void*
custom_get_impl (SharedCategory *cat, MonoString* counter, MonoString* instance, int *type)
{
+ MonoError error;
SharedCounter *scounter;
SharedInstance* inst;
char *name;
if (!scounter)
return NULL;
*type = simple_type_to_type [scounter->type];
- name = mono_string_to_utf8 (counter);
+ name = mono_string_to_utf8_checked (counter, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
inst = custom_get_instance (cat, scounter, name);
g_free (name);
if (!inst)
SharedCategory *cat;
/* FIXME: ensure there isn't a category created already */
- mono_error_init (&error);
name = mono_string_to_utf8_checked (category, &error);
if (!mono_error_ok (&error))
goto failure;
int
mono_perfcounter_instance_exists (MonoString *instance, MonoString *category, MonoString *machine)
{
+ MonoError error;
const CategoryDesc *cdesc;
SharedInstance *sinst;
char *name;
scat = find_custom_category (category);
if (!scat)
return FALSE;
- name = mono_string_to_utf8 (instance);
+ name = mono_string_to_utf8_checked (instance, &error);
+ mono_error_raise_exception (&error); /* FIXME don't raise here */
sinst = find_custom_instance (scat, name);
g_free (name);
if (sinst)