* Dick Porter (dick@ximian.com)
*
* (C) 2002 Ximian, Inc.
+ * Copyright (c) 2002-2006 Novell, Inc.
*/
#include <config.h>
* Can be used only for ascii or latin1 chars.
*/
static gboolean
-unicode_string_equals (const gunichar2 *str1, const guchar *str2)
+unicode_string_equals (const gunichar2 *str1, const gchar *str2)
{
while (*str1 && *str2) {
if (*str1 != *str2)
return *str1 == *str2;
}
-static void process_set_field_object (MonoObject *obj, const guchar *fieldname,
+static void process_set_field_object (MonoObject *obj, const gchar *fieldname,
MonoObject *data)
{
MonoClassField *field;
*(MonoObject **)(((char *)obj) + field->offset)=data;
}
-static void process_set_field_string (MonoObject *obj, const guchar *fieldname,
+static void process_set_field_string (MonoObject *obj, const gchar *fieldname,
const gunichar2 *val, guint32 len)
{
MonoClassField *field;
}
static void process_set_field_string_utf8 (MonoObject *obj,
- const guchar *fieldname,
- const guchar *val)
+ const gchar *fieldname,
+ const gchar *val)
{
MonoClassField *field;
MonoString *string;
*(MonoString **)(((char *)obj) + field->offset)=string;
}
-static void process_set_field_int (MonoObject *obj, const guchar *fieldname,
+static void process_set_field_int (MonoObject *obj, const gchar *fieldname,
guint32 val)
{
MonoClassField *field;
*(guint32 *)(((char *)obj) + field->offset)=val;
}
-static void process_set_field_bool (MonoObject *obj, const guchar *fieldname,
+static void process_set_field_bool (MonoObject *obj, const gchar *fieldname,
gboolean val)
{
MonoClassField *field;
modules_list->len);
for(i=0; i<modules_list->len; i++) {
- mono_array_set (arr, MonoObject *, i,
- g_ptr_array_index (modules_list, i));
+ mono_array_setref (arr, i, g_ptr_array_index (modules_list, i));
}
- g_ptr_array_free (modules_list, FALSE);
+ g_ptr_array_free (modules_list, TRUE);
return(arr);
}
void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this, MonoString *filename)
{
MonoImage *image;
- guchar *filename_utf8;
+ gchar *filename_utf8;
MONO_ARCH_SAVE_REGS;
shellex.cbSize = sizeof(SHELLEXECUTEINFO);
shellex.fMask = SEE_MASK_FLAG_DDEWAIT | SEE_MASK_NOCLOSEPROCESS | SEE_MASK_UNICODE;
- shellex.lpFile = mono_string_chars (proc_start_info->filename);
- shellex.lpParameters = mono_string_chars (proc_start_info->arguments);
shellex.nShow = SW_SHOWNORMAL;
+
+ if (proc_start_info->filename != NULL) {
+ shellex.lpFile = mono_string_chars (proc_start_info->filename);
+ }
- if(mono_string_length (proc_start_info->verb)==0) {
- shellex.lpVerb = NULL;
- } else {
+ if (proc_start_info->arguments != NULL) {
+ shellex.lpParameters = mono_string_chars (proc_start_info->arguments);
+ }
+
+ if (proc_start_info->verb != NULL &&
+ mono_string_length (proc_start_info->verb) != 0) {
shellex.lpVerb = mono_string_chars (proc_start_info->verb);
}
- if(mono_string_length (proc_start_info->working_directory)==0) {
- shellex.lpDirectory = NULL;
- } else {
+ if (proc_start_info->working_directory != NULL &&
+ mono_string_length (proc_start_info->working_directory) != 0) {
shellex.lpDirectory = mono_string_chars (proc_start_info->working_directory);
}