projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
[mono.git]
/
mono
/
metadata
/
process.c
diff --git
a/mono/metadata/process.c
b/mono/metadata/process.c
index 4a605001619514a09c9a730058d2b4e783fc386f..6aa9e66d9f557d8a51392cdb573794d843a18efd 100644
(file)
--- a/
mono/metadata/process.c
+++ b/
mono/metadata/process.c
@@
-5,6
+5,7
@@
* Dick Porter (dick@ximian.com)
*
* (C) 2002 Ximian, Inc.
* Dick Porter (dick@ximian.com)
*
* (C) 2002 Ximian, Inc.
+ * Copyright (c) 2002-2006 Novell, Inc.
*/
#include <config.h>
*/
#include <config.h>
@@
-102,7
+103,7
@@
static guint32 unicode_bytes (const gunichar2 *str)
* Can be used only for ascii or latin1 chars.
*/
static gboolean
* Can be used only for ascii or latin1 chars.
*/
static gboolean
-unicode_string_equals (const gunichar2 *str1, const g
u
char *str2)
+unicode_string_equals (const gunichar2 *str1, const gchar *str2)
{
while (*str1 && *str2) {
if (*str1 != *str2)
{
while (*str1 && *str2) {
if (*str1 != *str2)
@@
-113,7
+114,7
@@
unicode_string_equals (const gunichar2 *str1, const guchar *str2)
return *str1 == *str2;
}
return *str1 == *str2;
}
-static void process_set_field_object (MonoObject *obj, const g
u
char *fieldname,
+static void process_set_field_object (MonoObject *obj, const gchar *fieldname,
MonoObject *data)
{
MonoClassField *field;
MonoObject *data)
{
MonoClassField *field;
@@
-128,7
+129,7
@@
static void process_set_field_object (MonoObject *obj, const guchar *fieldname,
*(MonoObject **)(((char *)obj) + field->offset)=data;
}
*(MonoObject **)(((char *)obj) + field->offset)=data;
}
-static void process_set_field_string (MonoObject *obj, const g
u
char *fieldname,
+static void process_set_field_string (MonoObject *obj, const gchar *fieldname,
const gunichar2 *val, guint32 len)
{
MonoClassField *field;
const gunichar2 *val, guint32 len)
{
MonoClassField *field;
@@
-147,8
+148,8
@@
static void process_set_field_string (MonoObject *obj, const guchar *fieldname,
}
static void process_set_field_string_utf8 (MonoObject *obj,
}
static void process_set_field_string_utf8 (MonoObject *obj,
- const g
u
char *fieldname,
- const g
u
char *val)
+ const gchar *fieldname,
+ const gchar *val)
{
MonoClassField *field;
MonoString *string;
{
MonoClassField *field;
MonoString *string;
@@
-165,7
+166,7
@@
static void process_set_field_string_utf8 (MonoObject *obj,
*(MonoString **)(((char *)obj) + field->offset)=string;
}
*(MonoString **)(((char *)obj) + field->offset)=string;
}
-static void process_set_field_int (MonoObject *obj, const g
u
char *fieldname,
+static void process_set_field_int (MonoObject *obj, const gchar *fieldname,
guint32 val)
{
MonoClassField *field;
guint32 val)
{
MonoClassField *field;
@@
-180,7
+181,7
@@
static void process_set_field_int (MonoObject *obj, const guchar *fieldname,
*(guint32 *)(((char *)obj) + field->offset)=val;
}
*(guint32 *)(((char *)obj) + field->offset)=val;
}
-static void process_set_field_bool (MonoObject *obj, const g
u
char *fieldname,
+static void process_set_field_bool (MonoObject *obj, const gchar *fieldname,
gboolean val)
{
MonoClassField *field;
gboolean val)
{
MonoClassField *field;
@@
-630,11
+631,10
@@
MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
modules_list->len);
for(i=0; i<modules_list->len; i++) {
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,
FALS
E);
+ g_ptr_array_free (modules_list,
TRU
E);
return(arr);
}
return(arr);
}
@@
-642,7
+642,7
@@
MonoArray *ves_icall_System_Diagnostics_Process_GetModules_internal (MonoObject
void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this, MonoString *filename)
{
MonoImage *image;
void ves_icall_System_Diagnostics_FileVersionInfo_GetVersionInfo_internal (MonoObject *this, MonoString *filename)
{
MonoImage *image;
- g
u
char *filename_utf8;
+ gchar *filename_utf8;
MONO_ARCH_SAVE_REGS;
MONO_ARCH_SAVE_REGS;
@@
-725,19
+725,23
@@
MonoBoolean ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal (MonoPr
shellex.cbSize = sizeof(SHELLEXECUTEINFO);
shellex.fMask = SEE_MASK_FLAG_DDEWAIT | SEE_MASK_NOCLOSEPROCESS | SEE_MASK_UNICODE;
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;
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);
}
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);
}
shellex.lpDirectory = mono_string_chars (proc_start_info->working_directory);
}