2004-02-08 Martin Baulig <martin@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2004-02-08  Martin Baulig  <martin@ximian.com>
2
3         * icall.c (ves_icall_Type_BindGenericParameters): Just call
4         mono_type_get_object(), this is now creating a `MonoGenericInst'
5         for MONO_TYPE_GENERICINST.
6         (ves_icall_MonoGenericInst_GetParentType): Likewise.
7         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
8
9         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
10         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
11         (inflated_method_get_object): Added `MonoClass *refclass' argument.
12         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
13         and reflected type.
14
15         * reflection.h (MonoReflectionInflatedMethod): Removed
16         `declaring_type' and `reflected_type'.
17
18 2004-02-08  Martin Baulig  <martin@ximian.com>
19
20         * class.h (MonoGenericInst): Added `MonoType *parent' and
21         `MonoType **ifaces'.
22
23         * reflection.h (MonoReflectionGenericInst): Removed `klass',
24         `parent' and `interfaces'.
25
26         * reflection.c (mono_reflection_bind_generic_parameters): Take a
27         `MonoType *' argument and return a `MonoType *'.
28
29         * icall.c
30         (ves_icall_MonoGenericInst_GetParentType): New interncall.
31         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
32
33 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
34
35         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
36         valuetype marshalling.
37
38 2004-02-06  Martin Baulig  <martin@ximian.com>
39
40         * class.c
41         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
42         (my_mono_class_from_generic_parameter): Likewise.
43
44 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
45
46         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
47         contents of the symbol files lazily.
48
49         * object.h (MonoThread): Add 'name' and 'name_len' fields.
50
51         * threads.h threads.c icall.c: New icalls for getting and setting the
52         threads name.
53
54 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
55
56         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
57         Raise an exception when the domain is not found.
58
59 2004-02-03  Martin Baulig  <martin@ximian.com>
60
61         * reflection.c (mono_image_get_methodspec_token): Use the
62         uninflated signature; fixes gen-33.
63
64 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
65
66         * gc.c threads.c: Make the finalizer thread a normal managed thread so
67         the finalizer code can use thread functionality.
68
69         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
70         the finalizer thread.
71
72         * threads.c: Make some functions more robust.
73
74         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
75
76         * metadata.h: Add new marshalling conventions.
77
78         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
79         stringbuilder marshalling. Fixes #53700.
80
81         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
82
83         * reflection.c (mono_image_get_type_info): Save declarative security
84         info.
85
86         * reflection.c (mono_image_get_field_info): Handle uninitialized 
87         unmanaged fields as well.
88
89         * appdomain.c: Bump corlib version.
90
91 2004-02-01  Martin Baulig  <martin@ximian.com>
92
93         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
94         method type arguments.  
95
96 2004-01-30  Duncan Mak  <duncan@ximian.com>
97
98         * marshal.h: Add prototype for
99         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
100         and
101         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
102         fix the build.
103
104 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
105
106         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
107         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
108
109 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
110
111         * marshal.c (mono_marshal_get_native_wrapper): Add support for
112         custom marshalling of valuetypes.
113
114         * marshal.c: Fix some warnings.
115
116 2004-01-29  Martin Baulig  <martin@ximian.com>
117
118         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
119         for generic method parameters.
120
121         * reflection.c (method_encode_methodspec): Write the uninflated
122         signature into the methodspec table.
123         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
124         is always the uninflated method.
125         (reflection_methodbuilder_to_mono_method): Copy the generic
126         parameters from the MethodBuilder into `header->gen_params'.
127
128 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
129
130         * class.c (mono_class_from_generic_parameter): Fix warning.
131
132 2004-01-27  Martin Baulig  <martin@ximian.com>
133
134         * class.c (mono_class_from_generic_parameter): Don't create
135         `klass->methods' here.  
136
137 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
138
139         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
140         extension since it does not work with libraries named lib<FOO>.dll.so.
141
142 2004-01-25  Martin Baulig  <martin@ximian.com>
143
144         * class.c (mono_class_inflate_generic_type): Added support for
145         MONO_TYPE_GENERICINST.
146
147         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
148         inflate methods on open constructed types.      
149
150 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
151
152         * object.c: fire ProcessExit event in the root AppDomain after running
153         Main. Fixes bug #53299.
154
155 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
156
157         * socket-io.c: include the new socket-wrappers.h header.
158         Use the wrappers instead of the unix socket functions to make the code
159         more clear.
160
161 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
162
163         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
164
165         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
166         Fixes #22532.
167
168 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
169
170         * reflection.c (mono_image_create_pefile): Handle the case when the
171         entry point is not a MethodBuilder.
172
173         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
174         field to ReflectionMethod since it is not allways a builder.
175
176         * reflection.c (type_get_fully_qualified_name): New helper function to
177         return the fully qualified name of a type.
178
179         * reflection.c (encode_marshal_blob): Always emit the fully qualified
180         type name for custom marshallers.
181
182         * reflection.c (mono_marshal_spec_from_builder): Ditto.
183
184         * class.c (mono_class_setup_vtable): If a parent class already 
185         implements an interface, use the implementing methods from that class.
186         Fixes #53148.
187
188 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
189
190         * threadpool.c: just return instead of ExitThread to allow for thread
191         clean up earlier.
192
193 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
194
195         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
196         when closing resource modules.
197
198         * reflection.c (mono_image_create_pefile): Handle the case when the
199         entry point is not a MethodBuilder.
200
201         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
202         field to ReflectionMethod since it is not allways a builder.
203
204 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
205
206         * marshal.c (mono_marshal_get_managed_wrapper): 
207         mono_marshal_alloc takes native int so CONV_I
208         the arg for 64bits.
209
210 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
211
212         * reflection.c (fixup_cattrs): New function to fixup the methoddef
213         tokens in the cattr table. Fixes #53108.
214
215 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
216
217         * loader.c: don't trim ".dll" before looking up in the config file.
218         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
219
220 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
221
222         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
223         Return the module which contains the resource as well.
224         (ves_icall_System_Reflection_Module_Close): New icall.
225
226         * appdomain.c: Bump corlib version number.
227
228         * image.c (mono_image_addref): New public function.
229
230         * assembly.c: Call mono_image_addref.
231
232         * reflection.c (mono_module_get_object): Increase reference count of 
233         the image.
234
235         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
236         Fixes #22532.
237
238         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
239         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
240         proper exceptions on DllImport problems.
241
242 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
243
244         * class.c, metadata.c: eliminate CSIZE macro.
245
246 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
247
248         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
249         * object.h: Added async_callback field in MonoAsyncResult.
250         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
251         * verify.c: Added async_callback in MonoAsyncResult layout.
252
253 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
254
255         * reflection.c (mono_reflection_get_custom_attrs): Add support
256         for Modules.
257
258 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
259
260         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
261         marshalling.
262         (mono_marshal_method_from_wrapper): Add null pointer check.
263
264 2004-01-16  Martin Baulig  <martin@ximian.com>
265
266         * debug-mono-symfile.h: Set version number to 36 and reflect
267         latest symbol writer changes.
268
269 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
270
271         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
272         multi-dimensional arrays.
273         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
274         (mono_class_from_mono_type): Use bounded_array_class_get.
275         
276         * class.c (mono_bounded_array_class_get): New function which takes
277         a 'bounded' bool argument to distinguish vectors from one dimensional
278         arrays.
279
280         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
281         bounded_array_class_get if the array has bounds.
282
283         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
284         Search modules loaded using AssemblyBuilder:AddModule as well.
285
286 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
287
288         * appdomain.c: increased corlib version.
289         * filewatcher.c: removed g_print.
290         * icall.c:
291         (get_property_info): only allocate what is actually requested.
292         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
293
294 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
295
296         * Makefile.am: added filewatcher.[ch]
297         * filewatcher.[ch]: FileSystemWatcher runtime support.
298         * icall.c: added new FSW icalls.
299
300 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
301
302         * string-icalls.c: fix stringbuilder regression as suggested by
303         Iain McCoy <iain@mccoy.id.au>.
304
305 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
306
307         * process.c (process_read_stringtable_block): Recognize '007f' as
308         a language neutral stringtable block.
309
310 2004-01-12  Patrik Torstensson
311
312         * object.h (MonoStringBuilder) : Changed layout to support our
313         new stringbuilder class.
314         * marshal.c: Change marshalling to support the new layout of 
315         string builder.
316         * appdomain.c: increased version number because new layout of
317         string builder.
318
319 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
320
321         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
322         assembly name as an string instead of an AssemblyName, since it is
323         easier to extract info from it.
324
325         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
326         the culture subdirectories too. Fixes #52231.
327
328 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
329
330         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
331         It takes 2 new parameters with an optional name for the method to look
332         for and case ignoring info.
333
334         * threadpool.c: removed unused variable.
335
336 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
337
338         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
339         It takes 2 new parameters with an optional name for the property to look
340         for and case ignoring info.
341         Fixes bug #52753.
342
343 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
344
345         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
346         Fix #52451.
347
348 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
349
350         * appdomain.c:
351         * assembly.c: escape the uri before passing it to g_filename_from_uri.
352         Fixes bug #52630.
353
354 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
355
356         * reflection.c: Add support for more than one unmanaged resource.
357
358         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
359         in field->def_value, as done in all other cases.
360
361         * reflection.c (mono_reflection_get_custom_attrs): Add support for
362         TypeBuilders.
363
364         * reflection.c (mono_reflection_create_runtime_class): Remove 
365         errorneous assignment to klass->element_class, since it is already
366         done in mono_reflection_setup_internal_class.
367
368 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
369
370         * gc.c: added missing LeaveCriticalSection.
371         * icall.c: indented a couple of lines.
372         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
373         if we call EndInvoke inside a callback. Fixes bug #52601.
374
375 2004-01-07  Martin Baulig  <martin@ximian.com>
376
377         * mono-debug-debugger.h
378         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
379
380 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
381
382         * appdomain.c: Use messages in NotImplementedException.
383
384         * exception.c (mono_get_exception_not_implemented): Now this takes
385         a message argument.
386
387         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
388         exception instead of g_asserting an aborting when something is not
389         implemented.
390
391         Add some inline docs.
392
393 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
394
395         * reflection.h: Update after changes to object layout.
396
397         * reflection.c: Implement saving of unmanaged aka win32 resources.
398
399         * appdomain.c: Bump version number.
400
401         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
402         Handle missing domains gracefully.
403
404 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
405
406         * file-io.c : On Windows, there are much more invalid_path_chars.
407
408 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
409
410         * class.h, object.c: prepare for GetType () speedup.
411
412 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
413
414         * profiler.c: workaround for --profile null reference exception on
415           cygwin. Patch by Patrik Torstensson.
416
417 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
418
419         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
420         make work for unaligned access.
421
422 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
423
424         * class.c: small cleanup (class->fields [i] -> field).
425         * image.c: check address of metadata is valid.
426
427 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
428
429         * assembly.h assembly.c (mono_assembly_loaded): New public function to
430         search the list of loaded assemblies.
431
432         * reflection.c (mono_reflection_type_from_name): Use 
433         mono_assembly_loaded instead of mono_image_loaded.
434
435         * reflection.c: Fix warnings.
436
437 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
438
439         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
440         is dynamic. This is needed since an assembly can contain both dynamic and
441         non-dynamic images.
442
443         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
444         assembly->dynamic.
445
446         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
447
448         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
449         to store modules loaded using AddModule.
450
451         * reflection.c (mono_image_fill_file_table): Generalize this so it works
452         on Modules.
453
454         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
455
456         * reflection.c (mono_image_fill_export_table_from_module): New function to
457         fill out the EXPORTEDTYPES table from a module.
458
459         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
460         into a separate function. Also handle loaded non-dynamic modules.
461
462         * reflection.c (mono_image_basic_init): Fix memory allocation.
463
464         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
465
466         * assembly.c (mono_assembly_load_references): Make this public.
467
468 2003-12-19  Martin Baulig  <martin@ximian.com>
469
470         * class.c (mono_class_initialize_generic): Made this static, take
471         a `MonoGenericInst *' instead of a `MonoClass *'.
472         (mono_class_from_generic): Call mono_class_initialize_generic()
473         unless we're already initialized or being called from
474         do_mono_metadata_parse_generic_inst().
475
476         * class.h (MonoGenericInst): Added `initialized' and
477         `init_pending' flags.
478
479         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
480         `mono_class_init (gklass)' or mono_class_initialize_generic()
481         here; set `generic_inst->init_pending' while parsing the
482         `type_argv'.
483
484 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
485
486         * locales.c: include string.h for memxxx prototypes
487
488 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
489
490         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
491         constructor when accessing literal fields.
492
493 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
494
495         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
496
497         * reflection.c (assembly_add_resource_manifest): New function to fill
498         the MANIFESTRESOURCE table.
499
500         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
501
502         * reflection.h: Update to changes in class layout.
503
504         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
505         Reenable call to mono_runtime_is_shutting_down ().
506
507         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
508         determine if the runtime is shutting down.
509
510 2003-12-16  Jackson Harper <jackson@ximian.com>
511
512         * icall.c: comment out call to mono_runtime_is_shutting_down to
513         fix build.
514         
515 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
516
517         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
518         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
519
520 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
521
522         * reflection.c: move definition of swap_with_size
523         to before its first call
524
525 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
526
527         * appdomain.c (mono_runtime_is_shutting_down): New public function.
528
529         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
530         icall.
531
532         * object.c: Fix warnings.
533
534         * icall.c (ves_icall_Type_Get...): Only consider inherited static
535         members if FlattenHierarchy is set.
536
537         * reflection.c (mono_image_add_decl_security): New function to emit
538         declarative security.
539
540         * reflection.h reflection.c: Add support for declarative security.
541
542         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
543         
544 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
545
546         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
547         
548         * appdomain.c verify.c: Moved corlib version checking into its own
549         function in appdomain.c since it needs to create vtables etc.
550
551 2003-12-13  Patrik Torstensson <p@rxc.se>
552
553         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
554         instead of unwrapped server.
555
556 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
557
558         * verify.c (check_corlib): Fix field index.
559
560 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
561
562         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
563         GetGacPath icall.
564
565 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
566
567         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
568         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
569         cope with sizeof(size_t) != sizeof(guint32).
570
571 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
572
573         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
574         in case of failure.
575
576 2003-12-10  Mark Crichton <crichton@gimp.org>
577
578         * icall.c: removed the GetNonZeroBytes.  We now handle this case
579         in managed code.
580
581         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
582
583 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
584
585         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
586         marked as deleted.
587
588 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
589
590         * verify.c (check_corlib): Handle the case when the version field is 
591         initialized by a static constructor.
592
593 2003-12-08  Patrik Torstensson  <p@rxc.se>
594
595     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
596
597 2003-12-08  Martin Baulig  <martin@ximian.com>
598
599         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
600         a MonoReflectionGenericParameter, also take the parameter index
601         and name as arguments.
602         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
603         (ves_icall_MonoGenericParam_initialize): New interncall.
604         (ves_icall_Type_make_byref_type): New interncall.
605
606         * reflection.h (MonoReflectionGenericParam): Derive from
607         MonoReflectionType, not just from MonoObject.  Added `refobj' and
608         `index' fields.
609
610         * reflection.c (mono_reflection_define_generic_parameter): Create
611         and return a new MonoReflectionGenericParam; don't initialize the
612         constraints here.
613         (mono_reflection_initialize_generic_parameter): New public method;
614         initializes the constraints and creates the `param->pklass'.
615
616 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
617
618         * reflection.h reflection.c: Use the new fields 'num_types', 
619         'num_fields' and 'num_methods' to track the number of types etc.
620
621         * verify.c (check_corlib): Check corlib version number.
622
623 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
624
625         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
626         function works on all methods.
627
628 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
629
630         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
631         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
632         the custom_type_info flag of the transparent proxy.
633         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
634         objects that supports IRemotingTypeInfo.
635         * object.h: Added custom_type_info field in transparent proxy.
636
637 2003-12-06  Martin Baulig  <martin@ximian.com>
638
639         * class.c (mono_class_create_from_generic): Removed.
640         (mono_class_from_generic): Check `ginst->klass' before doing
641         anything else.  This is important to fully support "recursive"
642         generic types.
643
644         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
645         empty `generic_inst->klass' before doing anything else.
646
647 2003-12-06  Dick Porter  <dick@ximian.com>
648
649         * verify.c: 
650         * object.h:
651         * icall.c:
652         * locales.c: Use C structs to access class fields.  Don't do a
653         conversion between MonoString and UChar because both are
654         platform-endian UTF-16.  Compare now takes startindex and count
655         parameters.  Add a char overload for IndexOf.  Speed up the
656         invariant string IndexOf.
657
658 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
659
660         * Makefile.am (monosn_LDADD): Fix parallel build.
661
662 2003-12-04  Martin Baulig  <martin@ximian.com>
663
664         * icall.c
665         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
666         (ves_icall_Type_make_array_type): New interncall.       
667
668 2003-12-04  Martin Baulig  <martin@ximian.com>
669
670         * locales.c: also change it in the !HAVE_ICU case.
671
672 2003-12-04  Dick Porter  <dick@ximian.com>
673
674         * icall.c:
675         * locales.c: construct_compareinfo is now in CompareInfo, not
676         CultureInfo.
677
678 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
679
680         * image.c (mono_image_load_file_for_image): Cache loaded images in the
681         image->files array.
682
683         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
684         table as well.
685
686         * assembly.c (mono_assembly_load_references): Only load references
687         once.
688
689         * class.c (mono_class_from_name): Avoid linear search of the 
690         EXPORTEDTYPE table.
691
692         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
693
694 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
695
696         * image.h (MonoImage): Add 'field_cache' field.
697
698         * loader.c (mono_field_from_token): Cache field lookups.
699         
700         * reflection.c (mono_module_get_object): Fix name property.
701
702         * icall.c (ves_icall_get_enum_info): Update after changes to 
703         mono_metadata_get_constant_index ().
704
705         * icall.c: Get rid of get_type_info icall, use a separate icall for
706         each type property to avoid needless memory allocations. Fixes #51514.
707
708         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
709         to avoid needless binary searches.
710
711         * class.c (class_compute_field_layout): Move the initialization of
712         field->def_value to mono_class_vtable ().
713
714         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
715         non-corlib types.
716
717         * object.c (mono_object_allocate): Make it inline.
718
719         * object.c (mono_object_allocate_spec): Make it inline.
720         
721 2003-12-02  Dick Porter  <dick@ximian.com>
722
723         * locales.c (create_NumberFormat): NumberFormatInfo construction.
724         Patch by Mohammad DAMT (mdamt@cdl2000.com).
725
726 2003-12-01  Dick Porter  <dick@ximian.com>
727
728         * threads.c: Fix signature and call in CreateMutex and
729         CreateEvent.
730
731 2003-12-01  Dick Porter  <dick@ximian.com>
732
733         * icall.c: 
734         * locales.c: Implement string compares and searching
735
736         * object.h: Add extra Thread field
737
738 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
739
740         * reflection.c (fixup_method): Add support for MonoCMethod.
741
742 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
743
744         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
745
746         * reflection.c (assembly_name_to_aname): Allow extra characters in
747         assembly names. Fixes #51468.
748
749 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
750
751         * exception.c (mono_exception_from_name_domain): New helper function.
752
753         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
754         exception object in the correct domain.
755
756         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
757         formatting + make a copy a the input data.
758
759         * loader.c (mono_get_method_from_token): Methods which contain
760         native code do not have entries in the ImplMap.
761
762         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
763         Thanks to Gonzalo for spotting this.
764         
765         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
766         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
767
768         * assembly.h (mono_assembly_load_from): Split the second part of 
769         assembly loading into a new public function.
770
771         * exception.h (mono_get_exception_bad_image_format): New function.
772
773 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
774
775         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
776         Enumerate all modules inside a dynamic assembly. Fixes #51293.
777         
778         * icall.c: Add new icall for creating dynamic methods.
779
780         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
781
782         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
783
784         * reflection.c (mono_reflection_create_dynamic_method): New icall to
785         create a dynamic method.
786
787         * reflection.c (resolve_object): New helper function.
788
789         * reflection.c: Generalize ReflectionMethodBuilder and the functions
790         which manipulate it so they can also work on dynamic methods.
791
792         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
793         creating the MonoReflectionMethodAux structure if it is not needed.
794         
795         * reflection.h verify.c: Update after changes to object layout.
796
797         * reflection.c (method_builder_encode_signature): Fix compilation on
798         gcc 2.95.x.
799
800 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
801
802         * appdomain.h: Added support for context static fields. Added static_data
803           field to MonoAppContext and renamed thread_static_fields to a more
804           generic special_static_fields in MonoAppDomain, since it can now contain
805           context static fields.
806         * domain.c: Updated hashtable name.
807         * object.c: Replaced field_is_thread_static() for a more generic
808           field_is_special_static() which also checks for context static attribute.
809           In mono_class_vtable(), added support for static context fields.
810         * threads.c: Changed methods that manage thread static fields to more
811           generic methods so they can be reused both for thread and context static
812           data.
813         * threads.h: Declared some new methods.
814
815 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
816
817         * reflection.h: Update after changes to the managed types.
818
819         * reflection.c (encode_custom_modifiers): New helper function.
820
821         * reflection.c (method_encode_signature): Emit custom modifiers.
822
823         * reflection.c (field_encode_signature): Emit custom modifiers.
824
825 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
826
827         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
828
829         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
830         implementation.
831
832         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
833         icall.
834
835         * object.c (mono_field_get_value_object): New function.
836
837         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
838         specific.
839
840 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
841
842         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
843         return a preallocated out-of-memory exception instance.
844
845         * object.c (out_of_memory): Use the new function.
846
847         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
848         flag is before the custom modifiers. Fixes #49802.
849
850 2003-11-16  Martin Baulig  <martin@ximian.com>
851
852         * class.c (mono_class_is_open_constructed_type): Implemented the
853         MONO_TYPE_GENERICINST case.
854
855 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
856
857         * assembly.c (mono_assembly_fill_assembly_name): New function to
858         fill out the MonoAssemblyName structure.
859         (mono_assembly_open): Use the new function.
860
861         * icall.c (fill_reflection_assembly_name): New helper function.
862
863         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
864         new function.
865
866         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
867
868 2003-11-15  Martin Baulig  <martin@ximian.com>
869
870         * class.c (mono_class_is_open_constructed_type): New public
871         function; checks whether a type is an open constructed type,
872         ie. whether it still contains type parameters.
873         (mono_class_inflate_generic_type): If we're a type parameter and
874         the inflated type is also a MONO_TYPE_(M)VAR, return the original
875         type.
876
877         * class.h (MonoGenericInst): Added `guint32 is_open'.
878
879         * loader.c (method_from_methodspec): Check whether we're an open
880         or closed constructed type and set `ginst->is_open'.
881
882         * reflection.c (mono_reflection_bind_generic_parameters): Check
883         whether we're an open or closed constructed type and set
884         `ginst->is_open'.
885         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
886         from open constructed types.
887
888 2003-11-15  Martin Baulig  <martin@ximian.com>
889
890         * reflection.c (mono_reflection_bind_generic_parameters): If we're
891         a generic instance (instead of a generic type declaration) with
892         unbound generic parameters, bind them to our actual types.
893
894 2003-11-14  Martin Baulig  <martin@ximian.com>
895
896         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
897
898         * reflection.c (mono_reflection_bind_generic_parameters): If we're
899         an interface type, populate `res->interfaces' with instantiated
900         versions of all the interfaces we inherit.
901
902 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
903
904         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
905         when MONO_PATH is set but doesn't contain the install dir.
906
907 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
908
909         * icall.c:
910         (ves_icall_Type_GetInterfaces): don't return an interface twice when
911         it's also implemented in base classes. Fixes bug #50927.
912
913 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
914
915         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
916         if this method is called from a finalizer. Fixes #50913.
917
918 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
919
920         * threads.c: Implement VolatileRead/VolatileWrite
921
922         * icall.c: Add new icalls for VolatileRead/VolatileWrite
923
924 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
925
926         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
927         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
928         2.95.3.
929
930         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
931         from Peter Ross (pro@missioncriticalit.com).
932         
933 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
934
935         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
936
937 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
938
939         * assembly.c (mono_assembly_load_references): Disable check because it
940         triggers on older corlibs which lots of people have.
941
942 2003-11-12  Jackson Harper  <jackson@ximian.com>
943
944         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
945         load corlib.dll if mscorlib.dll is not found.
946         * assembly.h: Remove corlib name define.
947         * class.c:
948         * domain.c:
949         * image.c: Change corlib name to mscorlib.
950         
951 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
952
953         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
954
955 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
956
957         * appdomain.h: Added loader_optimization here to sync with the C#
958         code, and add disallow_binding_redirects field.
959
960 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
961
962         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
963
964         * reflection.c (mono_image_build_metadata): Fix crash on modules
965         with no types.
966
967         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
968
969         * icall.c (ves_icall_get_method_info): Return callingConvention as
970         well.
971
972         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
973         namespaces from the EXPORTEDTYPE table as well.
974
975         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
976         from all modules inside the assembly.
977         
978 2003-11-11  Martin Baulig  <martin@ximian.com>
979
980         * reflection.c (mono_reflection_bind_generic_parameters): Make
981         this work for interfaces.
982
983 2003-11-11  Martin Baulig  <martin@ximian.com>
984
985         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
986
987 2003-11-11  Martin Baulig  <martin@ximian.com>
988
989         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
990         "MonoInflatedMethod" and "MonoInflatedCtor".
991
992 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
993
994         * reflection.c (resolution_scope_from_image): Use the assembly table
995         from the manifest module, since other modules don't have it.
996
997         * debug-helpers.c (mono_type_full_name): New helper function.
998
999         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
1000
1001         * image.c (mono_image_load_file_for_image): New public function which
1002         is a replacement for the load_file_for_image in class.c.
1003
1004         * assembly.c (mono_assembly_load_module): A wrapper for the function
1005         above which does assembly association and reference loading too.
1006
1007         * class.c (mono_class_from_name): Call mono_assembly_load_module.
1008
1009 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1010
1011         * appdomain.c: not all of the attributes for the full assembly name
1012         are required and the order doesn't matter. Fixes bug #50787.
1013
1014 2003-11-10  Dick Porter  <dick@ximian.com>
1015
1016         * locales.c: Use platform-endian UTF16
1017
1018 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
1019
1020         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
1021         
1022 2003-11-10  Martin Baulig  <martin@ximian.com>
1023
1024         * metadata.c
1025         (mono_metadata_load_generic_params): Make this actually work.
1026
1027         * reflection.c (mono_reflection_bind_generic_parameters): If our
1028         parent is a generic instance, pass all the `types' to it, no
1029         matter whether it has the same number of type parameters or not.
1030
1031 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
1032
1033         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
1034
1035         * assembly.c (mono_assembly_load_references): Move the image<->assembly
1036         assignment code to this function so it gets called recursively for all
1037         modules.
1038
1039         * image.c (load_modules): Remove the assembly assignment since it is
1040         now done by mono_assembly_load_references.
1041         
1042         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
1043         Add 'module' argument.
1044         (mono_module_get_types): New helper function.
1045         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
1046
1047 2003-11-08  Martin Baulig  <martin@ximian.com>
1048
1049         * class.c (mono_class_inflate_generic_method): Interface method
1050         don't have a header.
1051
1052         * reflection.c (mono_image_get_methodspec_token): Take an
1053         additional `MonoGenericInst *' argument instead of reading it from
1054         the header; this is necessary to support interfaces.
1055         (mono_image_create_token): Pass the `MonoGenericInst *' from the
1056         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
1057         (inflated_method_get_object): Take an additional `MonoGenericInst *'
1058         argument.
1059
1060         * reflection.h (MonoReflectionInflatedMethod): Added
1061         `MonoGenericInst *ginst'.
1062
1063 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
1064
1065         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
1066
1067 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
1068
1069         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
1070
1071 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
1072
1073         * reflection.c 
1074         (reflection_methodbuilder_from_method_builder):
1075         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
1076         initialize a ReflectionMethodBuilder structure.
1077         (mono_image_get_methodbuilder_token):
1078         (mono_image_get_ctorbuilder_token): New functions to emit memberref
1079         tokens which point to types in another module inside the same assembly.
1080
1081         * reflection.c: Use the new helper functions.
1082         
1083         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
1084
1085         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
1086         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
1087
1088         * reflection.c (resolution_scope_from_image): Emit a moduleref if
1089         neccesary.
1090
1091         * reflection.c (mono_image_build_metadata): Emit metadata only for the
1092         current module. Emit the manifest only for the main module.
1093
1094         * reflection.c (mono_image_create_token): Add assertion when a 
1095         memberref needs to be created.
1096
1097         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
1098
1099         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
1100         larger buffer for the custom attribute blob. Fixes #50637.
1101         
1102 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1103
1104         * threadpool.c: notify listener on async processing handles after
1105         invoking the async callback. Thanks to Zoltan.
1106
1107 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
1108
1109         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
1110         avoid code duplication.
1111
1112         * reflection.h (MonoDynamicImage): New type which is currently unused,
1113         but will be used through the ref.emit code in place of 
1114         MonoDynamicAssembly.
1115
1116         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
1117         object layout.
1118
1119         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
1120         a MonoDynamicImage instead of just a MonoImage.
1121         
1122         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
1123         icalls to ModuleBuilder but keep their semantics, so they will work
1124         with moduleb->assemblyb. This will change later.
1125         
1126 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
1127
1128         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
1129         object layout.
1130
1131         * reflection.c (mono_image_build_metadata): Avoid creation of a default
1132         main module, since it is now done by the managed code.
1133
1134 2003-11-03  Martin Baulig  <martin@ximian.com>
1135
1136         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
1137         `ginst->klass' here.
1138         (method_encode_methodspec): Don't use the `ginst->generic_method's
1139         klass if it's a generic instance, use `ginst->klass' in this case.
1140
1141 2003-11-03  Martin Baulig  <martin@ximian.com>
1142
1143         * reflection.c (mono_image_get_generic_method_param_info):
1144         Removed, use mono_image_get_generic_param_info() instead.
1145         (mono_image_get_type_info): Write the GenericParam table before
1146         the Method table.  This is neccessary because in the GenericParam
1147         table, type parameters of the class (ie. '!0' etc.) must come
1148         before the ones from its generic methods (ie. '!!0' etc).
1149
1150 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
1151
1152         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
1153
1154 2003-11-02  Martin Baulig  <martin@ximian.com>
1155
1156         * reflection.c (create_generic_typespec): Take a
1157         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
1158         the generic parameters from it.
1159
1160 2003-11-02  Martin Baulig  <martin@ximian.com>
1161
1162         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
1163         instead of a `MonoClassField *' since we just need the type.
1164         (create_generic_typespec): New static function.  Creates a
1165         TypeSpec token for a generic type declaration.
1166         (mono_image_get_generic_field_token): New static function.
1167         (mono_image_create_token): If we're a FieldBuilder in a generic
1168         type declaration, call mono_image_get_generic_field_token() to get
1169         the token.
1170
1171 2003-11-02  Martin Baulig  <martin@ximian.com>
1172
1173         * reflection.h
1174         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
1175         `MonoReflectionGenericInst *declaring_type' and
1176         `MonoReflectionGenericInst *reflected_type' fields.
1177
1178         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
1179         `MonoReflectionGenericInst *declaring_type' and a
1180         `MonoReflectionGenericInst *reflected_type' argument instead of a
1181         single `MonoReflectionGenericInst *type' one.  Set
1182         `res->declaring_type' and `res->reflected_type' from them.
1183         (mono_reflection_inflate_field): Likewise.      
1184
1185 2003-11-02  Martin Baulig  <martin@ximian.com>
1186
1187         * class.c (mono_class_setup_vtable): Don't store generic methods
1188         in the vtable.  
1189
1190 2003-11-02  Martin Baulig  <martin@ximian.com>
1191
1192         * reflection.h (MonoReflectionGenericInst): Added
1193         `MonoReflectionType *declaring_type'.
1194
1195         * reflection.c (mono_reflection_bind_generic_parameters): Use
1196         `if (tb->parent)' instead of `klass->parent'.
1197
1198 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
1199
1200         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
1201         with an empty ASSEMBLY table.
1202
1203         * reflection.c (mono_image_build_metadata): Avoid using the same loop
1204         variable in the inner and outer loops.
1205
1206 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
1207
1208         * metadata.h (mono_metadata_make_token): Put parentheses around macro
1209         argument.
1210
1211         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
1212         
1213         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
1214         icalls. Instead, do everything in managed code. This is needed since
1215         it is hard to restore the original domain etc. in unmanaged code in the
1216         presence of undeniable exceptions.
1217
1218         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
1219         New icalls to push and pop appdomain refs.
1220
1221 2003-10-31  Martin Baulig  <martin@ximian.com>
1222
1223         * class.c (inflate_generic_type): Renamed to
1224         mono_class_inflate_generic_type() and made it public.
1225
1226         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
1227         New interncall.
1228
1229         * loader.c (mono_field_from_memberref): Also set the retklass for
1230         typespecs.
1231
1232         * fielder.c (mono_image_get_inflated_field_token): New static
1233         method; creates a metadata token for an inflated field.
1234         (mono_image_create_token, fixup_method): Added support for
1235         "MonoInflatedField".
1236         (fieldbuilder_to_mono_class_field): New static function.
1237         (mono_reflection_inflate_field): New public function.
1238
1239         * reflection.h
1240         (MonoReflectionGenericInst): Added `MonoArray *fields'.
1241         (MonoReflectionInflatedField): New typedef.     
1242
1243 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
1244
1245         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
1246         for Solaris and other platforms without s6_addr16
1247
1248 2003-10-30  Martin Baulig  <martin@ximian.com>
1249
1250         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
1251         argument instead of two.
1252         (mono_class_inflate_generic_signature): Likewise.
1253         (inflate_generic_header): Likewise.
1254         (mono_class_inflate_generic_method): Likewise.  In addition, if
1255         `ginst->klass' is set, it becomes the new `method->klass'.
1256
1257         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
1258         field.
1259
1260         * reflection.c (encode_generic_method_sig): Write a 0xa as the
1261         first byte. [FIXME]
1262         (method_encode_methodspec): If we have generic parameters, create
1263         a MethodSpec instead of a MethodRef.
1264         (fixup_method): Added support for "MonoInflatedMethod" and
1265         "MonoInflatedCtor".
1266         (mono_image_create_token): Added support for "MonoInflatedMethod"
1267         and "MonoInflatedCtor".
1268         (inflated_method_get_object): New static function; returns a
1269         managed "System.Reflection.MonoInflatedMethod" object.
1270         (mono_reflection_bind_generic_method_parameters): Return a
1271         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
1272         (mono_reflection_inflate_method_or_ctor): Likewise.
1273         (mono_image_get_generic_method_param_info): Initialize unused
1274         fields to zero.
1275         (mono_image_get_generic_param_info): Likewise.
1276
1277         * reflection.h (MonoReflectionInflatedMethod): New public
1278         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
1279         "S.R.MonoInflatedCtor" classes.
1280
1281         * loader.c (method_from_memberref): If we're a TypeSpec and it
1282         resolves to a generic instance, inflate the method.
1283
1284 2003-10-28  Dick Porter  <dick@ximian.com>
1285
1286         * object.c (mono_runtime_run_main): Convert command-line arguments
1287         into utf8, falling back to the user's locale encoding to do so.
1288
1289 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
1290
1291         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
1292         at this time.
1293
1294         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
1295
1296         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
1297         up icalls at method definition time. Partially fixes #33569.
1298
1299 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
1300
1301         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
1302         marshalling of arrays. Fixes #50116.
1303
1304         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
1305
1306         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
1307         points to a vtable in the dying appdomain.
1308
1309         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
1310         listeners into unmanaged code inside the lock.
1311
1312         * object.c (mono_class_vtable): Turn off typed allocation in non-root
1313         domains and add some comments.
1314
1315 2003-10-25  Martin Baulig  <martin@ximian.com>
1316
1317         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
1318
1319         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
1320
1321         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
1322         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
1323         currently parsing.  Create the generic class and store it in
1324         `generic_inst->klass' before parsing the type arguments.  This is
1325         required to support "recursive" definitions; see mcs/tests/gen-23.cs
1326         for an example.
1327         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
1328         to support recursive typespec entries.
1329
1330         * class.c (mono_class_setup_parent): If our parent is a generic
1331         instance, we may get called before it has its name set.
1332         (mono_class_from_generic): Splitted into
1333         mono_class_create_from_generic() and mono_class_initialize_generic().
1334
1335 2003-10-25  Martin Baulig  <martin@ximian.com>
1336
1337         * icall.c (ves_icall_Type_BindGenericParameters): Return a
1338         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
1339         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
1340         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
1341
1342         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
1343         (create_typespec): Likewise.
1344         (mono_reflection_bind_generic_parameters): Return a
1345         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
1346         (mono_reflection_inflate_method_or_ctor): New public function.
1347
1348         * reflection.h (MonoReflectionGenericInst): New typedef.        
1349
1350 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
1351
1352         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
1353         inside the domain lock. Fixes #49993.
1354         
1355         * object.c (mono_class_vtable): When typed allocation is used, 
1356         allocate vtables in the GC heap instead of in the mempool, since the
1357         vtables contain GC descriptors which are used by the collector even
1358         after the domain owning the mempool is unloaded.
1359
1360         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
1361
1362         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
1363         reflect what it does. Also invalidate mempools instead of freeing
1364         them if a define is set.
1365
1366         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
1367         of the appdomain.
1368         
1369         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
1370         hold the finalizable objects in this domain.
1371
1372         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
1373         appdomain.
1374
1375         * appdomain.c (mono_domain_set): New function to set the current
1376         appdomain, but only if it is not being unloaded.
1377
1378         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
1379         appdomain which is being unloaded.
1380         
1381         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
1382         unloading of the root appdomain.
1383
1384         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
1385         icall to execute a method in another appdomain. Intended as a 
1386         replacement for InternalSetDomain, which can confuse the code 
1387         generation in the JIT.
1388
1389         * appdomain.c (mono_domain_is_unloading): New function to determine
1390         whenever an appdomain is unloading.
1391
1392         * appdomain.c (mono_domain_unload): New function to correctly unload
1393         an appdomain.
1394
1395         * assembly.c (mono_assembly_load_references): Check that an assembly
1396         does not references itself.
1397
1398         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
1399         domain manually, it asks the finalizer thread to do it, then waits for
1400         the result. Also added a timeout.
1401
1402         * icall.c: Register the new icalls.
1403
1404         * threads.h threads.c: Export the mono_gc_stop_world and 
1405         mono_gc_start_world functions.
1406         
1407         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
1408         function to fill out the mempool with 0x2a.
1409
1410 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
1411
1412         * reflection.h (MonoReflectionMethodAux): New structure to store
1413         information which is rarely used, thus is not in the MonoMethod
1414         structure.
1415
1416         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
1417         store the aux info.
1418
1419         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
1420         and marshalling info into the aux structure.
1421
1422         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
1423         from the aux structure.
1424
1425         * loader.c (mono_method_get_param_names): Retrieve the param names from
1426         the aux structure.
1427         
1428 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
1429
1430         * exception.h exception.c: Add AppDomainUnloadedException && fix 
1431         warning.
1432
1433 2003-10-21  Dick Porter  <dick@ximian.com>
1434
1435         * socket-io.c
1436         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
1437         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
1438
1439 2003-10-21  Martin Baulig  <martin@ximian.com>
1440
1441         * reflection.c (mono_reflection_bind_generic_parameters):
1442         `klass->parent' is NULL for interfaces.
1443
1444 2003-10-21  Martin Baulig  <martin@ximian.com>
1445
1446         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
1447
1448 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
1449
1450         * exception.c (mono_exception_from_name_msg): New helper function for
1451         creating exceptions and initializing their message field.
1452
1453         * exception.c: Simplify functions using the new helper.
1454
1455         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
1456         New function.
1457
1458         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
1459         mono_raise_exception, since otherwise gcc doesn't generate the function
1460         epilog for raise_exception, confusing the stack unwinding in the JIT.
1461         Fixes #45043.
1462
1463         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
1464         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
1465         Fixes #49499.
1466
1467 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1468
1469         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
1470         utf8.
1471
1472 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
1473
1474         * icall.c: Removed GetUninitializedObject method because
1475           AllocateUninitializedClassInstance does the same.
1476
1477 2003-10-18  Martin Baulig  <martin@ximian.com>
1478
1479         * class.c (inflate_generic_signature): Renamed to
1480         mono_class_inflate_generic_signature() and made it public.
1481         (my_mono_class_from_generic_parameter): New static function; if we
1482         don't already have the generic parameter's MonoClass, create a
1483         very simple one which is just used internally in the runtime and
1484         not passed back to managed code.
1485
1486         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
1487
1488         * metadata.h (MonoMethodSignature): Moved the
1489         `MonoGenericParam *gen_params' to the MonoMethodHeader.
1490         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
1491
1492         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
1493         ves_icall_MonoMethod_GetGenericArguments(); this is now an
1494         interncall on the MonoMethod class, not on MethodInfo.
1495         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
1496         calling mono_reflection_bind_generic_method_parameters() directly.
1497
1498         * loader.c (mono_method_get_signature): If this is a MethodSpec;
1499         return the already computed `method->signature'.
1500         (method_from_methodspec): New static function to load a method
1501         from a MethodSpec entry.
1502         (mono_get_method_from_token): Call the new method_from_methodspec()
1503         for MethodSpec tokens.  
1504         (mono_get_method_from_token): If we're a generic method, load the
1505         type parameters.
1506
1507         * reflection.c (mono_image_get_memberref_token): Allow
1508         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
1509         table.
1510         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
1511         (mono_image_create_token): First check whether it's a generic
1512         method (so we'd need to create a MethodSpec), then do the other
1513         two alternatives.
1514         (mono_reflection_bind_generic_method_parameters): Return a
1515         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
1516         called directly from the interncall.
1517
1518 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
1519
1520         * reflection.c (load_public_key): Move loading of the public key
1521         into managed code.
1522
1523         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
1524
1525         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
1526         fields.
1527
1528         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
1529         culture, hash_alg and public_key. Fixes #49555.
1530
1531 2003-10-17  Martin Baulig  <martin@ximian.com>
1532
1533         * class.h (MonoGenericInst): Moved this declaration here and added
1534         `MonoMethod *generic_method'.
1535
1536         * icall.c
1537         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
1538         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
1539
1540         * metadata.c (mono_metadata_type_equal): Two types of
1541         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
1542         index; ie. don't compare the address of the `MonoGenericParam'
1543         structure.
1544         (mono_metadata_load_generic_params): Removed the `MonoMethod
1545         *method' argument.
1546
1547         * metadata.h (MonoGenericInst): Moved declaration to class.h.
1548         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
1549
1550         * reflection.c (method_encode_signature): Encode the number of
1551         generic parameters.
1552         (encode_generic_method_sig): New static function.
1553         (method_encode_methodspec): New static function; creates an entry
1554         in the MethodSpec table for a generic method.
1555         (mono_image_get_methodspec_token): New static function.
1556         (mono_image_create_token): Call mono_image_get_methodspec_token()
1557         for generic methods.
1558         (mono_reflection_bind_generic_method_parameters): New public
1559         function.  Instantiates a generic method.
1560
1561 2003-10-16  Martin Baulig  <martin@ximian.com>
1562
1563         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
1564         *gen_params' here from MonoMethodHeader.
1565
1566         * metadata.c (mono_metadata_parse_method_signature): If we have
1567         generic parameters, initialize `method->gen_params' and then set
1568         the correct `type->data.generic_param' in all the parameters.
1569
1570 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
1571
1572         * threads.c (mono_threads_get_default_stacksize): New function to 
1573         return the default stacksize.
1574
1575         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
1576         termination of the finalizer thread, since the previous method had
1577         race conditions. Fixes #49628.
1578
1579         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
1580         as for the other managed threads.
1581
1582 2003-10-16  Martin Baulig  <martin@ximian.com>
1583
1584         * class.c (inflate_generic_signature): Copy `generic_param_count'
1585         and `gen_params'.
1586
1587         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
1588         New interncall.
1589
1590         * metadata.c (mono_metadata_parse_method_signature): Actually set
1591         the `method->generic_param_count' here.
1592         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
1593
1594 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
1595
1596         * object.h: Add a new field to TypedRef to simplify the implementation
1597         of the REFANY opcodes in the JIT.
1598
1599         * icall.c: Make use of the new field.
1600
1601         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
1602         dynamically.
1603
1604 2003-10-15  Martin Baulig  <martin@ximian.com>
1605
1606         * class.c (mono_class_from_gen_param): Renamed to
1607         mono_class_from_generic_parameter() and moved most of the
1608         functionality from mono_reflection_define_generic_parameter()
1609         here; ie. we create a "real" class here.
1610         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
1611         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
1612         previously been called.
1613
1614         * class.h (MonoGenericParam): Moved the declaration of this struct
1615         here from metadata.h and added `MonoMethod *method'.
1616
1617         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
1618         interncall.
1619
1620         * loader.c (mono_get_method_from_token): If we have any generic
1621         parameters, call mono_metadata_load_generic_params() to read them
1622         from the MONO_TABLE_GENERICPAR.
1623
1624         * metadata.c (mono_metadata_load_generic_params): Added
1625         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
1626
1627         * metadata.h (MonoMethodSignature): Replaced
1628         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
1629         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
1630
1631         * reflection.c (mono_reflection_define_generic_parameter): Moved
1632         most of the functionality into the new
1633         mono_class_from_generic_parameter(); set the `method' field if
1634         we're a method parameter.       
1635
1636 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
1637
1638         * marshal.c (emit_struct_conv): if native size is 0
1639         emit no code.
1640
1641 2003-10-14  Martin Baulig  <martin@ximian.com>
1642
1643         * icall.c: The generics API has changed in the spec since it was
1644         added to System.Type; these modifications make it match the spec
1645         again.
1646         (ves_icall_Type_GetGenericParameters): Renamed to
1647         `ves_icall_Type_GetGenericArguments'.
1648         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
1649         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
1650         `ves_icall_MonoType_get_HasGenericArguments'.
1651         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
1652         `ves_icall_MonoType_get_IsGenericParameter'.
1653         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
1654         this is no interncall anymore.
1655         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
1656         `ves_icall_TypeBuilder_get_IsGenericParameter'.
1657
1658 2003-10-14  Martin Baulig  <martin@ximian.com>
1659
1660         * reflection.c (mono_reflection_bind_generic_parameters): Also
1661         inflate generic methods if we're reading the class from IL.
1662
1663 2003-10-13  Martin Baulig  <martin@ximian.com>
1664
1665         * reflection.c (mono_reflection_define_generic_parameter): This
1666         method isn't called directly from the icall anymore; take a
1667         `MonoReflectionAssemblyBuilder *' so we can use this for type and
1668         method generic parameters.
1669         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
1670         (method_builder_encode_signature): Encode generic parameters.
1671         (mono_image_get_method_info): Write generic params to the
1672         MONO_TABLE_GENERICPARAM table.
1673
1674         * reflection.h (MonoReflectionMethodBuilder): Added
1675         `MonoArray *generic_params'.
1676
1677         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
1678
1679         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
1680         wrapper for mono_reflection_define_generic_parameter().
1681         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
1682
1683 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
1684
1685         * marshal.h: Add missing function to fix build.
1686
1687         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
1688         the SetLastError pinvoke attribute.
1689
1690         * marshal.c (mono_marshal_set_last_error): New helper function called
1691         by the generated code.
1692         
1693         * marshal.c (mono_mb_emit_branch): New helper function.
1694
1695         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
1696
1697         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
1698         classes as parameters and return values of delegates. Fixes #29256. 
1699
1700 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
1701
1702         * locales.c: use gint32 in non HAVE_ICU case
1703
1704 2003-10-11  Martin Baulig  <martin@ximian.com>
1705
1706         * mono-debug.c (mono_debug_add_method): Added a workaround for
1707         bug #48591.
1708
1709 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
1710
1711         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
1712         delegates passed to native code must use the STDCALL calling 
1713         convention. Fixes #35987.
1714
1715 2003-10-10  Martin Baulig  <martin@ximian.com>
1716
1717         * class.c (inflate_generic_type): If we're inflating for a generic
1718         type instance (and not for a generic method), return
1719         MONO_TYPE_MVAR unchanged.
1720
1721 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1722
1723         * string-icalls.c: Join ignores null strings in the source array.
1724         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
1725         * threads.c: GetAvailableTheads is slightly more accurate.
1726
1727 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
1728
1729         * threads.h threads.c : add mono_threads_set_default_stacksize
1730         and pass default to CreateThread calls.
1731
1732 2003-10-09  Dick Porter  <dick@ximian.com>
1733
1734         * icall.c:
1735         * locales.h:
1736         * locales.c: Internal calls for constructing CultureInfo and
1737         related objects from libicu (if its available.)
1738
1739 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
1740
1741         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
1742
1743 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1744
1745         * threadpool.c: added an argument to async_invoke_thread that is the
1746         item to process, pass the MonoAsyncResult to the thread start function
1747         when creating a new thread. This way we don't need to acquire any lock
1748         when we're creating a new thread. Readded a semaphore for faster
1749         response times (instead of that Sleep i added).
1750
1751 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
1752
1753         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
1754         get daylight change dates better on Windows, fix handling
1755         of platforms without tm_gmtoff.
1756
1757 2003-10-06  Martin Baulig  <martin@ximian.com>
1758
1759         * class.c (inflate_generic_method): Renamed to
1760         mono_class_inflate_generic_method() and made public.
1761         (mono_class_init): Don't inflate the generic methods here.
1762         (mono_class_from_generic): Added `gboolean inflate_methods'
1763         argument.  Inflate the methods here.
1764
1765         * loader.c (mono_method_get_param_names): Ignore instances of
1766         generic types for the moment.
1767
1768         * reflection.c (fixup_method): Added support for inflated methods.
1769         (mono_image_create_token): Use mono_image_get_methodref_token()
1770         for inflated methods.
1771         (mono_custom_attrs_from_param): Ignore instances of generic types
1772         for the moment.
1773         (mono_reflection_bind_generic_parameters): New public function.
1774         Moved all the functionality from
1775         ves_icall_Type_BindGenericParameters() here and added support for
1776         dynamic types.
1777         (mono_reflection_define_generic_parameter): Initialize
1778         `klass->methods' here.
1779
1780         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
1781         functionality into mono_reflection_define_generic_parameter().
1782         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
1783         TypeBuilder, return that TypeBuilder.
1784
1785 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1786
1787         * appdomain.c: removed mono_delegate_semaphore.
1788
1789         * threadpool.c:
1790         (mono_thread_pool_add): moved hash table creation inside and the thread 
1791         creation outside of the critical region.
1792         (mono_thread_pool_finish): removed obsolete code.
1793         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
1794         continue or exit the thread depending on the queue.
1795
1796 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
1797
1798         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
1799         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
1800         handle more bool marshalling options
1801
1802 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
1803
1804         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
1805         arrays of structs. Also add a more descriptive error message when
1806         a structure member is marshalled as LPArray.
1807
1808 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
1809
1810         * marshal.c (mono_marshal_get_native_wrapper): Add support for
1811         marshalling arrays of complex types. Fixes #29098. Also remove an
1812         usused and incomplete function.
1813
1814 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
1815
1816         * gc.c: report heap_size - free_bytes as total memory allocated
1817         (bug#49362).
1818
1819 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
1820
1821         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
1822         fix timezone handling problems on Windows.
1823         
1824         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
1825         asserts when the year is outside the range handled by ms the functions.
1826
1827         * class.c (setup_interface_offsets): If the class is an interface,
1828         fill out its interface_offsets slot.
1829
1830 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1831
1832         * threadpool.c: mark threadpool threads as background.
1833
1834 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
1835
1836         * decimal.c - define DECINLINE to nothing if not using GCC
1837
1838 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
1839
1840         * assembly.c: More refcount fixes.
1841
1842 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1843
1844         * string-icalls.c: if we're not trimming, return the same string.
1845         When not splitting, don't create a new string.
1846
1847 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1848
1849         * image.c:
1850         (mono_image_open): increment the ref_count inside the critical section.
1851
1852 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
1853
1854         * image.c (mono_image_open): Fix reference counting bug.
1855
1856 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
1857
1858         * marshal.c (mono_marshal_type_size) struct alignment changed for 
1859         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
1860         64bits. Avoid leak in mono_marshal_get_native_wrapper when
1861         mono_lookup_pinvoke_call throws.        
1862
1863 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
1864
1865         * reflection.c (mono_reflection_parse_type): Fix #49114.
1866
1867         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
1868         temporary workaround for cygwin header problem.
1869
1870         * object.c (mono_object_isinst): Synchronize this with the code
1871         generated by the JIT for casts.
1872
1873 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
1874
1875         * reflection.c (encode_type): Fix #38332.
1876
1877 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
1878
1879         * marshal.c (mono_marshal_method_from_wrapper): New function to return
1880         the original method from the wrapper method.
1881
1882 2003-09-25  Martin Baulig  <martin@ximian.com>
1883
1884         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
1885         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
1886         (ves_icall_Type_get_IsGenericInstance): New interncall.
1887
1888 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
1889
1890         * object.c: fix cast warning in big endian code.
1891
1892 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
1893
1894         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
1895         
1896 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1897
1898         * assembly.c: don't call check_env from mono_assembly_load. It's
1899         already done once in mono_assemblies_init and may cause headaches when
1900         multiple threads are loading assemblies.
1901
1902 2003-09-19  Martin Baulig  <martin@ximian.com>
1903
1904         * reflection.c (mono_reflection_define_generic_parameter): Don't
1905         allocate `klass->methods', set `klass->flags' to
1906         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
1907
1908 2003-09-18  Martin Baulig  <martin@ximian.com>
1909
1910         * class.c (mono_class_init): Don't create `class->methods' if it's
1911         already initialized.
1912
1913         * metadata.c (mono_metadata_load_generic_params): Make this
1914         actually work.
1915
1916         * reflection.c (mono_reflection_define_generic_parameter): Set
1917         parent class and interfaces from the constraints.
1918
1919         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
1920         to keep this struct in sync with the declaration in TypeBuilder.cs.
1921
1922 2003-09-17  Martin Baulig  <martin@ximian.com>
1923
1924         * metadata.h (MonoType): Replaced the data's `int type_param'
1925         field with `MonoGenericParam *generic_param'.
1926         (MonoGenericParam): Added `MonoClass *klass'.
1927
1928         * class.c (mono_class_from_gen_param): Removed the
1929         `MonoImage *image' and `int type_num' arguments.
1930
1931         * metadata.c (mono_metadata_parse_generic_param): New static
1932         method; creates a MonoGenericParam which just contains the index.
1933         (do_mono_metadata_parse_type): Call
1934         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
1935         MONO_TYPE_MVAR.
1936
1937         * reflection.c (mono_image_typedef_or_ref): Generic type
1938         parameters may be in the same assembly, but never use a typedef
1939         for them.
1940         (mono_reflection_define_generic_parameter): We're now creating a
1941         "real" class for the type parameter; it's now safe to call
1942         mono_class_from_mono_type() on the class'es type, it'll do the
1943         right thing.
1944
1945 2003-09-16  Martin Baulig  <martin@ximian.com>
1946
1947         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
1948         `symfile->range_entry_size' and `symfile->class_entry_size' here;
1949         the `symfile' data structure must be fully initialized before it
1950         gets added to the table.
1951
1952 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
1953
1954         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
1955
1956         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
1957         class init trampolines.
1958
1959 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
1960
1961         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
1962         to the built-in profiler to turn off time and allocation profiling
1963         respectively.
1964
1965 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
1966
1967         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
1968         g_direct_equal.
1969
1970         * debug-helpers.c (mono_method_full_name): Print the wrapper type
1971         in human readable form.
1972
1973 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
1974
1975         * reflection.c icall.c: Fixed warnings.
1976
1977         * image.c (load_class_names): Use a temporary hash table to hold the
1978         namespaces in order to avoid doing many string comparisons.
1979
1980         * image.h: Fix typo.
1981
1982         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
1983         Pass NULL instead of g_direct_equal to the GHashTable constructor 
1984         since the NULL case is short-circuited inside g_hash_table_lookup, 
1985         leading to better performance.  
1986
1987         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
1988         obtain the first custom attribute for a given index. Depends on the
1989         CustomAttribute table being sorted by the parent field.
1990
1991         * reflection.c (mono_custom_attrs_from_index): Use the new function 
1992         for better performance.
1993
1994 2003-09-07  Martin Baulig  <martin@ximian.com>
1995
1996         * class.c (mono_class_init): If we're a generic instance, inflate
1997         all our methods instead of loading them from the image.
1998         (mono_class_from_generic): Set `class->methods = gklass->methods'.
1999
2000 2003-09-07  Martin Baulig  <martin@ximian.com>
2001
2002         * mono-debug-debugger.c: Added support for constructors.
2003
2004 2003-09-06  Martin Baulig  <martin@ximian.com>
2005
2006         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
2007         New interncall.
2008
2009         * reflection.c (mono_reflection_setup_generic_class): Call
2010         ensure_runtime_vtable() to create the vtable.
2011
2012 2003-09-05  Martin Baulig  <martin@ximian.com>
2013
2014         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
2015         MONO_TYPE_MVAR.
2016
2017 2003-09-04  Martin Baulig  <martin@ximian.com>
2018
2019         * reflection.c (mono_reflection_define_generic_parameter): Generic
2020         parameters start with zero.
2021
2022 2003-09-04  Martin Baulig  <martin@ximian.com>
2023
2024         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
2025
2026         * reflection.h (MonoReflectionGenericParam): New typedef.
2027         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
2028         the generic parameters from the managed TypeBuilder.
2029
2030         * reflection.c (mono_reflection_define_generic_parameter): New function.
2031         (mono_reflection_create_runtime_class): Encode generic parameters.
2032         (mono_reflection_setup_generic_class): New function; this is
2033         called after adding adding all generic params to the TypeBuilder.
2034         (encode_type): Added MONO_TYPE_VAR.
2035
2036 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
2037
2038         * class.h class.c (mono_class_needs_cctor_run): Moved this method
2039         here from the JIT.
2040
2041         * assembly.h assembly.c: Moved the AOT loading code into an assembly
2042         load hook.
2043
2044 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
2045
2046         * reflection.h reflection.c class.h class.c: Delete duplicate 
2047         definition of mono_type_get_name () from reflection.c and export the
2048         one in class.c.
2049
2050         * class.c: Class loading fixes from Bernie Solomon 
2051         (bernard@ugsolutions.com).
2052
2053         * reflection.c: Endianness fixes from Bernie Solomon 
2054         (bernard@ugsolutions.com).
2055         
2056 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
2057
2058         * assembly.h assembly.c: Define a file format version for AOT
2059         libraries.
2060         
2061         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
2062
2063         * appdomain.h (MonoJitInfo): New field to determine whenever the
2064         code is domain neutral.
2065         
2066 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
2067
2068         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
2069
2070 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
2071
2072         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
2073         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
2074         Avoid caching the result since strings must be domain specific. Fixes
2075         #48050.
2076
2077 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
2078
2079         * marshal.c (mono_marshal_init): Make this callable multiple times
2080         since it is hard to find a correct place to call it.
2081
2082         * object.c (mono_runtime_class_init): Execute static constructors in
2083         the correct appdomain.
2084
2085         * image.c (build_guid_table): Handle the case when multiple images have
2086         the same GUID.
2087
2088 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2089
2090         * icall.c: added a couple of icalls for System.Web.
2091
2092 2003-08-28  Martin Baulig  <martin@ximian.com>
2093
2094         * icall.c (ves_icall_Type_BindGenericParameters): Use
2095         `klass->generic_inst' instead of `&klass->byval_arg' in the
2096         mono_type_get_object() call.  The returned type must be
2097         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
2098
2099 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
2100
2101         * NOTES: New file.
2102
2103         * object.c (mono_class_proxy_vtable): Make it thread safe.
2104
2105         * pedump.c: Fix warning.
2106
2107         * object.c appdomain.h: Get rid of metadata_section. 
2108         It is no longer needed and it was causing deadlocks with domain->lock.
2109
2110         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
2111
2112 2003-08-26  Martin Baulig  <martin@ximian.com>
2113
2114         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
2115
2116 2003-08-26  Martin Baulig  <martin@ximian.com>
2117
2118         * pedump.c (main): Call mono_metadata_init(),
2119         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
2120         and mono_loader_init().
2121
2122 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
2123
2124         * loader.h: Add missing include to fix build.
2125
2126         * image.h: mono_image_load_references is no more.
2127
2128         * assembly.c: Reworked assembly loading to make it really thread safe.
2129         After these changes, the assembly returned by mono_assembly_open is
2130         fully initialized, i.e. all its references assemblies are loaded.
2131
2132         * assembly.c (mono_image_load_references): Renamed to 
2133         mono_assembly_load_references, and made private, since clients no
2134         longer need to call it.
2135
2136         * class.c: Removed calls to mono_assembly_load_references, since it was
2137         a source of deadlocks.
2138
2139         * loader.h loader.c class.h class.c: Protect data structures using a 
2140         new lock, the loader lock.
2141
2142         * class.c (mono_class_setup_vtable): Create temporary hash tables and
2143         GPtrArrays only when needed.
2144
2145         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
2146         into empty structures by mcs. Fixes pinvoke7.cs.
2147         
2148         * domain.c (mono_init): Call a new initialization function.
2149
2150         * appdomain.c (mono_runtime_init): Call the new initializer function
2151         of the marshal module.
2152
2153         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
2154         inserted into empty structures by mcs. Fixes pinvoke7.cs.
2155
2156         * marshal.h marshal.c: Added locks around the wrapper caches to make
2157         this module thread safe.
2158
2159         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
2160         this argument. Fixes pinvoke1.exe.
2161
2162 2003-08-25  Lluis Sanchez <lluis@ximian.com>
2163
2164         * object.h: Added call_type field to MonoMethodMessage and the corresponding
2165         enumeration of values. Removed fields to store remote call output values in
2166         MonoAsyncResult. Not needed any more.
2167         * object.c: Initialize call_type and async_result fields in mono_message_init.
2168         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
2169         dispatching the message.
2170         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
2171         async call to finish. To do it use a message with EndInvoke call type.
2172
2173 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
2174
2175         * loader.h loader.c (mono_method_hash_marhal_info): New function which
2176         determines whenever a method has marshalling info.
2177
2178 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2179
2180         * assembly.c: fix the build on windows.
2181
2182 2003-08-22 Lluis Sanchez <lluis@ximian.com>
2183
2184         * object.cs: Fixed bug #47785.
2185
2186 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
2187
2188         * string-icalls.c (StringReplace): If their are no occurances of
2189         the old string found return a reference to the supplied
2190         string. This saves some memory and matches MS behavoir.
2191         
2192 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2193
2194         * socket-io.c: fixed compilation for systems that define AF_INET6
2195         and don't define SOL_IP/SOL_IPV6.
2196
2197 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
2198
2199         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
2200         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
2201
2202         * rawbuffer.c rawbuffer.h: Make this module thread safe.
2203
2204         * domain.c: Make this module thread safe.
2205
2206         * domain.c (mono_init): Call new initialization function.
2207
2208         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
2209         reference types too. Fixes #38812.
2210
2211         * image.c (mono_image_init): Fixed warnings.
2212
2213         * class.c (mono_class_from_typeref): Handle assembly load failure
2214         correctly.
2215
2216         * appdomain.c (add_assemblies_to_domain): Handle the case when
2217         the references of an assembly are not yet loaded.
2218
2219         * metadata.c image.c assembly.c: Moved initialization of global
2220         variables to a separate function called at startup since lazy 
2221         initialization of these variables is not thread safe.
2222         
2223         * image.c assembly.c: Made this module thread safe by adding locks in 
2224         the appropriate places.
2225
2226         * domain.c (mono_init): Call the new initialization functions of the
2227         three modules.
2228
2229 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
2230
2231         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
2232           make a direct call. It is proxy's work to make the call asynchronous.
2233           mono_delegate_end_invoke(): If the targe is a proxy, just collect
2234           the return values.
2235         * object.cs: mono_method_call_message_new(): read AsyncResult and
2236           state object from parameters list, if this info is requested.
2237         * object.h: Added fields to store remote call output values in
2238           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
2239
2240 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
2241
2242         * object.h: add needed fields to MonoThread.
2243         * threads.c, threads.h: allow registering a function to cleanup data
2244         allocated per thread by the JIT.
2245
2246 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2247
2248         * loader.h: portability fix by Bernie Solomon
2249         * <bernard@ugsolutions.com>.
2250
2251 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
2252
2253         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
2254         return a MonoArray. This simplifies the code and also ensures that
2255         the cache allways contains an object reference as a value.
2256
2257         * icall.c (ves_icall_get_parameter_info): Simplified using the new
2258         function.
2259
2260 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2261
2262         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
2263         fixes a problem with byte ordering when getting the address family for
2264         a socket.
2265
2266 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
2267
2268         * .cvsignore: Added monosn.
2269
2270         * reflection.h reflection.c loader.c: Added support for parameter
2271         marshalling to dynamically created types. Fixes #47295.
2272
2273 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
2274
2275         * rand.c: remove useless warnings.
2276
2277 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
2278
2279         * class.c: implemented ldtoken for methods and fieldrefs.
2280
2281 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2282
2283         * threadpool.c: when mono_async_invoke was called, no one took care of
2284         monitoring the queue. So if the method invoked took some time and we
2285         got new async invoke requests after 500 ms (the thread created waited
2286         that long in WaitForSingleObject), the new async invoke was not called
2287         until the previous one finished.
2288
2289         This is fixed now. Thanks to Totte for helping with it.
2290
2291 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2292
2293         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
2294
2295 2003-08-11  Martin Baulig  <martin@ximian.com>
2296
2297         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
2298
2299 2003-08-06  Martin Baulig  <martin@ximian.com>
2300
2301         * mono-debug-debugger.c: Added support for static fields,
2302         properties and methods.
2303
2304 2003-08-06  Martin Baulig  <martin@ximian.com>
2305
2306         * mono-debug-debugger.c: Don't store the MonoString's vtable to
2307         make this work for applications with multiple application domains.
2308
2309 2003-08-04  Martin Baulig  <martin@ximian.com>
2310
2311         * mono-debug-debugger.c: Completely reworked the type support; the
2312         most important thing is that we're now just using one single
2313         `MonoType' instance per type.
2314
2315 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
2316
2317         * mono-endian.h, mono-endian.c, icall.c: Added icall
2318         ves_icall_System_Double_AssertEndianity to assert double word endianity
2319         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
2320
2321 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
2322
2323         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
2324         support, icalls and fixes.
2325
2326 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
2327
2328         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
2329         classes that are a punctuation character in .NET is not the same a
2330         g_unichar_ispunct.
2331
2332 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2333
2334         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
2335
2336 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
2337
2338         * icall.c: Add new MemCopy internalcall.
2339         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
2340         Simplified code; It is not necessary to handle all the cases here,
2341         as the C# code takes care of it.  Only handle the case of the name
2342         resource embedded into the assembly.
2343
2344         Changed signature to return the data pointer and the size of the
2345         data. 
2346
2347 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
2348
2349         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
2350         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
2351
2352 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
2353
2354         * socket-io.c: ignore EINTR error in select.
2355
2356 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
2357
2358         * class.h, class.c: removed unused subclasses field in MonoClass.
2359
2360 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
2361
2362         * icall.c: improve fix of get_base_definition(). If the parent class
2363           doesn't have the mehod, look at the parent of the parent.
2364         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
2365           to check if a parameter is an in or out parameter
2366           (PARAM_ATTRIBUTE_IN is not set by default).
2367           mono_method_return_message_restore(): Use mono_class_value_size to
2368           get the size of a value type. mono_type_stack_size (parameterType)
2369           does not return the correct value if parameterType is byRef.
2370           mono_load_remote_field(), mono_load_remote_field_new(),
2371           mono_store_remote_field(), mono_store_remote_field_new():
2372           raise exception if the remote call returns an exception.
2373
2374 2003-07-28  Martin Baulig  <martin@ximian.com>
2375
2376         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
2377         method.  This is a wrapper around mono_runtime_invoke() which
2378         boxes the instance object if neccessary.
2379
2380 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
2381
2382         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
2383         metadata.h, row-indexes.h, verify.c: first cut of generics support.
2384
2385 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
2386
2387         * icall.c: disable mcs bug workaround.
2388
2389 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
2390
2391         * object.c (mono_runtime_class_init): Take the metadata_section
2392         mutex before obtaining the domain mutex.
2393
2394         * appdomain.h: Added definition of metadata_section mutex here. 
2395
2396         * object.c: define metadata_mutex here.
2397
2398 2003-07-24  Ravi Pratap  <ravi@ximian.com>
2399
2400         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
2401         fixed.
2402
2403 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
2404
2405         * reflection.c: Fix bug #46669
2406
2407 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2408
2409         * exception.c:
2410         * exception.h:
2411         * icall.c:
2412         * object.h: fill in the type name for TypeLoadException.
2413
2414 2003-07-23  Ravi Pratap  <ravi@ximian.com>
2415
2416         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
2417         relationship between TypeBuilders while compiling corlib) and bug
2418         45993 (Array types returned from the runtime while compiling
2419         corlib were from the loaded corlib).
2420
2421 2003-07-22  Martin Baulig  <martin@ximian.com>
2422
2423         * mono-debug-debugger.c: Reworked the type support a bit more;
2424         distinguish between types and classes.
2425
2426 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
2427
2428         * icall.c: add IsArrayImpl icall.
2429
2430 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
2431
2432         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
2433         initializing real_size only once. Also fix bug #46602.
2434
2435 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
2436
2437         * object.c: Renamed mono_metadata_section to metadata_section.
2438
2439 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
2440
2441         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
2442           empty array if the type is an array. Fixed.
2443           ves_icall_MonoMethod_get_base_definition: if the base method
2444           is abstract, get the MethodInfo from the list of methods of
2445           the class.
2446         * reflection.c: ParameterInfo.PositionImpl should be zero-based
2447           and it was 1-based. Fixed in mono_param_get_objects.
2448
2449 2003-07-20  Martin Baulig  <martin@ximian.com>
2450
2451         * mono-debug.h: Set version number to 31.
2452         (mono_debug_init): Added `MonoDomain *' argument.
2453
2454         * mono-debug-debugger.c: Reworked the type support; explicitly
2455         tell the debugger about builtin types; pass the `klass' address to
2456         the debugger.
2457
2458 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
2459
2460         * image.c: Allow new metadata tables to be loaded without a
2461         warning. Also update the warning message to give the new constant value.
2462                 
2463 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
2464
2465         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
2466         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
2467         array type representation changes.
2468
2469 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
2470
2471         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
2472         on Environment.Exit () call.
2473
2474 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
2475
2476         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
2477         requires a matching corlib.
2478
2479 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
2480
2481         * Changelog: My editor decided to add a CR to each line. Sorry about that.
2482           Committed again without the CRs.
2483         
2484 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
2485
2486         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
2487           getting it from the "this" socket instance. Did not work
2488           if the socket is a subclass of Socket.
2489           Also fixed bug #35371.
2490
2491 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
2492
2493         * metadata.c: fixed size for TypedByRef.
2494         * loader.c: when searching for a method, consider the vararg amrker.
2495         * unicode.c, decimal.c: constify some arrays.
2496
2497 2003-07-15  Dick Porter  <dick@ximian.com>
2498
2499         * socket-io.c: Fixed compilation for gcc < 3.2.
2500
2501         Fixed compilation for machines that don't have AF_INET6 (thanks to
2502         Bernie Solomon <bernard@ugsolutions.com> for that part.)
2503
2504         Fixed compile warnings.
2505         
2506         Fixed formatting and line endings.
2507
2508 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
2509
2510         * socket-io.h:
2511         * socket-io.c: Added IPv6 support.
2512
2513 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
2514
2515         * class.c (mono_class_is_assignable_from): New function to implement
2516         the is_assignable_from logic. Used by mono_object_isinst, 
2517         Type::IsAssignableFrom () and the interpreter.
2518
2519         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
2520         Object, even interfaces.
2521         
2522         * object.c (mono_object_isinst): Implement in terms of 
2523         is_assignable_from.
2524
2525         * icall.c (ves_icall_type_is_assignable_from): New icall.
2526
2527 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
2528
2529         * domain.c (foreach_domain): fix compiler warning.
2530
2531 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
2532
2533         * image.c (load_metadata_ptrs): use g_strndup because strndup is
2534         not available on all plattforms
2535
2536 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
2537
2538         * image.h image.c: Store the metadata version string in MonoImage.
2539         * icall.c: New icall to retrieve the image version.
2540         * reflection.c (create_dynamic_image): Fill in the image version field
2541         * reflection.c (build_compressed_metadata): Use the image version
2542         from the image structure.
2543
2544 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2545
2546         * appdomain.c: modified comment.
2547         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
2548         That will be its last iteration when mono_gc_cleanup is called from
2549         mono_runtime_cleanup and before the domain is unloaded.
2550
2551         Fixes bug #45962.
2552
2553 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
2554
2555         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
2556         attributes.
2557
2558 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
2559
2560         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
2561         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
2562         Bernie Solomon <bernard@ugsolutions.com>.
2563
2564 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
2565
2566         * object.c, object.h: provide mono_object_new_fast() for faster
2567         allocation in some special cases.
2568
2569 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
2570
2571         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
2572         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
2573
2574 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
2575
2576         * threadpool.c: fix leaks.
2577
2578 2003-07-01  Dick Porter  <dick@ximian.com>
2579
2580         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
2581         using MonoGHashTables.  Fixes threadpool bug posted to list.
2582
2583 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
2584
2585         * image.h, image.c: added support to load an assembly from a byte array.
2586         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
2587         assembly bundle support.
2588
2589 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
2590
2591         * threadpool.c (mono_thread_pool_add): keep a reference to the
2592         AsyncResult to prevent GC
2593
2594 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
2595
2596         * class.c: leak fix.
2597
2598 2003-06-25  Dick Porter  <dick@ximian.com>
2599
2600         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
2601         for the async object, the WaitHandle object will close the handle.
2602         Fixes bug 45321.
2603
2604 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
2605
2606         * class.c: in mono_array_class_get (), lookup from the hash with the
2607         same type we insert: this works around a bug in
2608         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
2609         lluis. The real fix will have to wait for after the release.
2610
2611 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
2612
2613         * icall.c: fix memory leak when getting type members.
2614
2615 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
2616
2617         * reflection.c: added more pubtoken special cases.
2618
2619 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
2620
2621         * class.c: handle field offset correctly when class size
2622         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
2623
2624 2003-06-20  Martin Baulig  <martin@ximian.com>
2625
2626         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
2627         *image' field.
2628
2629 2003-06-20  Martin Baulig  <martin@ximian.com>
2630
2631         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
2632
2633 2003-06-20  Martin Baulig  <martin@ximian.com>
2634
2635         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
2636         just distinguish between variables in registers and variables at
2637         an offset relative to a register.
2638
2639 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2640
2641         * icall.c: #ifdef out latest changes until mcs is fixed.
2642
2643 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
2644
2645         * icall.c: return members in metadata order.
2646
2647 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
2648
2649         * icall.c: avoid infinite loop in GetTimeZoneData.
2650
2651 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
2652
2653         * icall.c: added Marshal.Prelink/All icalls.
2654
2655 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
2656
2657         * object.c, object.h: fix warnings and do some overflow checking
2658         when creating arrays.
2659
2660 2003-06-17  Dick Porter  <dick@ximian.com>
2661
2662         * file-io.h:
2663         * file-io.c: File attributes need to be tweaked slightly when
2664         passed from the managed to the w32 world.
2665
2666 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
2667         * profiler.h profiler-private.h profiler.c: Rework last patch
2668         based on suggestion by Paolo.
2669         
2670 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
2671
2672         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
2673         instruction level coverage data collection.
2674         * profiler.h profiler.c (: Added new callback function which can be
2675         used by the profiler to limit which functions should have coverage
2676         instrumentation.
2677         * profiler.c (mono_profiler_load): Call g_module_build_path to
2678         generate the file name of the profiler library.
2679
2680 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
2681
2682         * profiler.c, profiler.h, profiler-private.h: added basic block 
2683         coverage profiling API.
2684
2685 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
2686
2687         * reflection.c (mono_reflection_create_runtime_class): Add support
2688         for events in dynamically generated code.
2689
2690         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
2691         not allocated.
2692
2693 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
2694
2695         * icall.c: when getting timezone info, return reasonable values if we
2696         can't get the actual data.
2697
2698 2003-06-14  Dick Porter  <dick@ximian.com>
2699
2700         * threads.c (start_wrapper): Remove the reference to the thread
2701         object in the TLS data, so the thread object can be finalized.
2702         This won't be reached if the thread threw an uncaught exception,
2703         so those thread handles will stay referenced :-( (This is due to
2704         missing support for scanning thread-specific data in the Boehm GC
2705         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
2706
2707 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
2708
2709         * reflection.c: ensure streams and tables are first allocated with
2710         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
2711
2712 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
2713
2714         * icall.c: fixed GetElementType for byrefs (bug# 44792).
2715
2716 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
2717
2718         * reflection.c (mono_reflection_create_runtime_class): Add support for
2719         properties to dynamically created classes.
2720         * reflection.c: Fix a few places where non-MonoObjects were inserted
2721         into the tokens hashtable.
2722
2723 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
2724
2725         * object.c: some support to handle out of memory exceptions.
2726
2727 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
2728
2729         * marshal.c (mono_marshal_get_native_wrapper): support reference
2730         return types
2731
2732 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
2733
2734         * object.h, object.c: more portability stuff from Bernie Solomon.
2735         Unexport mono_object_allocate(). Added mono_object_unbox ().
2736         Set exitcode when an unhandled exception is thrown.
2737
2738 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
2739
2740         * marshal.c (mono_marshal_get_native_wrapper): use custom
2741         marshaler for return types.
2742
2743 2003-06-10  Dick Porter  <dick@ximian.com>
2744
2745         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
2746         ip_mreq is available
2747
2748 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
2749
2750         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
2751         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
2752         by Bernie Solomon <bernard@ugsolutions.com>.
2753
2754 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
2755
2756         * gc.c (mono_gc_init): Avoid error message on shutdown when
2757         GC_DONT_GC=1 is used.
2758
2759         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
2760         New icall to return the GUID of a module.
2761
2762 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
2763
2764         * class.c: ensure instance size always includes the parent's size
2765         even whem class size is set explicitly (fixes bug#44294).
2766
2767 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
2768
2769         * profiler.h, profiler.c: made the simple profiler thread-safe,
2770         get more accurate timing info. Allow the loading of an
2771         externally-developed profiler module.
2772
2773 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
2774
2775         * marshal.c (mono_marshal_get_native_wrapper): improved
2776         class/byref arguments.
2777         (mono_marshal_get_native_wrapper): better string marshaling support.
2778
2779 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
2780
2781         * class.c: ensure .pack and .size are handled correctly and
2782         simplified layout of static fields.
2783
2784 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
2785
2786         * appdomain.c
2787         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
2788
2789         * loader.c (mono_lookup_pinvoke_call): look for modules in the
2790         current directory (fix bug 44008)
2791
2792 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
2793
2794         * marshal.c (mono_marshal_get_native_wrapper): started support for
2795         custom marshalers.
2796         (mono_delegate_to_ftnptr): consider marshalling specifications
2797
2798 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
2799
2800         * reflection.c, reflection.h: emit custom marshal info.
2801
2802 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2803
2804         * object.c: free the GError.
2805         * icall.c: added CloseEvent_internal.
2806         * threads.[ch]:
2807         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
2808         call.
2809
2810 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
2811
2812         * loader.c (mono_method_get_signature): Add support for dynamic
2813         assemblies.
2814
2815 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
2816
2817         * reflection.c: fixed bug #43905.
2818
2819 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
2820
2821         * class.c, domain.c, icall.c, metadata.h, object.h: support for
2822         handling TypedReference and ArgIterator.
2823         * loader.c, loader.h: added function to get signature at call site.
2824
2825 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
2826
2827         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
2828         data readonly. Buglets and warning fixes. Some MethodSpec support.
2829
2830 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
2831
2832         * class.h, class.c, object.c: remove relative numbering support.
2833
2834 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
2835
2836         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
2837         free the string, until we get a chance to fix Gtk#
2838
2839 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2840
2841         * marshal.c: revert last patch.
2842
2843 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
2844
2845         * icall.c: updates for new mono_class_vtable() not calling
2846         the type constructor anymore.
2847
2848 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
2849
2850         * object.h, object.c: separate vtable creation from type
2851         initialization. Make running the .cctor thread safe.
2852
2853 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
2854
2855         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
2856
2857 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
2858
2859         * loader.c (mono_get_method): consider calling convention
2860
2861 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
2862
2863         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
2864         to return the invisible global type for a module.
2865
2866         * reflection.c (mono_image_build_metadata): Emit global fields too.
2867
2868 2003-05-20  Peter Williams  <peterw@ximian.com>
2869
2870         * loader.c (mono_lookup_internal_call): Add a few newlines.
2871
2872 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
2873
2874         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
2875         literal strings.
2876
2877         * appdomain.c (set_domain_search_path): Recalculate search path when
2878         AppDomainSetup.PrivateBinPath changes.
2879
2880         * object.c (mono_class_compute_gc_descriptor): It turns out some
2881         parts of the class libs (like System.Thread) holds pointers to
2882         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
2883         to treat native int a pointer type here.
2884         
2885 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
2886
2887         * appdomain.h, domain.c: add hashtable for jump target resolution.
2888
2889 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
2890
2891         * reflection.h reflection.c icall.c: Added new icalls 
2892         GetManifestResourceInfoInternal, GetModulesInternal and support
2893         infrastructure.
2894
2895 2003-05-16  Dick Porter  <dick@ximian.com>
2896
2897         * icall.c:
2898         * file-io.h:
2899         * file-io.c: Implement System.IO.MonoIO::GetTempPath
2900
2901 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
2902
2903         * object.c: mono_store_remote_field: little fix to previous patch.
2904
2905 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
2906
2907         * class.c: add constructors to array classes.
2908         * icall.c: special case array construction for InternalInvoke (),
2909
2910 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
2911
2912         * class.h class.c reflection.c object.c: Added support for field
2913         defaults in dynamically generated classes.
2914
2915 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
2916
2917         * reflection.c: properly encode charset for ddlimport.
2918
2919 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
2920
2921         * threads.c: allow compiling without GC.
2922
2923 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
2924
2925         * appdomain.h, object.c, object.h, threads.c, threads.h: added
2926         handling of thread static data.
2927
2928 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
2929
2930         * reflection.h, reflection.c: added mono_custom_attrs_free ().
2931
2932 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
2933
2934         * class.c (mono_array_class_get): always set the serializable flags
2935         (mono_array_class_get): always set the SEALED attribute for array types
2936
2937 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
2938
2939         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
2940         attributes (fix for bug 42021).
2941
2942 2003-05-12  Dick Porter  <dick@ximian.com>
2943
2944         * gc.c: Don't run finalizers when the finalizer thread is
2945         finishing up, because the default domain has already been
2946         destroyed.
2947
2948 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
2949
2950         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
2951         value is null, we should throw an exception.   This is slightly
2952         different than the other conventions used for the constructor.
2953
2954 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2955
2956         * socket-io.c: fixed windows build.
2957
2958 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2959
2960         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
2961
2962 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
2963
2964         * object.c (mono_string_new_wrapper): Compatibility fix for MS
2965         compilers.
2966
2967 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
2968
2969         * class.c (mono_class_layout_fields): Add experimental GC aware
2970         auto layout facility. Requires class library changes to work correctly.
2971
2972         (mono_class_setup_vtable): Avoid overriding explicit interface
2973         method implementations. Fixes iface3.exe test.
2974
2975         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
2976         object reference.
2977         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
2978         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
2979
2980         * metadata.h: Add new type classification macro which determines
2981         whenever the type holds an object reference.
2982
2983 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
2984
2985         * marshal.c (mono_marshal_get_native_wrapper): cleanups
2986
2987 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
2988
2989         * gc.c (finalizer_thread): Work around a GC bug.
2990
2991 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
2992
2993         * marshal.c (emit_struct_conv): allow unions
2994
2995         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
2996
2997 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
2998
2999         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
3000
3001 2003-05-06  Martin Baulig  <martin@ximian.com>
3002
3003         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
3004
3005 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3006
3007         * socket-io.c:
3008         (Select_internal): allow NULLs, don't create arrays if not needed.
3009         Coupled with Socket.cs changes.
3010
3011         * threadpool.c:
3012         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
3013         register a finalizer for it that will close the semaphore handle. This
3014         fixes the leak and make Lupus' test run with > 4080 loops.
3015
3016 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
3017
3018         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
3019         Jerome Laban (bug #42287)
3020
3021 2003-05-02  Martin Baulig  <martin@ximian.com>
3022
3023         * debug-mono-symfile.h
3024         (MonoSymbolFile): Moved declaration into mono-debug.h.
3025         (MonoDebugMethodJitInfo): Likewise.
3026         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
3027         argument.
3028         (_mono_debug_address_from_il_offset): Take a
3029         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
3030
3031         * mono-debug.h
3032         (MonoDebugDomainData): New struct.
3033         (mono_debug_get_domain_data): New function.
3034         (mono_debug_add_method): Take an additional `MonoDomain *'
3035         argument.
3036         (mono_debug_source_location_from_address): Likewise.
3037         (mono_debug_il_offset_from_address): Likewise.
3038         (mono_debug_address_from_il_offset): Likewise.
3039
3040 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
3041
3042         * reflection.c: one more check for null type in custom attrs.
3043
3044 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3045
3046         * reflection.c: avoid warning (comparison is always false due to limited
3047         range of data type).
3048
3049 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3050
3051         * icall.c: throw an exception in Type.GetField if the argument 'name'
3052         is NULL.
3053
3054 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
3055
3056         * reflection.c: fixed handling of enums in named arguments to custom
3057         attributes (bug #42123).
3058
3059 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
3060
3061         * reflection.c: use the right array element type and handle
3062         a null for a Type argument, too.
3063
3064 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
3065
3066         * reflection.c: handle arrays as arguments to custom attributes.
3067
3068 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
3069
3070         * reflection.c: handle a string value in a custom attr
3071         ctor that takes an object.
3072
3073 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
3074
3075         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
3076         (fix bug #42063)
3077
3078 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
3079
3080         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
3081
3082 2003-04-27  Martin Baulig  <martin@ximian.com>
3083
3084         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
3085         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
3086         MONO_DEBUGGER_EVENT_BREAKPOINT.
3087         (mono_breakpoint_trampoline_code): Removed.
3088         (mono_debugger_event_handler): The last argument is now a
3089         `guint32'.
3090         (mono_debugger_insert_breakpoint_full): Removed the
3091         `use_trampoline' argument.
3092         (mono_debugger_method_has_breakpoint): Likewise.
3093         (mono_debugger_trampoline_breakpoint_callback): Renamed to
3094         mono_debugger_breakpoint_callback(); take the method and
3095         breakpoint number as arguments.
3096
3097 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
3098
3099         * metadata.c: fix off by one when loading parameters attributes.
3100
3101 2003-04-24  Martin Baulig  <martin@ximian.com>
3102
3103         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
3104
3105 2003-04-24  Martin Baulig  <martin@ximian.com>
3106
3107         * mono-debug-debugger.c: Moved all code which interacts with the
3108         Mono Debugger here.
3109
3110         * debug-mono-symfile.c: This code now just deals with the symbol
3111         file itself, the debugger code is now in mono-debug-debugger.c.
3112
3113 2003-04-23  Martin Baulig  <martin@ximian.com>
3114
3115         * mono-debug.c (mono_debug_source_location_from_il_offset):
3116         New method; like mono_debug_source_location_from_address(), but
3117         takes an IL offset instead of a machine address.
3118
3119 2003-04-23  Martin Baulig  <martin@ximian.com>
3120
3121         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
3122         `line' field; this is now computed by the debugger.
3123
3124 2003-04-23  Martin Baulig  <martin@ximian.com>
3125
3126         * mono-debug.[ch]: New files.  This is the new debugging interface.
3127
3128         * mono-debug-debugger.[ch]: New files.  Moved all code which
3129         interacts with the Mono Debugger here.
3130
3131 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
3132
3133         * domain.c (mono_init): initialize mono_defaults.monitor_class
3134
3135 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
3136
3137         * reflection.c (method_encode_code): Add a spicy exception to help
3138         future compiler authors.
3139
3140 2003-04-21  Martin Baulig  <martin@ximian.com>
3141
3142         * icall.c
3143         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3144         Make this work with relative pathnames; g_filename_to_uri() needs
3145         an absolute filename.
3146
3147 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
3148
3149         * icall.c: Track name changes in Object and ValueType.
3150
3151 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
3152
3153         * metadata.c (mono_type_stack_size): size should be a multiple of
3154         sizeof (gpointer)
3155
3156 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3157
3158         * gc.c:
3159         (internal_domain_finalize): moved into mono_domain_finalize. No need
3160         to create another thread because the finalizers will be run in the
3161         finalizer thread.
3162         
3163         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
3164         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
3165         to be run (MS does this too).
3166
3167 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
3168
3169         * object.c (mono_class_compute_gc_descriptor): Update comment.
3170
3171         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
3172
3173         * image.h: Add synchronized wrapper cache.
3174
3175         * image.c (do_mono_image_open): Initialize cache.
3176
3177         * reflection.c (create_dynamic_mono_image): Initialize cache.
3178
3179 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3180
3181         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
3182         ves_icall_System_Buffer_ByteLengthInternal.
3183
3184 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
3185
3186         * reflection.c: setup klass->nested_in earlier. Allow
3187         a dash in the assembly name.
3188
3189 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
3190
3191         * metadata.c (mono_type_to_unmanaged): dont access
3192         type->data.klass for MONO_TYPE_OBJECT
3193         (mono_type_to_unmanaged): consider System.Delegate class
3194
3195 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
3196
3197         * class.c: just setup supertypes in the proper place instead of
3198         initializing the full element class for arrays.
3199
3200 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
3201
3202         * class.c: ensure the element class of arrays is initialized.
3203         Setup the supertype info for array classes, too.
3204
3205 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
3206
3207         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
3208
3209 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3210
3211         * Makefile.am: re-added -m option when running cygpath. This way,
3212         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
3213         separator.
3214         * mono-config.c: same codepath for locating mono config file for WIN32
3215         and the rest.
3216         * assembly.c: if mono_assembly_setrootdir is called, don't override
3217         the value set.
3218
3219 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3220
3221         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
3222         MONO_ASSEMBLIES variable.
3223
3224 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
3225
3226         * icall.c: added Assembly::GetNamespaces() icall.
3227
3228 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3229
3230         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
3231
3232 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
3233
3234         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
3235         * object.c: fixed bug in the construction of vtable for proxies
3236
3237 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
3238
3239         * object.c (mono_array_new): Mark mono_array_new as an icall.
3240
3241 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3242
3243         * class.c: fixed test for public method when overriding interfaces.
3244         Closes bug #40970.
3245
3246 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
3247
3248         * appdomain.h, domain.c: added mono_domain_foreach() to
3249         be able to access the currently loaded appdomains.
3250         * object.c: make string interning work across sppdomains.
3251         Mark some functions for use as icalls.
3252
3253 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
3254
3255         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
3256
3257         * reflection.h reflection.c: Allocate long living data using 
3258         GC_MALLOC_ATOMIC so the collector does not need to scan it.
3259
3260         * reflection.c: Double the allocation size in streams instead of
3261         increasing it, to prevent unneccesary copying on large assemblies.
3262         
3263         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
3264         creation if the assembly does not have the Run flag set.
3265
3266 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
3267
3268         * class.h: avoid the C++ keywords in header files (Jerome Laban
3269         spotted and fixed this).
3270
3271 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3272
3273         * object.c:
3274         (mono_unhandled_exception): fill in the arguments for the
3275         UnhandledException event. Only trigger that event for the default
3276         domain (as MS does).
3277
3278 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
3279
3280         * object.c: Improve typed allocation stuff based on suggestions from
3281         Paolo. Also turn it on if the GC library supports it.
3282
3283 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
3284
3285         * object.c object.h class.h: Added experimental typed allocation
3286         facility using the interfaces in gc_gcj.h.
3287
3288         * os/gc_wrapper.h: Added new include files.
3289         
3290 2003-04-03  Martin Baulig  <martin@ximian.com>
3291
3292         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
3293         which is not yet enabled by default.
3294
3295         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
3296         functions.
3297         (mono_gc_lock, mono_gc_unlock): New static functions.
3298
3299         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
3300         functions; stop/start the world for the garbage collector.  This
3301         is using the windows API; we need to complete the SuspendThread()/
3302         ResumeThread() implementation in the io-layer to make this work on Unix.
3303         (mono_gc_push_all_stacks): New public function; tells the garbage
3304         collector about the stack pointers from all managed threads.
3305
3306 2003-04-03  Martin Baulig  <martin@ximian.com>
3307
3308         * object.h (MonoThread): Added `gpointer stack_ptr'.
3309
3310         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
3311
3312 2003-04-03  Martin Baulig  <martin@ximian.com>
3313
3314         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
3315
3316 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
3317
3318         * reflection.c (typebuilder_setup_fields): Initialize field.first and
3319         field.last.
3320
3321 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
3322
3323         * loader.c (mono_lookup_internal_call): Report the corlib that is
3324         out of sync.
3325
3326 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
3327
3328         * icall.c (ves_icall_type_GetTypeCode): fixed check for
3329         System.DBNull (it's class not valuetype).
3330
3331 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
3332
3333         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
3334         if the array method was already assigned a token (fixes bug#40646).
3335
3336 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
3337
3338         * reflection.c (mono_reflection_get_type): Attempt type resolve even
3339         if no assembly is given.
3340
3341 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
3342
3343         * metadata.h: Added the new tables.
3344
3345         * row-indexes.h: Added definitions for new tables.
3346
3347         * metadata.c: Add schemas for new tables, and add support for
3348         computing the sizes of them.
3349
3350         * class.c: Update for handling the new type cases.
3351
3352 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
3353
3354         * metadata.h (MONO_TYPE_IS_VOID): new macro
3355
3356 2003-03-31  Martin Baulig  <martin@ximian.com>
3357
3358         * threads.h (MonoThreadCallbacks): Added `thread_created'.
3359
3360         * threads.c (mono_thread_new_init): Call `thread_created' in the
3361         mono_thread_callbacks.
3362
3363 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
3364
3365         * loader.h: added marshalbyrefobject_class to mono_defaults
3366         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
3367         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
3368           generation of output parameters.
3369           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
3370         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
3371           contextbound and the target object belongs to the context of the caller.
3372         * object.h: added context and unwrapped_server variables in MonoRealProxy.
3373         * object.c: Implemented support for interfaces and abstract classes
3374           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
3375           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
3376
3377 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
3378
3379         * class.h class.c (mono_class_is_subclass_of): New function.
3380         
3381         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
3382         routines for most common case (calls from ArrayList::ToArray).
3383
3384         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
3385         routine so programs which call Environment::Exit() can be profiled.
3386
3387         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
3388         Added MONO_ARCH_SAVE_REGS.
3389
3390         * icall.c (ves_icall_type_is_subtype_of): Use new function.
3391
3392 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
3393
3394         * blob.h: Add a couple of new MonoType types definitions.
3395
3396         * tabledefs.h: Add a couple of new call convs.
3397
3398 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
3399
3400         * reflection.h (MonoReflectionDynamicAssembly): track changes in
3401         the layout of the class.
3402
3403         * reflection.c (alloc_table): double the size on overflow to avoid
3404         unnecessary copying.
3405
3406         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
3407         avoid filling out metadata tables and blobs. Also set mb->ilgen to
3408         null so it can be garbage collected.
3409         
3410 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
3411
3412         * reflection.c (mono_reflection_get_type): Return the resolved type
3413         only if it is in the assembly we searched.
3414
3415         * reflection.c (ensure_runtime_vtable): Initialize method slots.
3416
3417         * class.c (mono_class_setup_vtable): Set the slot of the overriding
3418         method.
3419
3420 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3421
3422         * appdomain.c:
3423         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
3424         the right one is 'file:///blah', but MS allows it.
3425         * assembly.c:
3426         (mono_assembly_open): allow 'file://blah'
3427
3428         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
3429
3430 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
3431
3432         * socket-io.c: fixes bug #40310.
3433
3434 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
3435
3436         * reflection.c (mono_reflection_parse_type): handle deeply nested
3437         types correctly.
3438
3439         * reflection.c (mono_image_create_token): Use unique token values
3440         since they will be put into a hash table.
3441
3442         * class.c (mono_class_setup_vtable): If a method occurs in more than
3443         one place in the vtable, and it gets overriden, then change the
3444         other occurances too.
3445
3446         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
3447         object as return type.
3448
3449 2003-03-22  Pedro Martínez Juliá  <yoros@wanadoo.es>
3450
3451         * icall.c: Deleted "ToString" implementation for double and float
3452         because they are full implemented in managed code.
3453
3454 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
3455
3456         * reflection.c, reflection.h: implemented and exported functions
3457         to retrieve info about custom attributes.
3458
3459 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3460
3461         * appdomain.c: moved Uri handling to assembly.c
3462         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
3463         work when using a file Uri in *nix and windows.
3464
3465         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
3466         GetReferencedAssemblies.
3467
3468 2003-03-18  Dick Porter  <dick@ximian.com>
3469
3470         * icall.c: Rename a couple of internal calls
3471
3472         * threads.c: Set the thread state to Stopped when a thread exits.
3473         Fixes bug 39377.
3474
3475 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
3476
3477         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
3478         New icall.
3479
3480         * object.c (mono_class_vtable): fix warning.
3481
3482 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
3483
3484         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
3485
3486         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
3487         memory.
3488         (method_encode_clauses): Create exception info structures in the right
3489         order.
3490         (mono_reflection_setup_internal_class): Initialize supertypes field.
3491
3492         * class.c object.c: Handle interfaces which implement other interfaces 
3493         correctly.
3494
3495         * class.h class.c: Move the supertypes array initialization code into 
3496         a separate function so it can be used for dynamic types too. Also call
3497         it earlier, in mono_class_init(), since it can be used before the
3498         type is initialized.
3499
3500 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3501
3502         * Makefile.am:
3503         * assembly.c:
3504         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
3505
3506         * appdomain.c:
3507         * appdomain.h:
3508         * marshal.c:
3509         * object.c: remove warnings.
3510
3511 2003-03-13  Martin Baulig  <martin@ximian.com>
3512
3513         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
3514         (MonoDebugLexicalBlockEntry): New types.
3515
3516         * debug-mono-symfile.c
3517         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
3518
3519 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3520
3521         * process.c: ret can be any non-zero value accroding to MS doc.
3522
3523 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
3524
3525         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
3526         fixing a warning for a miss-used prototype, would have cause
3527         random memory corruption.
3528
3529 2003-03-07  Martin Baulig  <martin@ximian.com>
3530
3531         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
3532         getting really annoying ....
3533
3534 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
3535
3536         * reflection.c (fixup_method): added support for array methods.
3537
3538 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
3539
3540         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
3541         (pointed out by Michael Adams).
3542
3543 2003-03-04  Dick Porter  <dick@ximian.com>
3544
3545         * icall.c: Temporarily reverted the Double and Single ToString()
3546         change, because it broke nunit.
3547
3548 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
3549
3550         * object.h, threads.h: make include files compatible with C++
3551         (patch by Jerome Laban <jlaban@wanadoo.fr>).
3552
3553 2003-03-04  Pedro Martínez Juliá  <yoros@wanadoo.es>
3554
3555         * icall.c: Erased ToString helper functions for Double and Single.
3556         Now, that implementations ar all in managed code (Double and Single
3557         Formatters).
3558
3559 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
3560
3561         * appdomain.c: Added method for initializing the default context of
3562         a domain. Added internal call for getting the default context.
3563         * appdomain.h: Added context variable in MonoDomain struct.
3564         * domain.c: mono_domain_set also sets the default context of the domain
3565         * icall.c: Mapped internal method InternalGetDefaultContext.
3566         * object.c: mono_object_get_virtual_method returns always a remoting
3567         wrapper if the object is a transparent proxy.
3568         mono_runtime_invoke_array: when creating an object by calling the
3569         constructor, if the created object is a proxy, then the constructor should
3570         be called using the a remoting wrapper.
3571
3572 2003-03-03  Dick Porter  <dick@ximian.com>
3573
3574         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
3575         variable so it compiles on solaris.  Problem spotted by
3576         Christopher Taylor <ct@cs.clemson.edu>
3577
3578 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3579
3580         * appdomain.c:
3581         (get_info_from_assembly_name): don't leak value.
3582
3583         * icall.c:
3584         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
3585         result.
3586
3587 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
3588
3589         * assembly.c: export mono_image_load_references ().
3590         * class.c: handle function pointers. mono_class_from_name() now
3591         supports nested type names directly.
3592
3593 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
3594
3595         * reflection.h reflection.c: Encode already created dynamic methods 
3596         and fields correctly as a DEF instead of a REF.
3597
3598         * reflection.c: Get rid of the force_ref argument to 
3599         mono_image_typedef_or_ref since it was wrong in the first place.
3600
3601         * string-icalls.c: add error checking to string constructors according
3602         to the MSDN docs.
3603
3604         * reflection.c: Emit types in the order their TypeBuilders were 
3605         created. Previously, a new table index was assigned to each type before
3606         the tables were emitted. This was wrong because the signature blob
3607         might already refer to a type by its original table index.
3608
3609 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
3610
3611         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
3612         change.
3613         
3614 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3615
3616         * Makefile.am: make assemblies dir have \ instead of / on windows.
3617
3618 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
3619
3620         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
3621         iterate over the NESTEDCLASS table using a linear search since the
3622         table is not guaranteed to be sorted by the secondary key.
3623
3624         * class.c (mono_class_create_from_typedef): fixed up call to
3625         mono_metadata_nesting_typedef.
3626         
3627 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
3628
3629         * marshal.c (mono_string_to_byvalstr): clear the memory as
3630         suggested by Jerome Laban <jlaban@wanadoo.fr>
3631
3632 2003-02-26  Dick Porter  <dick@ximian.com>
3633
3634         * process.c: Cope with padding in .rsrc blocks
3635
3636 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
3637
3638         * metadata.h: reverted the filter_len change, it breaks reflection
3639         
3640 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
3641
3642         * metadata.h: added a new field to store the filter_len
3643         
3644
3645 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
3646
3647         * reflection.c: handle custom attributes for types and members
3648         created with Reflection.Emit (bug#38422).
3649
3650 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
3651
3652         * reflection.c: define RTSpecialName automatically for constructors for
3653         compatibility with MS.NET.
3654
3655         * reflection.c (mono_reflection_create_runtime_class): initialize
3656         nested_in field of dynamically created classes.
3657
3658 2003-02-22  Martin Baulig  <martin@ximian.com>
3659
3660         * debug-mono-symfile.h: Incremented version number.
3661
3662 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
3663
3664         * object.h icall.c process.c: fix warnings.
3665
3666 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
3667
3668         * appdomain.h appdomain.c:
3669         (mono_domain_try_type_resolve): split the 
3670         name_or_tb argument into a name and a tb argument.
3671         (mono_domain_has_type_resolve): new function to check whenever the
3672         application has registered a TypeResolve event handler.
3673         
3674         * icall.c reflection.h reflection.c: move the type resolve logic into
3675         mono_reflection_get_type () so it will be invoked when 
3676         Assembly::GetType () is called.
3677
3678         * reflection.c:
3679         (mono_reflection_get_type): renamed to get_type_internal.
3680         (mono_reflection_get_type): fixed type name generation so it works 
3681         for nested types too.
3682         (mono_reflection_get_type): call has_type_resolve () to avoid the 
3683         costly type name generation if there is no resolve event handler.
3684
3685 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
3686
3687         * class.c, image.c: load exported types from file references.
3688
3689 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
3690
3691         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
3692           used to cache the managed methods used to create proxies and make 
3693           remote invocation of methods.
3694         * class.h: Added in MonoVTable a flag to indicate that a class needs 
3695           to be remotely created.
3696         * object.c: Modified the method mono_class_vtable(). It now initializes 
3697           the remote flag of the vtable. Modified mono_object_new_specific(), 
3698           so now it checks the remote flag.
3699         * icall.c: Added a couple of internal methods, one for enabling instance 
3700           creation interception for a type, and one for creating objects bypassing
3701           the remote check.
3702
3703 2003-02-18  Martin Baulig  <martin@ximian.com>
3704
3705         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
3706         New interncall to get a method's metadata token.
3707
3708         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
3709         New interncall for the debugger.
3710
3711 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
3712
3713         * class.c (mono_class_setup_vtable): allocate supertype array
3714
3715 2003-02-18  Martin Baulig  <martin@ximian.com>
3716
3717         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
3718
3719 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3720
3721         * reflection.c:
3722         (assembly_name_to_aname): jump over unknown properties (i've found
3723         something like: 'type, assembly, version=xxx, custom=null, public...',
3724         so now will ignore custom=null and still get the rest of the values).
3725
3726 2003-02-17  Dick Porter  <dick@ximian.com>
3727
3728         * threads.c: Have Thread.Start() wait for a semaphore to signal
3729         that the thread has set up all its local data.  This fixes bug
3730         34323, where Abort() raced the new thread's TLS data.
3731
3732         Also removes the handle_store() call from start_wrapper, because
3733         threads are now always created suspended and there is no longer a
3734         race between the parent and child threads to store the info.
3735
3736 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
3737
3738         * image.c: explain the #- heap issue in a message, hopefully
3739         avoiding FAQs on mono-list.
3740
3741 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3742
3743         * icall.c:
3744         (GetEntryAssembly): if the domain has not invoked
3745         AppDomain.ExecuteAssembly yet, return the assembly of the default
3746         AppDomain.
3747
3748 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
3749
3750         * class.c (mono_ldtoken): make it work in dynamic assemblies.
3751
3752 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
3753
3754         * metadata.c, reflection.c: simple speedup to type hash
3755         and equals code.
3756
3757 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
3758
3759         * image.c, image.h, class.c, assembly.c: move module loading
3760         to MonoImage. When loading metadata, consider alignemnet from
3761         the start of metadata, not from the metadata address in memory.
3762
3763 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
3764
3765         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
3766         AssemblyBuilder objects. Factored out custom attribute creation into
3767         a separate function.
3768         (create_custom_attr): new function to create custom attributes.
3769
3770 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
3771
3772         * Makefile.am: Got tired of typing the full pathname to pedump.
3773         Until there is another option, am installing this.
3774
3775 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
3776
3777         * class.c (class_compute_field_layout): always set field->parent 
3778         (mono_ldtoken): use mono_defaults.fieldhandle_class;
3779
3780 2003-02-11  Dick Porter  <dick@ximian.com>
3781
3782         * threads-types.h:
3783         * monitor.c: Rewrote Monitor, making lock much faster and
3784         Pulse/Wait work as specified.  Also uses much fewer handles, and only
3785         creates them as needed.
3786
3787         * exception.c: Added SynchronizationLockException
3788
3789         * threads.c: Deleted old Monitor implementation.  The new one is
3790         in a new file.
3791
3792 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
3793
3794         * class.c: handled TypedReference type code. Set the correct size for
3795         class data. Setup interface_offsets for interface classes, too.
3796
3797 2003-02-09  Martin Baulig  <martin@ximian.com>
3798
3799         * debug-mono-symfile.h: Reflect latest symbol writer changes.
3800
3801 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
3802
3803         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
3804         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
3805         * object.c: fixed mono_object_get_virtual_method () for interfaces.
3806         * verify.c: check for code that runs after the end of the method.
3807
3808 2003-02-08  Pedro Martínez Juliá  <yoros@wanadoo.es>
3809
3810         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
3811         "System.Math::Round2".
3812         * sysmath.h: Added Floor, Round and Round2 definitions.
3813         * sysmath.c: Modified certain functions that were not 100% compliant
3814         with MS.NET (math precision) and added the implementation of Floor,
3815         Round and Round2.
3816
3817 2003-02-07  Martin Baulig  <martin@ximian.com>
3818
3819         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
3820
3821 2003-02-07  Martin Baulig  <martin@ximian.com>
3822
3823         * debug-mono-symfile.c: Reflected latest symwriter changes.
3824         (mono_debug_create_mono_symbol_file): Removed.
3825         (mono_debug_open_mono_symbol_file): Take an argument which
3826         specifies whether to create a dynamic symbol file.
3827
3828 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
3829
3830         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
3831
3832 2003-02-05  Martin Baulig  <martin@ximian.com>
3833
3834         * reflection.c (mono_image_build_metadata): Make this public,
3835         protect it against being called multiple times, don't create
3836         resources and don't build the compressed metadata here.
3837         (mono_image_create_pefile): Do this here.
3838
3839         * icall.c
3840         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
3841
3842 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3843
3844         * socket-io.c: fixed bug #36322.
3845
3846 2003-02-06  Piers Haken <piersh@friskit.com>
3847
3848         * appdomain.[ch]:
3849         * class.h:
3850         * debug-mono-symfile.c:
3851         * icall.c:
3852         * loader.c:
3853         * mono-config.c:
3854         * monosn.c:
3855         * reflection.c:
3856         * socket-io.c: warning cleanups
3857
3858 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
3859
3860         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
3861         function. works like remoting invoke, but does a check for the Proxy first.
3862
3863 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
3864
3865         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
3866
3867 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
3868
3869         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
3870         array of pointers.
3871         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
3872         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
3873
3874         * object.c (mono_store_remote_field_new): used by the new jit
3875         instead of mono_store_remote_field
3876         (mono_load_remote_field_new): used by the new jit
3877         instead of mono_load_remote_field
3878
3879 2003-02-05  Patrik Torstensson
3880
3881         * appdomain.c: changed unload to take the domain id instead
3882         of domain
3883         
3884         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
3885
3886
3887 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3888
3889         * appdomain.c: don't look for assemblies in ApplicationBase if
3890         PrivateBinPathProbe is set.
3891
3892 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3893
3894         * object.c: make the first argument in main_args contain the absolute
3895         path to the assembly. Fixes bug #37511.
3896
3897 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3898
3899         * icall.c: get correct UTC offset for countries not using daylight
3900         time saving. Fixes bug #30030.
3901
3902 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3903
3904         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
3905         and 1 are the family).
3906
3907 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
3908
3909         * icall.c (ves_icall_InternalExecute): removed wrong assertion
3910
3911         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
3912
3913 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
3914
3915         * reflection.c: added support for SignatureHelper tokens, which is
3916         needed by the Calli opcode.
3917
3918         * reflection.h: track changes to SignatureHelper class.
3919
3920         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
3921
3922 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3923
3924         * appdomain.c: fixed loading assemblies from PrivateBinPath.
3925
3926 2003-02-03  Patrik Torstensson
3927         * appdomain.[c|h], domain.c : 
3928          - Added support for getting a domain via domain id
3929          - Support for setting and getting domain from System.AppDomain 
3930            (used in cross appdomain channel)
3931          - Added support for get/set for a MonoAppContext on a thread 
3932            (Context class in System.Runtime.Remoting.Contexts),
3933          - Removed hack in Get/SetData and ExecuteAssembly.
3934         
3935         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
3936         the managed world to get control when a proxy is created.
3937
3938         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
3939         
3940 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
3941
3942         * icall.c
3943         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
3944         Populate the codebase field as well.
3945
3946 2003-02-02  Martin Baulig  <martin@ximian.com>
3947
3948         * debug-mono-symfile.c
3949         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
3950         (mono_debug_symfile_add_method): Allow interncalls.
3951
3952 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3953
3954         * icall.c: throw parse exception if strtod fails or the string is empty.
3955
3956 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
3957
3958         * marshal.c: handle object type separately from defined
3959         class types.
3960
3961 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
3962
3963         * marshal.c: handle NATIVE_LPSTR for strings when it's
3964         explicitly specified.
3965
3966 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
3967
3968         * reflection.c, reflection.h, icall.c: setup the reflection
3969         handle cache for ModuleBuilders and AssemblyBuilders.
3970
3971 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
3972
3973         * reflection.c (reflection_methodbuilder_to_mono_method): set
3974         pinvoke flag
3975
3976 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3977
3978         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
3979
3980 2003-01-29  Dick Porter  <dick@ximian.com>
3981
3982         * threads.c: No need for the fake_thread kludge now that Thread
3983         doesn't run a class constructor
3984         
3985 2003-01-29  Dick Porter  <dick@ximian.com>
3986
3987         * threads.c: Use g_direct_hash instead of the rather bogus
3988         g_int_hash
3989
3990 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
3991
3992         * marshal.c (mono_marshal_get_native_wrapper): add check for null
3993         (fix pinvoke12.exe)
3994         (mono_marshal_get_struct_to_ptr): generate valid IL code
3995         (mono_marshal_get_ptr_to_struct): generate valid IL code
3996         (*): correctly set sig->pinvoke, we need to memdup the signature
3997         to do that
3998
3999 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
4000
4001         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
4002         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
4003
4004 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
4005
4006         * profiler.c: provide more callers information.
4007
4008 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
4009
4010         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
4011
4012         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
4013
4014         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
4015
4016 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
4017
4018         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
4019         exception instead of going into an infinite loop on dates which it 
4020         can't yet handle.
4021
4022         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
4023         out-of-range exception if needed.
4024
4025         * class.c (mono_class_setup_vtable): allow a virtual method to provide
4026         an implementation for an interface method and to override an inherited
4027         method at the same time. 
4028         Imagine a scenario when a virtual method is used to override a
4029         virtual abstract method in a parent class, and this same method 
4030         provides an implementation for an method inherited from an interface. 
4031         In this case, the interface resolution code will set im->slot, which 
4032         means that the virtual method override pass will skip this method 
4033         which means a pointer to the abstract method inherited from the parent
4034         will remain in the vtable of this non-abstract class.
4035
4036         * class.c: (mono_class_setup_vtable): continue search for a real 
4037         method if only an abstract method is found.     
4038
4039 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
4040
4041         * reflection.c: add size to encoding for ByValStr and ByValArray
4042         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
4043
4044 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
4045
4046         * class.c (mono_class_setup_vtable): pass the override info as an
4047         argument.
4048
4049         * class.c (mono_class_setup_vtable): set the slot of overriding methods
4050         correctly.
4051         
4052         * reflection.c (ensure_runtime_vtable); add support for method 
4053         overrides.
4054         
4055 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
4056
4057         * reflection.c (resolution_scope_from_image): Hack to work to work with
4058         dynamic assemblies.
4059
4060         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
4061         added a 'force_ref' argument to force this function to allways return 
4062         a TypeRef. This is needed by mono_image_get_memberref_token ().
4063         
4064 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
4065
4066         * reflection.c (mono_image_get_type_info): interfaces really don't have
4067         a parent.
4068
4069         * reflection.c (mono_image_basic_init): fill out missing fields of
4070         image structure.
4071
4072         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
4073         dynamic assemblies. This is required so dynamic assemblies show up in
4074         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
4075         Type::GetType() etc. This is consistent with MS behaviour.
4076
4077         * image.c image.h reflection.c: add newly created classes to the name 
4078         cache so mono_class_get () will find them.      
4079
4080 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
4081
4082         First part of changes to get IKVM.NET running under mono.
4083         
4084         * appdomain.h, appdomain.c: added new function 
4085         mono_domain_try_type_resolve() which will emit TypeResolve events. 
4086         This function will call AppDomain::DoTypeResolve to do the actual work.
4087
4088         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
4089         moved existing code dealing with dynamic tokens to a new function 
4090         called mono_reflection_lookup_dynamic_token (). This function will 
4091         raise TypeResolve events when appropriate. Since reflection.c is not 
4092         part of libmetadata, a new hook function called 
4093         mono_lookup_dynamic_token() is added to class.c which will call this.
4094
4095         * assembly.h assembly.c: make the invoke_load_hook function public,
4096         so it can be called for dynamic assemblies.
4097
4098         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
4099
4100         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
4101         type isn't found.
4102
4103         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
4104         MonoGHashTable, since it contains pointers to objects which the GC 
4105         needs to track.
4106
4107         * assembly.c (search_loaded): remove unused variable.
4108         
4109 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
4110
4111         * object.c: fixed issue exposed by gcc-generated IL programs
4112         that use RVA data for pointers.
4113
4114 2003-01-25  Martin Baulig  <martin@ximian.com>
4115
4116         * threads.c (start_wrapper): Moved the initialization of
4117         `start_func' above the mono_new_thread_init() call to which we
4118         pass it as argument.
4119
4120 2003-01-24  Martin Baulig  <martin@ximian.com>
4121
4122         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
4123         the MonoThread pointer.
4124
4125 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
4126
4127         * icall.c: Rename `PowImpl' to Pow.
4128
4129 2003-01-23  Dick Porter  <dick@ximian.com>
4130
4131         * threads.c (start_wrapper): Create a Thread object if needed, so
4132         the Main() thread can do the class initialisation in a subthread
4133         that has been set up to allow managed code execution.
4134
4135         Pass the thread ID instead of the MonoThread pointer to the thread
4136         start and attach callbacks.  This change is required, because the
4137         jit thread start callback must be called _before_ the Thread
4138         object can be created.
4139         
4140         (mono_thread_init): Removed much object creation code that is no
4141         longer needed.  No managed code is called from here now.
4142
4143         * object.c (mono_runtime_exec_managed_code): Create a subthread
4144         for Main, and call back to the runtime to use it.
4145         Set the exit code when Main exits.
4146
4147         * gc.c: Make sure domain finalisation happens in a subthread.
4148         Re-enable threaded GC, fixing bug 31333 (again).
4149
4150         * environment.c: System.Environment internall calls (so far just
4151         ExitCode is here, the others are still in icall.c)
4152
4153         * appdomain.c (mono_runtime_cleanup): All threads running managed
4154         code should have finished before mono_runtime_cleanup() is
4155         reached, so no need to clean up threads.
4156
4157 2003-01-22  Martin Baulig  <martin@ximian.com>
4158
4159         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
4160         `gpointer func' arguments.      
4161         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
4162         but added `MonoThread *thread' argument.
4163         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
4164
4165         * threads.c (mono_new_thread_init): Added `gpointer func' argument
4166         and pass it to the mono_thread_start_cb callback.
4167         (mono_install_thread_callbacks): New public function to install a
4168         set of callbacks which are set by the debugger.
4169         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
4170
4171 2003-01-22  Martin Baulig  <martin@ximian.com>
4172
4173         * Makefile.am: Install debug-mono-symfile.h.
4174
4175 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
4176
4177         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
4178
4179 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
4180
4181         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
4182         * class.c (mono_ptr_class_get): correctly set access levels of pointers
4183         (mono_array_class_get): correctly set access levels of arrays
4184
4185 2003-01-20      Patrik Torstensson
4186         * image.h (MonoAssemblyName): changed major, minor, build, revision
4187         from signed to unsigned.
4188
4189 2003-01-20  sean kasun <skasun@azstarnet.com>
4190
4191         * reflection.c (load_cattr_value): Now this handles
4192         MONO_TYPE_SZARRAY.  Fixes bug #35629
4193
4194 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
4195
4196         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
4197         integer value
4198
4199 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4200
4201         * decimal.c: fixed bug #26056.
4202
4203 2003-01-17  Martin Baulig  <martin@ximian.com>
4204
4205         * gc.c: Raise an ExecutionEngineException instead of using g_error().
4206
4207 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4208
4209         * exception.[ch]:
4210         (mono_get_exception_type_initialization): new function.
4211
4212         * object.c: throw a TypeInitializationException when an exception is
4213         thrown invoking the class constructor.
4214
4215 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4216
4217         * reflection.c: fixed attribute reading.
4218
4219 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4220
4221         * icall.c:
4222         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
4223         provided, look for the type in the calling assembly and then in
4224         mscorlib; if the assembly name is provided, only try that one.
4225
4226 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
4227
4228         * object.c: register the vtable before there is a chance it's
4229         queried again recursively.
4230
4231 2003-01-13  Duncan Mak  <duncan@ximian.com>
4232
4233         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
4234         gc-internal.h. 
4235         
4236 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
4237
4238         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
4239
4240 2003-01-11  Martin Baulig  <martin@ximian.com>
4241
4242         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
4243         this to 20 for the release.
4244
4245 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
4246
4247         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
4248
4249         * loader.c (mono_method_get_marshal_info): bug fix
4250
4251         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
4252         structures with explicit layout
4253
4254 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
4255
4256         * profiler.c: made the output more readable (and sorted). 
4257         Added caller information for the allocation profiler.
4258
4259 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
4260
4261         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
4262
4263 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4264
4265         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
4266         to get value types.
4267         
4268 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
4269
4270         * object.c, profiler.h, profiler.c, profiler-private.h:
4271         Added object allocation profiler.
4272
4273 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
4274
4275         * reflection.h, reflection.c: handle global methods.
4276         Compress blob entries.
4277
4278 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
4279
4280         * marshal.c: fix compilation.
4281
4282 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
4283
4284         * loader.c (mono_method_get_marshal_info): impl.
4285
4286         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
4287
4288 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4289
4290         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
4291         for reference types.
4292
4293 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
4294
4295         * loader.c: fixed off by one error in loaded parameter names.
4296
4297 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
4298
4299         * marshal.c (mono_marshal_get_icall_wrapper): like
4300         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
4301         instead of a MonoMethod.
4302
4303 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4304
4305         * decimal.c: fixed bug #36537.
4306
4307 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
4308
4309         * marshal.c: throw a missing method exception if a
4310         P/Invoke method is not found.
4311
4312 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
4313
4314         * icall.c: allow a null this for constructors.
4315
4316 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
4317
4318         * icall.c: raise the proper exceptions if the arguments to the
4319         internal Invoke are incorrect.
4320
4321 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
4322
4323         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
4324
4325 2003-01-03  Martin Baulig  <martin@ximian.com>
4326
4327         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
4328
4329 2002-12-31  Martin Baulig  <martin@ximian.com>
4330
4331         * debug-mono-symfile.c: Completely rewrote the type section.
4332         Instead of using individual malloc()ed fields, we use one big
4333         continuous memory area and offsets into this area.
4334         See the comments in the source code for details.
4335
4336 2002-12-30  Martin Baulig  <martin@ximian.com>
4337
4338         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
4339
4340 2002-12-30  Martin Baulig  <martin@ximian.com>
4341
4342         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
4343         line number table in this data blob instead of using an external
4344         pointer.
4345
4346 2002-12-28  Martin Baulig  <martin@ximian.com>
4347
4348         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
4349
4350 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
4351
4352         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
4353         as a boxed return type.
4354
4355 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
4356
4357         * appdomain.c
4358         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
4359         g_build_filename to properly get separators on the filename created.
4360
4361         * object.h: Small change, introduce MonoMarshalByRefObject to
4362         track the layout of that structure in the C# universe as we make
4363         changes there.
4364
4365 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
4366
4367         * object.c: removed assert to allow static fields on interfaces.
4368         * loader.c: a TypeSpec may be used for any type, not just arrays.
4369
4370 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
4371
4372         * class.c, class.h: added mono_class_array_element_size ().
4373         Ignore static methods in interfaces.
4374
4375 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4376
4377         * threads.c: fixed the build under cygwin.
4378
4379 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
4380
4381         * reflection.c: handle nullref constants. Allocate keys for
4382         reflection handles with the GC.
4383
4384 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
4385
4386         * threads.c, threads.h: added mono_thread_get_abort_signal()
4387         to get a suitable signal for thread abort.
4388
4389 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
4390
4391         * metadata.c: fix handling of ExportedType table.
4392
4393 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4394
4395         * icall.c: added WriteWindowsDebugString internal call.
4396
4397 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4398
4399         * reflection.h: added fields to match C# implementation.
4400
4401 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4402
4403         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
4404
4405 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
4406
4407         * gc.h, gc-internal.h: Rename header for GC internal calls to
4408         gc-internal.h from gc.h as to not clash with Boehm GC having its
4409         header installed as <gc.h> in outside include paths.
4410         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
4411         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
4412
4413 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4414
4415         * icall.c: assign minor, build and revision in FillName.
4416
4417 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
4418
4419         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
4420         Added support for running code generated by Reflection.Emit.
4421
4422 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4423
4424         * appdomain.c: check for NULL argument in LoadFrom.
4425
4426 2002-12-10  Dick Porter  <dick@ximian.com>
4427
4428         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
4429
4430 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4431
4432         * appdomain.c: fix buglet when building exe file name.  Handle full
4433         assembly name (needed after latest changes to AssemblyName).
4434         * image.c:
4435         (mono_image_close): free some hashtables.
4436
4437 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
4438
4439         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
4440         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
4441         on some systems (redhat 7.3) 
4442
4443 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
4444
4445         * threads.c: delete the critical section of a sync block,
4446         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
4447
4448 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
4449
4450         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
4451
4452 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4453
4454         * appdomain.[ch]: handle the assembly preload event to try loading the
4455         assemblies using the paths we have in the current domain.
4456
4457         * assembly.[ch]: created an assembly preload hook that is called to try
4458         loading the assembly by other means that the ones provided here.
4459
4460         * domain.c: initialize the domain search path.
4461
4462         From now on, assemblies (TODO: except corlib and System) are loaded
4463         according to these rules when using mono_assembly_load ():
4464
4465                 1. It tries to load the assembly from the ApplicationBase
4466                 of the current domain appending .dll and .exe (TODO: have to
4467                 try loading from name/name.dll and name/name.exe).
4468
4469                 2. It tries the search path specified in PrivateBinPath for the
4470                 current domain (if any).
4471
4472                 3. Previous behavior.
4473
4474 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
4475
4476         * icall.c: implemented GetInterfaceMap() related icall.
4477         * domain.c, loader.h: load MethodInfo in mono_defaults.
4478
4479 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
4480
4481         * gc.c: disable the finalizer thread for now, untill all the issues
4482         with it are resolved.
4483
4484 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
4485
4486         * string-icalls.c: handle embedded nulls in string ctor when the
4487         length is specified.
4488
4489 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
4490
4491         * class.c: look for explicit interface implementation in parent
4492         classes, too.
4493
4494 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
4495
4496         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
4497
4498 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
4499
4500         * gc.c: protect handles with a critical section.
4501
4502 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4503
4504         * icall.c:
4505         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
4506         parameters. If no assembly specified, try getting the type from all
4507         the assemblies in the current domain, else, load the assembly and get
4508         the type from it.
4509
4510 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4511
4512         * marshal.c: applied patch from Aleksey Demakov that fixes
4513         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
4514
4515 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4516
4517         * icall.c: fixed get_location.
4518
4519 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
4520
4521         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
4522         declarations to make it work with older gcc. 
4523
4524         * loader.c (mono_get_method): set signature->pinvoke for native calls
4525
4526 2002-11-20  Dick Porter  <dick@ximian.com>
4527
4528         * threads.c (mono_thread_init): Set the main thread's handle
4529
4530 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
4531
4532         * gc.c: allow compilation without GC support. Changed to match the
4533         mono coding style.
4534
4535 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
4536
4537         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
4538
4539 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
4540
4541         * reflection.c: set a public key token on the core assemblies.
4542
4543 2002-11-18  Dick Porter  <dick@ximian.com>
4544
4545         * threads.c: Split out some thread initialisation so that other
4546         files can set the start callback function.
4547
4548         * gc.c: Run finalisers in a separate thread, to avoid stack
4549         overflow.  Fixes bug 31333.
4550
4551         * appdomain.c: Set up GC finalisation thread.
4552
4553         * reflection.c: 
4554         * object.c: 
4555         * domain.c: Use gc.h macros for GC_malloc
4556         
4557 2002-11-15  Dick Porter  <dick@ximian.com>
4558
4559         * threadpool.c: 
4560         * threads.c:
4561         * appdomain.c: Removed mono_runtime_init_with_attach(),
4562         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
4563         merging the extra parameter with the existing function.  Removed
4564         unneeded code in mono_thread_attach().
4565
4566 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
4567
4568         * image.c (mono_image_loaded_by_guid): a method to get loaded
4569         images by guid. 
4570         (load_metadata_ptrs): we store the guid as string.
4571
4572 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
4573
4574         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
4575
4576         * metadata.c (mono_guid_to_string): imported method form Zoltan
4577         Varga (slightly modified)
4578
4579         * assembly.c (mono_assembly_open): load precompiled code
4580
4581         * loader.h (MonoMethod): we store the method token for use in the
4582         aot compiler. 
4583
4584 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4585
4586         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
4587         the hook function called when an assembly is loaded.
4588         
4589         * domain.c: Modified file.
4590         (mono_domain_assembly_load): removed hash table insertion of assemblies.
4591
4592         Fixes bug #33196.
4593
4594 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
4595
4596         * reflection.c: Map PEFileKind to the value expected by the WinNT
4597         image loader. 
4598
4599 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4600
4601         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
4602         Read until the buffer is filled completely.
4603
4604 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4605
4606         * icall.c: implemented MonoType.InternalGetEvent ().
4607
4608 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4609
4610         * appdomain.c: implemented InitAppDomainSetup. Delayed
4611         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
4612         the entry_assembly.
4613
4614         * assembly.c: base_dir is now an absolute path ending with
4615         G_DIR_SEPARATOR.
4616
4617         * icall.c: modified get_location according to the above changes.
4618
4619         * object.c: init AppDomain.SetupInformation for the default domain after
4620         we have the entry assembly.
4621
4622         * domain.c: when unloading a domain, setup = NULL.
4623
4624 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
4625
4626         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
4627
4628 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
4629
4630         * object.h, object.c: introduced mono_object_get_virtual_method ()
4631         to lookup the method invoked on an object when a callvirt is done on
4632         a method.
4633         * icall.c: make MethodInfo::Invoke() always do a virtual call.
4634
4635 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4636
4637         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
4638         current domain when loaded an assembly and failed to load it.
4639
4640         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
4641
4642 2002-10-31  Dick Porter  <dick@ximian.com>
4643
4644         * icall.c: 
4645         * file-io.h: 
4646         * file-io.c: Return the error status in a parameter, as the
4647         GetLastError() value has long since been blown away if we try and
4648         look it up in a subsequent internal call invocation.  Delete the
4649         GetLastError() internal call, because it's useless.
4650
4651 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
4652
4653         * class.[ch]: added cast_class to fix bug 29517
4654
4655 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
4656
4657         * marshal.c: create valid IL code in the filter clause:
4658         the new JIT is less forgiving:-)
4659
4660 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4661
4662         * icall.c: removed get_property internal call.
4663
4664 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
4665
4666         * appdomain.h domain.c: Added an ID to appdomains.
4667         
4668         * threads.c threads.h icall.c: Implement icall
4669         Thread:GetDomainID(), and remove unused icall 
4670         CurrentThreadDomain_internal.
4671
4672 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4673
4674         * icall.c: Don't recurse through the base types in GetConstructor.
4675         Fixes bug #32063. 
4676
4677 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
4678
4679         * mempool.h, mempool.c: added mono_mempool_empty() and
4680         mono_mempool_stats().
4681
4682 2002-10-23  Dick Porter  <dick@ximian.com>
4683
4684         * file-io.c: 
4685         * file-io.h: 
4686         * icall.c: Added MonoIO.GetFileType internal call
4687
4688 2002-10-17  Dick Porter  <dick@ximian.com>
4689
4690         * appdomain.c (mono_runtime_cleanup): Don't signal the async
4691         delegate semaphore before waiting for all threads to finish,
4692         because new threads can also call async delegates.  Fixes bug
4693         32004.
4694
4695         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
4696         of 3 seconds, in case another async job is queued.  (This part is
4697         needed because the bug fix reintroduced the 3s exit lag.)  This
4698         makes the mono_runtime_shutdown flag superfluous.
4699
4700 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
4701
4702         * reflection.c: include ehader size in method section headers.
4703         Really check for suplicated modules entries.
4704
4705 2002-10-17  Martin Baulig  <martin@gnome.org>
4706
4707         * debug-mono-symfile.c: Added back support for locals.
4708
4709 2002-10-14  Martin Baulig  <martin@gnome.org>
4710
4711         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
4712         MONO_TYPE_VOID.
4713
4714 2002-10-14  Martin Baulig  <martin@gnome.org>
4715
4716         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
4717         mono_class_get() instead of looking in the class cache. 
4718
4719 2002-10-13  Martin Baulig  <martin@gnome.org>
4720
4721         * debug-mono-symfile.c: Set version number to 28, include the
4722         signature in method names.
4723
4724 2002-10-13  Martin Baulig  <martin@gnome.org>
4725
4726         * debug-mono-symfile.h: Set version number to 27.
4727
4728 2002-10-11  Martin Baulig  <martin@gnome.org>
4729
4730         * gc.c: Don't register/unregister NULL pointers as disappearing links.
4731
4732 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
4733
4734         * metadata.c, metadata.h: added helper function to allocate signatures.
4735
4736 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4737
4738         * icall.c: added internal call to get the location of machine.config.
4739
4740 2002-10-08  Martin Baulig  <martin@gnome.org>
4741
4742         * debug-mono-symfile.c: Ignore classes with a pending init for the
4743         moment.
4744
4745 2002-10-03  Dick Porter  <dick@ximian.com>
4746
4747         * threads.c: Freebsd pthread_t is a pointer
4748
4749 2002-10-03  Dick Porter  <dick@ximian.com>
4750
4751         * socket-io.c: Implemented GetHostName_internal
4752
4753 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4754
4755         * mono-config.c:
4756         (mono_config_parse_file): don't leak the text.
4757
4758 2002-10-02  Martin Baulig  <martin@gnome.org>
4759
4760         * debug-mono-symfile.c: Added support for methods.
4761
4762 2002-10-01  Martin Baulig  <martin@gnome.org>
4763
4764         * debug-mono-symfile.c: Don't emit methods and line numbers for
4765         the dynamic symbol file, just write the type table.  We can easily
4766         have an external helper program which creates a symbol file for an
4767         IL file.        
4768
4769 2002-10-01  Dick Porter  <dick@ximian.com>
4770
4771         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
4772         Only add the handle to the cleanup array when we're about to
4773         launch the thread.  Bug 31425 deadlocked when the test was run on
4774         mono under w32.
4775
4776 2002-10-01  Martin Baulig  <martin@gnome.org>
4777
4778         * debug-mono-symfile.c: Added support for properties.
4779
4780 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
4781
4782         * reflection.c: unaligned store fix from Mark Crichton
4783         <crichton@gimp.org>.
4784
4785 2002-09-27  Martin Baulig  <martin@gnome.org>
4786
4787         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
4788         New interncall.
4789
4790 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
4791
4792         * assembly.h, assembly.c: use a sane API to hook into the assembly
4793         loading process instead of a useless special-purpouse hack
4794         (ngen needs a hook, too, for example).
4795
4796 2002-09-27  Dick Porter  <dick@ximian.com>
4797
4798         * threads.c (mono_thread_init): Call GetCurrentProcess() so
4799         io-layer can set up some process handle info.  Not needed on w32,
4800         but doesn't hurt either.
4801
4802         * process.c: Pass the program name in the second parameter to
4803         CreateProcess, so the path is searched.  Include the working
4804         directory. Implemented process name, process enumeration, and some
4805         process detail internal calls.
4806         
4807         * icall.c: Added internal calls for process lookup, and some
4808         process details
4809
4810 2002-09-26  Martin Baulig  <martin@gnome.org>
4811
4812         * assembly.c (mono_install_open_assembly_hook): New global
4813         function to install a function to be invoked each time a new
4814         assembly is loaded.
4815         (mono_assembly_open): Run this callback function if set.
4816
4817         * debug-mono-symfile.c: Put back line numbers for the dynamic
4818         symbol file and also record the .il file as source file.  This
4819         allows us to install the temporary symbol file as `file.dbg' just
4820         like a compiler-generated one.
4821
4822 2002-09-26  Nick Zigarovich <nick@chemlab.org>
4823
4824         * Corrected typo in gc.c (BOHEM vs BOEHM).
4825
4826 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4827
4828         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
4829         GetProperties. Also avoid calling g_slist_length in GetProperties and
4830         GetMethods.
4831
4832 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
4833
4834         * reflection.c: avoid unaligned stores (bug spotted by
4835         Mark Crichton  <crichton@gimp.org>).
4836
4837 2002-09-25  Martin Baulig  <martin@gnome.org>
4838
4839         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
4840         instead of guint64 for addresses and added prologue/epilogue info.
4841
4842 2002-09-25  Martin Baulig  <martin@gnome.org>
4843
4844         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
4845         store line number info.  For the dynamic symbol file, we only need
4846         to provide the JIT generated dynamic line number info for the dynamic
4847         symbol file.
4848
4849 2002-09-25  Martin Baulig  <martin@gnome.org>
4850
4851         * debug-mono-symfile.h: Incremented version number.
4852
4853 2002-09-24  Martin Baulig  <martin@gnome.org>
4854
4855         * class.c (mono_debugger_class_init_func): New global function
4856         pointer variable.
4857         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
4858         call it.
4859
4860         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
4861         function.  This is called via the mono_debugger_class_init_func
4862         hook to add all types to the dynamic type table.
4863         (ves_icall_MonoDebugger_GetType): New interncall to get a class
4864         from its metadata token.
4865
4866         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
4867         New interncall for the debugger.
4868
4869 2002-09-24  Nick Drochak <ndrochak@gol.com>
4870
4871         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
4872         before using it in case it is null.
4873         
4874 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
4875
4876         * metadata.c: allow custom modifiers in local var signatures
4877         (bug spotted by Zoltan Varga).
4878
4879 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
4880
4881         * class.c: deal with the <Module> class that may have a NULL vtable.
4882         Eliminate warnings.
4883
4884 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
4885
4886         * image.c, image.h: more strong name helpers.
4887         * monosn.c: more work: convert pem keys to cryptoapi format.
4888
4889 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
4890
4891         * string-icalls.c: speedup IndexOf.
4892
4893 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
4894
4895         * icall.c: updates from Zoltan.2.Varga@nokia.com.
4896
4897 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
4898
4899         * icall.c: cleanup: use mono_object_domain ().
4900
4901 2002-09-23  Martin Baulig  <martin@gnome.org>
4902
4903         * debug-mono-symfile.c: Improved type support.
4904
4905 2002-09-22  Martin Baulig  <martin@gnome.org>
4906
4907         * debug-mono-symfile.c: Added support for reference types and strings.
4908
4909 2002-09-22  Martin Baulig  <martin@gnome.org>
4910
4911         * debug-mono-symfile.c: Started to work on the type table.
4912
4913 2002-09-21  Martin Baulig  <martin@gnome.org>
4914
4915         * debug-mono-symfile.c: Largely reworked the symbol table format.
4916         The symbol table is now incrementally updated each time a new
4917         method is added.  We're now also using our own magic and version
4918         so that you don't need to recompile all your classes if the
4919         dynamic table changes.
4920         (mono_debug_update_mono_symbol_file): Removed.
4921         (mono_debug_symfile_add_method): New function to add a method.
4922
4923 2002-09-21  Martin Baulig  <martin@gnome.org>
4924
4925         * icall.c
4926         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
4927         New interncall.
4928
4929         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
4930         New interncall to get a method from its metadata token.
4931
4932 2002-09-21  Martin Baulig  <martin@gnome.org>
4933
4934         * debug-mono-symfile.c: Create type table.
4935
4936 2002-09-20  Martin Baulig  <martin@gnome.org>
4937
4938         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
4939
4940 2002-09-20  Martin Baulig  <martin@gnome.org>
4941
4942         * debug-mono-symfile.c: Provide information about params and locals.
4943
4944 2002-09-20  Martin Baulig  <martin@gnome.org>
4945
4946         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
4947         New interncall.
4948
4949         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
4950         interncall to get a method from its metadata token.
4951
4952 2002-09-20  Martin Baulig  <martin@gnome.org>
4953
4954         * debug-mono-symfile.c: Added a few checks for method->header
4955         being non-NULL.  This should never happen, but for the moment
4956         let's use a g_warning() rather than a g_assert().
4957
4958 2002-09-19  Mark Crichton  <crichton@gimp.org>
4959
4960         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
4961         even if support for it isn't present.  Added an #ifdef to fix this.
4962
4963         * socket-io.c: Added checks back for Solaris support.
4964
4965 2002-09-19  Martin Baulig  <martin@gnome.org>
4966
4967         * debug-mono-symfile.c (read_string, write_string): Reflect latest
4968         changes in the symbol file format.
4969
4970 2002-09-18  Martin Baulig  <martin@gnome.org>
4971
4972         * debug-mono-symfile.c: Set version number to 21.
4973
4974 2002-09-18  Dick Porter  <dick@ximian.com>
4975
4976         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
4977         on netbsd.  Fixes bug 30051.
4978
4979 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4980
4981         * reflection.c:
4982         (set_version_from_string): little fix.
4983
4984 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
4985
4986         * monosn.c, Makefile.am: added strong name utility.
4987         * reflection.h, reflection.c: implemented delayed signing,
4988         locale, version and hash id assembly attributes.
4989
4990 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
4991
4992         * loader.c, metadata.c: load param attributes in signatures.
4993
4994 2002-09-16  Martin Baulig  <martin@gnome.org>
4995
4996         * debug-mono-symfile.c: Added string table with all method names.
4997
4998 2002-09-14  Martin Baulig  <martin@gnome.org>
4999
5000         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
5001         fast method lookup.
5002
5003 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
5004
5005         * reflection.c: record the public key token of referenced assemblies.
5006
5007 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
5008
5009         * image.c, image.h: added functions to get the strong name and the
5010         public key of an assembly.
5011         * pedump.c: use them.
5012
5013 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
5014
5015         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
5016
5017 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
5018
5019         * marshal.c (mono_marshal_get_managed_wrapper): Added
5020         MONO_TYPE_BOOLEAN 
5021
5022 2002-09-11  Martin Baulig  <martin@gnome.org>
5023
5024         * gc.c: Call GC_unregister_disappearing_link() on all links when
5025         finalizing them, this is necessary to aviod a crash in boehm's
5026         finalize handler.
5027
5028 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
5029
5030         * gc.c: handle GetTarget for finalized objects spotted and fixed by
5031         nick@chemlab.org.
5032
5033 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
5034
5035         * icall.c: implemented MonoType::Module.
5036         * reflection.c, reflection.h: mono_module_get_object () from
5037         Tomi Pakarinen <tomi.pakarinen@welho.com>.
5038
5039 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
5040
5041         * icall.c: ignore overridden methods in GetMethods ().
5042         Fix for FieldInfo::SetValue().
5043         * object.c: handle float/double in runtime invoke.
5044
5045 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
5046
5047         * object.c: allow a constructor to be called again on an object.
5048
5049 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
5050
5051         * class.h, class.c: move field layout code to it's own function and
5052         export it. Get an interface id earlier. Move fields in MonoClass
5053         so they are more cache friendly and align the bitfields.
5054         * loader.c: temporary handle get_param_names() for a runtime method.
5055         * reflection.c, reflection.h: more code to handle runtime creation of
5056         types.
5057
5058 2002-09-09  Martin Baulig  <martin@gnome.org>
5059
5060         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
5061         signature with the pinvoke field being set for the actual call.
5062
5063 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5064
5065         * icall.c: removed some unused icalls. Start of map of glib charsets
5066         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
5067
5068 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
5069
5070         * debug-helpers.c: break infinite loop (found and fixed by
5071         Holger Arnold <harnold@gmx.de>).
5072
5073 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
5074
5075         * icall.c: target may be null in create_delegate.
5076
5077 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
5078
5079         * marshal.c: handle a boolean return type.
5080
5081 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
5082
5083         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
5084
5085 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
5086
5087         * gc.c: fix weakreferences.
5088
5089 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
5090
5091         * icall.c: added icall to get default codepage.
5092
5093 2002-09-03  Dick Porter  <dick@ximian.com>
5094
5095         * threads.h: 
5096         * threads.c: Use MonoThread instead of MonoObject where
5097         apropriate.
5098
5099         Store running thread objects in a hash table, so that we have all
5100         the info to hand when waiting for them to finish
5101         (means we don't need OpenThread() any more, so mingw builds should
5102         be fully functional again.)
5103
5104         * verify.c:
5105         * object.h: Added thread ID to MonoThread
5106
5107 2002-09-03  Martin Baulig  <martin@gnome.org>
5108
5109         * icall.c (System.Reflection.Assembly::get_location): New interncall.
5110
5111 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5112
5113         * icall.c: fixed leak in get_temp_path. Thanks lupus.
5114
5115 2002-09-03  Martin Baulig  <martin@gnome.org>
5116
5117         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
5118         argument to store the end address of the disassembled instruction.
5119
5120         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
5121         here from debug-symfile.h.
5122         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
5123         JIT into this struct.
5124         (MonoSymbolFile): Added `char *image_file' field.
5125         (MonoDebugGetMethodFunc): Removed.
5126         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
5127         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
5128         (mono_debug_find_method): New method.
5129
5130         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
5131         create a full symbol file.
5132         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
5133         and static symbol files.
5134         (mono_debug_find_method): The symbol file keeps an internal method hash,
5135         call this to get a MonoDebugMethodInfo from a MonoMethod.
5136
5137         * debug-symfile.[ch]: Removed.
5138
5139 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
5140
5141         * image.c (do_mono_image_open): Remove linker version check.
5142
5143 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
5144
5145         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
5146         wrappers for instance methods.
5147         
5148 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5149
5150         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
5151
5152 2002-08-28  Dick Porter  <dick@ximian.com>
5153
5154         * Makefile.am: Export HOST_CC for w32 builds
5155
5156 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
5157
5158         * file-io.c process.c: MonoString are null terminated, no
5159         need for mono_string_to_utf16() anymore.
5160
5161 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
5162
5163         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
5164
5165 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
5166
5167         * icall.c, reflection.h: speedup System.MonoType.
5168
5169 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
5170
5171         * reflection.c: allow null as the value of a string argument in
5172         custom attributes constructors.
5173
5174 2002-08-27  Martin Baulig  <martin@gnome.org>
5175
5176         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
5177         `trampoline_address' field.
5178
5179 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
5180
5181         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
5182         check (fixes bug #29486) 
5183
5184 2002-08-27  Martin Baulig  <martin@gnome.org>
5185
5186         * debug-mono-symfile.c: Changed the file format in a way that allows us
5187         open it read-only and to use a specially malloced area for all the
5188         dynamic data.  We can now also generate a symbol file on-the-fly if we're
5189         debugging IL code and there is no MCS generated symbol file for it.
5190
5191 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
5192
5193         * object.c: added a define for a good string and array
5194         creation speedup (not enabled by default because we need to deal with
5195         the synch stuff).
5196
5197 2002-08-26  Martin Baulig  <martin@gnome.org>
5198
5199         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
5200         function to create a dynamic symbol file.  This is used by the
5201         debugger to create a symbol file for IL code on-the-fly.
5202
5203 2002-08-26  Martin Baulig  <martin@gnome.org>
5204
5205         * loader.c (mono_lookup_pinvoke_call): Include the error message
5206         from g_module_error() in the error message.
5207
5208 2002-08-24  Martin Baulig  <martin@gnome.org>
5209
5210         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
5211         function to update the symbol file.  The symbol file is mmap()ed
5212         writable, but private.  This allows us to install the symbol file
5213         together with the assembly.
5214
5215 2002-08-24  Martin Baulig  <martin@gnome.org>
5216
5217         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
5218         but they can read the new symbol file format which mcs is now creating.
5219
5220         * debug-symfile.c (mono_debug_find_source_location): Moved to
5221         debug-mono-symfile.c; this is now operating on the new symbol file.
5222
5223 2002-08-23  Martin Baulig  <martin@gnome.org>
5224
5225         * debug-helpers.c (mono_method_desc_from_method): New function to get
5226         a MonoMethodDesc from a MonoMethod.
5227
5228 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
5229
5230         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
5231         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
5232
5233 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
5234
5235         * string-icalls.[ch]: make helper methods static.
5236
5237 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5238
5239         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
5240         types to it and to SetValueInternal.
5241
5242         * object.c: Moved handle_enum label to its proper place. This was the
5243         f... bug! ;-)
5244
5245         This time i compiled mcs and gtk-sharp and they both work.
5246
5247 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5248
5249         * icall.c: reverted partially my previous patch until 
5250         object.c:set_value handles enums correcly.
5251
5252 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5253
5254         * icall.c:
5255         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
5256         (ves_icall_System_Environment_get_MachineName): removed warning when
5257         compiling under cygwin.
5258
5259 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
5260
5261         * object.c: fixed field_get_value() for reference types.
5262
5263 2002-08-22  Dick Porter  <dick@ximian.com>
5264
5265         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
5266         Don't free a buffer while it's still needed.  Patch from Jonathan
5267         Liger <Jonathan.liger@wanadoo.fr>
5268
5269 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
5270
5271         * icall.c (ves_icall_System_Environment_get_Platform): Add new
5272         internal call.
5273
5274 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
5275
5276         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
5277         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
5278
5279         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
5280         we call unmanaged code which throws exceptions.
5281
5282 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
5283
5284         * appdomain.h: added per-domain entry_assembly.
5285         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
5286         arguments.
5287         * icall.c: Assembly::GetEntryAssembly icall.
5288         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
5289         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
5290
5291 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
5292
5293         * appdomain.h, gc.c: added mono_domain_finalize ().
5294
5295 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5296
5297         * object.c:
5298         (mono_print_unhandled_exception): changed g_warning by g_printerr
5299         because g_log has a 1024 characters limit (yeah, i got a big stack
5300         trace). Don't print exception name, that should be in ToString 
5301         returned string.
5302
5303 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5304
5305         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
5306         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
5307
5308 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5309
5310         * object.c:
5311         (mono_print_unhandled_exception): after previous commit, i realized
5312         that MS calls ToString on the exception. I changed this function to
5313         do that. This way we get stack_trace for free.
5314
5315 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5316
5317         * object.c:
5318         (mono_print_unhandled_exception): invoke Message property instead of
5319         getting 'message' field from Exception. Don't allocate memory for
5320         'trace' and 'message' if not needed.
5321
5322 2002-08-18  Dick Porter  <dick@ximian.com>
5323
5324         * unicode.c: Fix asserts to match Encoder.cs checks
5325
5326 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
5327
5328         * marshal.c: fix unaligned store issue and a few wrong
5329         opcode argument types.
5330
5331 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5332
5333         * icall.c: added GetUninitializedObjectInternal internal call.
5334
5335 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
5336
5337         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
5338         to the right domain.
5339
5340 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
5341
5342         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
5343
5344         * class.c (class_compute_field_layout): set blittable to false for Strings
5345
5346         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
5347
5348 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
5349
5350         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
5351         first chunk of code to create types at runtime. Code to
5352         handle ReflectedType/DeclaringType. Make reflection handles
5353         domain specific.
5354
5355 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
5356
5357         * class.c: set correct name in arrays.
5358
5359 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
5360
5361         * appdomain.c (mono_domain_transfer_object): make it work with
5362         valuetypes. bug fixes.
5363
5364 2002-08-12  Dick Porter  <dick@ximian.com>
5365
5366         * object.h: Rename some parameters to avoid c++ keywords (Patch
5367         from Joseph Wenninger <kde@jowenn.at>)
5368
5369 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
5370
5371         * icall.c: added icall to implement Assembly.GetFile*.
5372
5373 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
5374
5375         * reflection.h, reflection.c: code to embed managed resources.
5376
5377 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
5378
5379         * class.c: move all the type size stuff into
5380         class_compute_field_layout().
5381
5382 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
5383
5384         * class.c: ensure enums have always the correct instance size.
5385         * unicode.c: remove wrong assert.
5386
5387 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
5388
5389         * assembly.c: fix mem corruption issue.
5390         * image.h, image.c: added mono_image_get_resource () to access
5391         managed resources.
5392         * icall.c: implemented Assembly.EntryPoint property and some
5393         Managed Resources related internalcalls.
5394
5395
5396 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
5397
5398         * image.c, image.h: impemented mono_image_get_entry_point ().
5399         * appdomain.c: use mono_image_get_entry_point.
5400
5401 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
5402
5403         * reflection.c: support the object type argument when loading
5404         custom attributes.
5405
5406 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
5407
5408         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
5409         String as return type.
5410
5411 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
5412
5413         * reflection.c: fix encoding of named args for custom attrs to match
5414         the ms implementation. Read them back when instantiating custom
5415         attributes.
5416
5417 2002-08-02  Radek Doulik  <rodo@ximian.com>
5418
5419         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
5420         by Dietmar as quick fix
5421         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
5422         16 as stack size, used on more places as quick fix before Dietmar
5423         will fix it properly
5424
5425 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
5426
5427         * object.h, object.c: added accessors for fields and properties.
5428
5429 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
5430
5431         * class.c, class.h: made mono_class_get_field_from_name ()
5432         loop on parent types.
5433         Added mono_class_get_property_from_name ().
5434
5435 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
5436
5437         * class.c, class.h: move the code to setup the type vtable in its own
5438         function so that it can be reused also for types created at runtime.
5439         Eliminate the "class" identifier from the header file.
5440         * reflection.c: setup the vtable for enums so that we can create
5441         objects for use in SetConstant ().
5442
5443 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
5444
5445         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
5446         instead of the delegate itself as this pointer (bug #28383)
5447
5448 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
5449
5450         * marshal.c (mono_marshal_get_managed_wrapper): added return type
5451         conversions.
5452
5453 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
5454
5455         * loader.c: don't set the pinvoke bit on icalls.
5456
5457 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
5458
5459         * debug-helpers.c (mono_method_full_name): only print a number to
5460         indicate wrapper type (so that the output is more readable in traces).
5461
5462 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
5463
5464         * class.c (mono_class_init): include method override patch from Paolo
5465
5466 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
5467
5468         * icall.c: fixed GetTypeCode().
5469
5470 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
5471
5472         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
5473         use real delegate invoke function to make it work with multicast
5474         delegates (fix bug# 28291).
5475
5476 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
5477
5478         * object.c: load constant strings.
5479
5480 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
5481
5482         * reflection.c: no magic numbers.
5483         * tabledefs.h: security action enum.
5484
5485 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
5486
5487         * assembly.c: fix possible memory corruption.
5488
5489 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
5490
5491         * reflection.h, reflection.c: added support for linking resources.
5492         * verify.c: check we have an updated corlib.
5493
5494 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
5495
5496         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
5497         string arrays.
5498         (mono_marshal_string_array): null terminate unmanaged string arrays.
5499         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
5500
5501 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
5502
5503         * icall.c: Type.GetType () can now return also types from the
5504         calling assembly.
5505
5506 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
5507
5508         * loader.h, loader.c: stack walking support.
5509         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
5510         GetCallingAssembly.
5511
5512 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
5513
5514         * marshal.c: added optimisations for blittable types 
5515
5516         * class.c (mono_array_class_get): do not set blittable attribute on arrays
5517         (mono_class_setup_mono_type): set blittable attribute for single
5518         and double.
5519
5520         * marshal.c (mono_string_utf8_to_builder): impl.
5521         (mono_string_builder_to_utf8): impl.
5522         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
5523
5524 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
5525
5526         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
5527         (mono_marshal_get_managed_wrapper): impl. byref types
5528
5529 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5530
5531         * icall.c:
5532         (search_method): don't display debug message. 
5533
5534 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
5535
5536         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
5537
5538 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
5539
5540         * appdomain.c: set the missing filename when throwing exception.
5541
5542 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
5543
5544         * metadata.c (mono_type_size): code cleanup
5545         (mono_type_stack_size): removed some test code
5546
5547 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
5548
5549         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
5550         mono_get_exception_file_not_found now.
5551
5552         * exception.c (mono_exception_from_name_two_strings): New version
5553         that will call a constructor with two string arguments. 
5554         (mono_get_exception_file_not_found): New helper routine, used to
5555         report file-not-found errors.
5556
5557 2002-07-20  Dick Porter  <dick@ximian.com>
5558
5559         * process.h:
5560         * process.c: Pass file handles to CreateProcess
5561         
5562         * icall.c:
5563         * file-io.h:
5564         * file-io.c: Implemented CreatePipe
5565
5566 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
5567
5568         * metadata.c (mono_get_param_info): set alignment for value types
5569
5570 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
5571
5572         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
5573         Constify mono_domain_assembly_open().
5574         * loader.c: handle null namespace in icalls.
5575
5576 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
5577
5578         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
5579         (emit_str_to_ptr_conv): marshal object as structs
5580
5581         * metadata.c (mono_type_to_unmanaged): marshal object as structs
5582
5583         * marshal.c (mono_marshal_get_runtime_invoke): support value types
5584
5585 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
5586
5587         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
5588         (mono_marshal_get_native_wrapper): we an now return value types
5589
5590 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
5591
5592         * verify.c: more checks implemented.
5593
5594 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
5595
5596         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
5597         (fix bug #27695)
5598         (mono_marshal_get_native_wrapper): allow byref arguments
5599         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
5600         impl. PtrToStringXXX methods
5601         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
5602         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
5603         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
5604         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
5605         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
5606
5607 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
5608
5609         * reflection.c: fix buglet in parsing an assembly name.
5610
5611 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
5612
5613         * marshal.c (emit_ptr_to_str_conv): first impl.
5614
5615 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
5616
5617         * object.c, class.h: cache the vtable in the class as suggested by
5618         vargaz@freemail.hu (Zoltan Varga).
5619
5620 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
5621
5622         * class.h, loader.c: added mono_field_from_token().
5623         * verify.c: first cut of type checking code.
5624
5625 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
5626
5627         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
5628
5629 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
5630
5631         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
5632         (fix bug #27782)
5633         (mono_marshal_get_remoting_invoke): impl.
5634         (mono_delegate_begin_invoke): impl.
5635         (mono_mb_emit_save_args): impl.
5636         (mono_delegate_end_invoke): impl.
5637         (mono_marshal_get_delegate_begin_invoke):
5638         (mono_marshal_get_delegate_end_invoke):
5639         (mono_marshal_get_delegate_invoke): generate a special name for
5640         those methods (including the signature) and associate them whith
5641         the delegate class. 
5642
5643 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
5644
5645         * reflection.[ch]: 
5646         (mono_reflection_type_from_name): now it has a MonoImage parameter
5647         which is used as the default image to search the type in. If the image
5648         is NULL or getting the type from it fails, it defaults to corlib.
5649
5650         * icall.c: changed 1 call to mono_reflection_type_from_name to match
5651         new parameter.
5652
5653 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5654
5655         * reflection.c: update the parameter table index.
5656
5657 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
5658
5659         * domain.c: don't include the mark byte in the string hash.
5660
5661 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
5662
5663         * icall.cs: icall for Type.GetTypeCode ().
5664         * verify: a couple of fixes and disabled local initialization checks.
5665
5666 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
5667
5668         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
5669
5670         * debug-helpers.c (mono_method_full_name): print the type of the
5671         runtime wrapper
5672
5673         * metadata.c (mono_signature_hash): a hash function for signatures
5674         (mono_signature_hash): better hash algorithm
5675
5676         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
5677
5678         * debug-helpers.c (mono_method_full_name): this can now generate
5679         method names with signatures
5680
5681         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
5682         method dont have this pointers.
5683
5684 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
5685
5686         * reflection.c: fixup typebuilder tokens.
5687         * image.c: fix buglet.
5688         * marshal.h: remove whitespace.
5689         * metadata.h, metadata.c: reinstate code that was removed.
5690         * verify.c: handle catch directives and fix another couple of bugs.
5691
5692 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
5693
5694         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
5695         (mono_marshal_get_native_wrapper): make it comp. with the old code
5696         (mono_marshal_get_native_wrapper): support boolean
5697         (mono_marshal_get_managed_wrapper): support more types
5698
5699 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
5700
5701         * class.c (class_compute_field_layout): compute class->blittable attribute.
5702
5703 2002-07-09  Dick Porter  <dick@ximian.com>
5704
5705         * threads.c: Make the thread cleaning up cope with threads that
5706         call ExitThread()
5707
5708 2002-07-08  Radek Doulik  <rodo@ximian.com>
5709
5710         * reflection.c (method_encode_code): use non-translated values to
5711         compute finally_start, this fixes exception handling on ppc, yay!
5712
5713         * decimal.h (struct signscale): fix endianess
5714
5715 2002-07-07  Radek Doulik  <rodo@ximian.com>
5716
5717         * reflection.c: swap box_val and not val
5718
5719 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
5720
5721         * reflection.c, reflection.h: handle full assembly info in type name.
5722         Handle Type arguments when loading custom attributes.
5723         * icall.c: updated to use new mono_reflection_type_from_name () method.
5724
5725 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5726
5727         * loader.c:
5728         (method_from_memberref): also print assembly name when method not found.
5729
5730 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5731
5732         * icall.c:
5733         (ves_icall_TypeGetProperties): fixed bug #27473. 
5734
5735 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5736
5737         * reflection.c: display image name and token when cannot find the
5738         .ctor for an attribute.
5739
5740 2002-07-05  Martin Baulig  <martin@gnome.org>
5741
5742         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
5743
5744 2002-07-04  Dick Porter  <dick@ximian.com>
5745
5746         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
5747         compile on mingw.  This will cause mingw builds to not wait for
5748         subthreads to terminate after the main thread does.  I've lodged a
5749         bug with the mingw developers for them to wrap OpenThread().
5750
5751 2002-07-03  Dick Porter  <dick@ximian.com>
5752
5753         * threads.c: Store thread IDs instead of handles, because
5754         GetCurrentThread() returns a pseudohandle and therefore stores
5755         useless values.  mono_thread_cleanup() continues checking the
5756         array of threads until it is empty, to cope with subthreads
5757         spawning new threads after the main thread has finished.
5758
5759         * profiler.h:
5760         * profiler.c:
5761         * profiler-private.h: Pass the thread ID to thread profiler
5762         functions, instead of a handle
5763
5764 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
5765
5766         * verify.c: fixes to make it more usable.
5767         * pedump.c: added --verify code to verify IL code in an assembly.
5768
5769 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
5770
5771         * reflection.c: turn errors into warnings to allow compiling corlib.
5772
5773 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
5774
5775         * reflection.c: add special cases to compile corlib.
5776
5777 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
5778
5779         * reflection.c: handle properties with only a set method.
5780
5781 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
5782
5783         * opcodes.h: add enum with opcodes in opval order.
5784
5785 2002-07-01  Dick Porter  <dick@ximian.com>
5786         
5787         * object.h:
5788         * object.c (mono_runtime_run_main): Removed unneeded argument
5789
5790 2002-06-28  Martin Baulig  <martin@gnome.org>
5791
5792         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
5793
5794 2002-06-27  Dick Porter  <dick@ximian.com>
5795
5796         * threads.c: Store the handle in both the parent thread and in the
5797         subthread, to minimise the time between starting a new thread and
5798         storing its ID.
5799
5800 2002-06-26  Dick Porter  <dick@ximian.com>
5801
5802         * appdomain.c (mono_runtime_cleanup): Close the socket library
5803         after all the threads have finished, not before
5804
5805 2002-06-26  Martin Baulig  <martin@gnome.org>
5806
5807         * debug-symfile.c (mono_debug_find_source_location): Added
5808         `guint32 *line_number' argument.  If it's not NULL, store the line number
5809         there and return the file name without the line number.
5810
5811 2002-06-25  Dick Porter  <dick@ximian.com>
5812
5813         * icall.c:
5814         * process.h:
5815         * process.c: Process forking and other support functions
5816
5817 2002-06-25  Dick Porter  <dick@ximian.com>
5818
5819         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
5820         things dont happen when the image is closed.
5821         (mono_image_lookup_resource): Walk the resource section looking
5822         for a particular entry
5823
5824         * cil-coff.h: PE resource section decoding
5825
5826 2002-06-25  Dick Porter  <dick@ximian.com>
5827         
5828         * assembly.h:
5829         * assembly.c: 
5830         (mono_assembly_foreach): Accessor functions to walk the list of
5831         loaded assemblies
5832         (mono_assembly_set_main):
5833         (mono_assembly_get_main): Process methods need to know which
5834         assembly is the "main" one
5835
5836         * object.c (mono_runtime_run_main): Record the main assembly
5837
5838         * debug-helpers.c: Fix typo
5839
5840 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
5841
5842         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
5843         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
5844
5845 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
5846
5847         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
5848
5849 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
5850
5851         * image.c (do_mono_image_open): Initialize reference count,
5852         otherwise we leak the MonoImage.
5853
5854 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
5855
5856         * reflection.c: small tweak to handle self-hosting.
5857
5858 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
5859
5860         * reflection.c: fix type name parse code.
5861
5862 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
5863
5864         * reflection.c: break out of the loop.
5865         * image.c: special case corlib.
5866
5867 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
5868
5869         * reflection.c: add all the custom attrs at the end to ensure the
5870         ctors have been properly initialized when the attributes are defined
5871         in the current assembly.
5872
5873 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
5874
5875         * reflection.c: handle correctly multiple-nested types.
5876
5877 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
5878
5879         * row-indexes.h: fix typos.
5880         * reflection.c: adjust for typos and fix method_def_or_ref
5881         encoding in MethodImpl table.
5882
5883 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
5884
5885         * reflection.c: fix entry point patching (thanks Serge!).
5886
5887 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
5888
5889         * verify.c: add check for System.Exception
5890
5891 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
5892
5893         * image.c, class.c: minifix for code just c&p'ed.
5894         * reflection.c: warning fix.
5895         * object.h, loader.h, domain.c: load also StringBuilder.
5896
5897 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
5898
5899         * marshal.h, marshal.c: some support code to handle complex marshaling.
5900
5901 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
5902
5903         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
5904         Better signatures with vtable error dump.
5905
5906 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
5907
5908         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
5909
5910 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
5911
5912         * icall.c (ves_icall_Type_GetField): impl.
5913
5914 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
5915
5916         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
5917         to retrieve a marshal description blob for a field or param.
5918
5919 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
5920
5921         * reflection.h, reflection.c: change order of nested type emission
5922         to avoid table corruption. The NestedTypes table is sorted.
5923         * icall.c: change order of GetConstructor results to workaround mcs bug.
5924
5925 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
5926
5927         * reflection.h, reflection.c: handle field and param marshal
5928         information.
5929
5930 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
5931
5932         * icall.c, marshal.c marshal.h: more Marshal class implementation.
5933
5934 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5935
5936         * reflection.c: fix call convention.
5937
5938 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5939
5940         * reflection.h, reflection.c: mono_image_get_memberref_token()
5941         takes a type instead of a class, now. Added
5942         mono_image_get_array_token() to create tokens for the special
5943         multi-dim array methods.
5944
5945 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
5946
5947         * assembly.c: handle modules (no assembly table). Split
5948         loading references in its own function.
5949         * class.c: handle moduleref resolution scope.
5950         * image.c, image.h: cache module name in image.
5951
5952 2002-06-07  Martin Baulig  <martin@gnome.org>
5953
5954         * reflection.c (mono_image_get_type_info): Only add a class layout entry
5955         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
5956
5957 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
5958
5959         * icall.c: more signature fixes that used uint instead of int.
5960
5961 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
5962
5963         * reflection.c: fixed signature of field refs.
5964
5965 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
5966
5967         * class.c, reflection.c: handle typerefs of nested types
5968         (both on read and when writing files).
5969
5970 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
5971
5972         * icall.c: fix method signatures that tried to workaround the previous
5973         typo, d'oh!
5974
5975 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
5976
5977         * debug-helpers.c: fix typo.
5978
5979 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
5980
5981         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
5982         rewrote the PE/COFF writing code (our programs are understood by the
5983         ms runtime, now).
5984
5985 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
5986
5987         * gc.c, gc.h, icall.c: weakreference support.
5988
5989 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5990
5991         * Makefile.am, mono-config.c: use $(sysconfdir).
5992
5993 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
5994
5995         * icall.c: changed default precision of Double.ToString() to 15.
5996         Fixed memory leak. Unified with Single.ToString.
5997
5998 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
5999
6000         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
6001
6002 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
6003
6004         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
6005         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
6006         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
6007         and myself.
6008
6009 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
6010
6011         * debug-symfile.c, sysmath.c: yet more compilation fixes.
6012
6013 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
6014
6015         * reflection.c, socket-io.c: more compilation fixes.
6016
6017 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
6018
6019         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
6020         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
6021         unicode.c: warning and compiler compatibility fixes.
6022
6023 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
6024
6025         * class.h, metadata.c: fixed warnings/compilation errors.
6026
6027 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
6028
6029         * Makefile.am, mono-config.c, mono-config.h: configuration file
6030         support routines.
6031         * loader.c, loader.h: make Dll mapping configurable at runtime in the
6032         config file. Export methods to insert and lookup mappings.
6033
6034 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
6035
6036         * reflection.c: handle types and boxed objects in custom attr
6037         constructors.
6038
6039 2002-05-30  Martin Baulig  <martin@gnome.org>
6040
6041         * debug-symfile.c
6042         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
6043
6044 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
6045
6046         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
6047         to lookup the implmap row for a P/Invoke method.
6048         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
6049         P/Invoke method from the runtime on an as needed basis.
6050
6051 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
6052
6053         * metadata.c (mono_metadata_parse_signature): impl.
6054
6055 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
6056
6057         * class.c: handle .pack directive.
6058
6059 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
6060
6061         * object.c: initialize static fields with RVA data.
6062
6063 2002-05-25  Martin Baulig  <martin@gnome.org>
6064
6065         * debug-symfile.c
6066         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
6067
6068 2002-05-24  Martin Baulig  <martin@gnome.org>
6069
6070         * debug-symfile.c
6071         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
6072         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
6073         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
6074
6075 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
6076
6077         * object.c: special case string ctros in invoke.
6078         * gc.c: silly whitespace changes.
6079
6080 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
6081
6082         * threadpool.[ch]: impl. a threadpool that can
6083         be used by mint and mono.
6084
6085 2002-05-22  Martin Baulig  <martin@gnome.org>
6086
6087         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
6088         The first argument is now a `MonoReflectionModuleBuilder *', the return
6089         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
6090         `methods' field to get the method builder.  The `token' argument is the
6091         unfixed token.
6092
6093         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
6094         invalid characters instead of g_assert_not_reached()ing.  This seems
6095         to be the behaviour of mscorlib.
6096
6097 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
6098
6099         * object.c (mono_runtime_invoke_array): applied patch from Rachel
6100         Hestilow to fix bug #25104
6101
6102 2002-05-21  Martin Baulig  <martin@gnome.org>
6103
6104         * debug-symfile.c (mono_debug_find_source_location): New function.
6105         Looks up an IL offset in the line number table and returns the source
6106         location as a string.
6107
6108 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6109
6110         * icall.c:
6111         (mono_double_ToStringImpl): changed %f by %g until we have something
6112         better.
6113
6114 2002-05-21  Nick Drochak  <ndrochak@gol.com>
6115
6116         * icall.c : Use different name for Math.Pow's icall.  Needed to check
6117         parameters first in C#.
6118
6119 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
6120
6121         * icall.c, reflection.h: added icall to get info about an event.
6122
6123 2002-05-20  Radek Doulik  <rodo@ximian.com>
6124
6125         * object.c (mono_value_box): don't use memcpy for boxing on BIG
6126         endian
6127         (mono_value_box): don't use memcpy for small sizes on
6128         architectures with unaligned access
6129
6130 2002-05-20  Martin Baulig  <martin@gnome.org>
6131
6132         * reflection.c (mono_reflection_setup_internal_class): Don't crash
6133         if `tb->parent == NULL'.
6134         (mono_reflection_create_internal_class): New function.  This is
6135         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
6136         for enum types.
6137
6138         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
6139         New interncall.
6140
6141 2002-05-19  Martin Baulig  <martin@gnome.org>
6142
6143         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
6144         argument to get the length, don't default to the array length.
6145
6146 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
6147
6148         * assembly.c (mono_assembly_setrootdir): New function used to
6149         override the MONO_ASSEMBLIES directory.
6150
6151 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
6152
6153         * icall.c: ValueType_GetHashCode() initialize local var.
6154
6155 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
6156
6157         * reflection.c: sort custom attributes table.
6158
6159 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
6160
6161         * reflection.c: support named args in custom attributes (write support).
6162
6163 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
6164
6165         * reflection.c: fix finally position calculation.
6166
6167 2002-05-15  Radek Doulik  <rodo@ximian.com>
6168
6169         * reflection.c: fixed endianess at many places
6170
6171         * icall.c (ves_icall_InitializeArray): comment out debug msg
6172
6173 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
6174
6175         * object.c (mono_unhandled_exception): new function to handle
6176         unhandled exceptions.
6177         (mono_unhandled_exception): call the UnhandledException event.
6178         (mono_runtime_delegate_invoke): impl.
6179
6180 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
6181
6182         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
6183         returns the RVA, not the direct pointer to the data. Handle the case
6184         when the class size is fixed.
6185
6186 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
6187
6188         * reflection.c: fix some endianess issues.
6189
6190 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
6191
6192         * object.c (mono_runtime_invoke): is now able to catch exceptions.
6193
6194         * threads.c (mono_thread_init): added a callback which is invoked
6195         at thread start.
6196
6197 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
6198         
6199         * icall.c: make GetHashCode return non-negative values.
6200
6201 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
6202
6203         * object.c, icall.c, gc.c: revert to address-based hashcode.
6204
6205 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
6206
6207         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
6208
6209 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
6210
6211         * icall.c, class.c: special case <Module>.
6212
6213 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
6214
6215         * icall.c: fix bug in GetNow().
6216
6217 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
6218
6219         * object.c (mono_runtime_class_init): make sure that we call all
6220         static class constructors.
6221
6222 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
6223
6224         * reflection.c: sort methodsemantics table.
6225
6226 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
6227
6228         * reflection.h, reflection.c: honour init locals setting.
6229
6230 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
6231
6232         * icall.c: copied Double ToStringImpl for Single ToStringImpl
6233
6234 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
6235
6236         * reflection.c: support ContructorBuilders in attribute blob creation.
6237
6238 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
6239
6240         * reflection.c: some changes to build a binary that can be run
6241         directly in windows.
6242
6243 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
6244
6245         * loader.c: print a big message when an icall can't be found.
6246
6247 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6248
6249         * string-icalls.c: fix bug 24248.
6250
6251 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
6252
6253         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
6254         icall.c, reflection.h: separate assembly loading by pathname and by
6255         assembly name. Use the MONO_PATH env var to search for assemblies.
6256
6257 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
6258
6259         * assembly.c, image.h: add some support for assemblies
6260         with multiple modules.
6261         * class.c, class.h: export mono_class_from_typeref().
6262         * loader.c: remove duplicated code and use mono_class_from_typeref(),
6263         instead.
6264
6265 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
6266
6267         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
6268         documentation says (the ECMA one is correct).
6269
6270 2002-05-02  Dick Porter  <dick@ximian.com>
6271
6272         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
6273         Don't name the synchronisation mutex.
6274
6275 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
6276
6277         * rand.c
6278         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
6279         Make the prototypes match.
6280         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
6281         Same.
6282
6283         * icall.c
6284         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
6285         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
6286         all systems have tm.tm_zone, so use strftime() with %Z to print
6287         the timezone abreviation into a temp string.
6288
6289         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
6290         rather than mono_array_addr() on a MonoString on Big Endian
6291         machines.
6292
6293 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
6294
6295         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
6296         fix bug 24041
6297
6298 2002-04-30  Dick Porter  <dick@ximian.com>
6299
6300         * socket-io.c: Cope with SOCKET being an integer rather than a
6301         pointer now.
6302
6303         * threads.c: Added Thread_free_internal, to deal with thread
6304         handle cleanup.  Moved calls to handle_store() and handle_remove()
6305         to start_wrapper(), so each can only be called once.  Allocate
6306         synchronisation blocks with GC_malloc(), and use GC finalisation
6307         to close the handles.
6308
6309         * icall.c: added System.Threading.Thread::Thread_free_internal
6310
6311 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
6312
6313         * icall.c: support Environment.Exit, CommandLineArgs().
6314
6315 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
6316
6317         * object.c, object.h: added mono_runtime_run_main () and
6318         mono_runtime_get_main_args () for use in System.Environment.
6319
6320 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
6321
6322         * gc.c: fix thinko, enable actual finalization since the jit is now
6323         fixed.
6324
6325 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
6326
6327         * gc.c, object.c: take into account that an object may be offset wrt the address
6328         returned by GC_malloc().
6329
6330 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
6331
6332         * image.c: handle files without entries in the assembly table (modules).
6333
6334 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
6335
6336         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
6337         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
6338         allowed to be null when it's System.Object class setup.
6339
6340 2002-04-27  Martin Baulig  <martin@gnome.org>
6341
6342         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
6343         if `tb->parent == NULL' rather than crashing.
6344
6345 2002-04-28  Nick Drochak  <ndrochak@gol.com>
6346
6347         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
6348         calling acos() where asin() should have been called.
6349
6350 2002-04-26  Martin Baulig  <martin@gnome.org>
6351
6352         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
6353         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
6354         there's a subdirectory called `System', but we don't want to read that
6355         subdirectory as an assembly.
6356
6357 2002-04-25  Martin Baulig  <martin@gnome.org>
6358
6359         * debug-symfile.c: Reflect latest MonoString changes.
6360
6361 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
6362
6363         * rand.c, rand.h: instance method icalls need to have an explicit
6364         this pointer as first argument in the C implementation.
6365
6366 2002-04-25  Nick Drochak <ndrochak@gol.com>
6367
6368         * icall.c: Fix typo in map for GetNonZeroBytes
6369
6370 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
6371
6372         * string-icalls.c : String does now passes unit tests without any 
6373         errors, the following changes has been made:
6374         
6375         Implemented replace methods.
6376         Renaming of methods to (try) follow the standard.
6377         Fixed compare ordinal
6378         Made all memory allocated directly to function instead of via icall function.
6379         Small performance fix in is_in_array function
6380                         
6381  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
6382
6383         c (mono_string_Internal_ctor_charp_int_int):
6384         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
6385         sindex < 0, throw ArgumentOutOfRangeException instead of
6386         ArgumentNullException.
6387
6388         Added new check for length == 0, however
6389         I need to make it return String.Empty from the C code.
6390         
6391         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
6392         that calculate the length for us here.
6393         
6394         (mono_string_Internal_ctor_sbytep_int_int): Replaced
6395         mono_string_new_utf16 with mono_string_new, since value is utf8.
6396
6397 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
6398
6399         * object.c: register the object for finalization if needed.
6400         Allocate one more char in the string for the terminating 0 char.
6401
6402 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
6403
6404         * class.c, class.h, image.c: check if a type implemenst a destructor.
6405         Use the proper key for array class lookups.
6406         * icall.c: register the icalls in the System.GC class.
6407         * gc.c, gc.h: GC-related functions and icalls.
6408
6409 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6410
6411         * icall.c:
6412         * socket-io.c:
6413         * unicode.c: free some strings gotten from mono_string_to_utf8 and
6414         changed a couple of free () by g_free ().
6415
6416         * decimal.c: one-liner in the comments for decimal2string ().
6417
6418 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
6419
6420         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
6421
6422 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
6423
6424         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
6425         * object.c (mono_runtime_invoke_array) : handle null in params
6426
6427 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
6428
6429         * string-icalls.c: fixed bug in split (one off bug)
6430
6431 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
6432
6433         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
6434         * icalls.c: added String::Equals as internal method
6435
6436 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
6437
6438         * threads.c: fixed bug in the double interlocked functions
6439
6440 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
6441
6442         * threads.c: implemented all of the new interlocked icalls.
6443         * string-icalls.c: fix a bug in insert.
6444         * icalls.c: added the icalls for interlocked, removed old string functions.
6445         
6446 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
6447
6448         * loader.c: fix off-by-one error when reading argument names.
6449
6450 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
6451
6452         * profiler.c: win32 counter implementation (untested).
6453         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
6454         (the latter needs testing and more complete impl. from win32 folks).
6455
6456 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
6457
6458         * object.c: mono_array_new_full workaround mono_array_class_get
6459         problem.
6460
6461 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
6462
6463         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
6464         * object.h (mono_string_chars): Changed casting type.
6465
6466 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
6467
6468         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
6469                            method signatures to use gunichar2 instead of gint16.
6470
6471 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
6472
6473         * object.h, object.c: domain-specific versions of mono_object_new and
6474         mono_array_new.
6475
6476 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
6477
6478         * object.c: changed String layout
6479
6480         * string-icalls.c (mono_string_Internal_ctor_chara): added
6481         internal string constructors.
6482
6483 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
6484
6485         * threads.c: pass 'this' to the thread start routine.
6486
6487 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6488
6489         * string-icalls.c: fix IndexOf and LastIndexOf. Now
6490         InternalCompareStr don't call twice mono_string_cmp_char for the last
6491         character. Improved performance in mono_string_cmp_char.
6492
6493 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
6494
6495         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
6496         code into its own library: libmonoruntime.
6497
6498 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
6499
6500         * object.h, object.c: changed array format so that szarrays do not
6501         require a bounds structure.
6502         * icall.c, appdomain.c: support for new szarray format.
6503
6504 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
6505
6506         * metadata.c: compare also the retuns type when comparing signatures:
6507         we didn't do this as an optimization since really overloaded methods
6508         must differ also in the arguments, but this doesn't work with
6509         low-level IL code (or when using explicit conversion operators: see
6510         bug#23498 for an example).
6511
6512 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
6513
6514         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
6515
6516 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
6517
6518         * icall.c: make MonoType::GetElementType its own icall.
6519
6520 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
6521
6522         * icall.c: remove MonoMethod_get_Name().
6523         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
6524         object.
6525
6526 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
6527
6528         * string-icalls.c: optimized a few methods.
6529
6530 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
6531
6532         * icall.c: added all new string internal calls
6533         * string-icalls.c: added, new string internal call implementation.
6534         * object.c: added mono_string_new_size for allocating a string a size
6535
6536 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
6537
6538         * object.c (mono_object_isinst): use the same code as in the
6539         optimized x86 version.
6540
6541 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
6542
6543         * profiler.c: TSC-based timer code (faster and more accurate).
6544         Not hooked up in configure, yet (set USE_X86TSC to 1).
6545
6546 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
6547
6548         * profiler.c, profiler.h: track time spent compiling methods.
6549         * threads.c: track thread creation/destruction.
6550
6551 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
6552
6553         * profiler.c, profiler.h, profiler-private.h: profiling interface
6554         and sample implementation. Moved here so that it can be used also by
6555         the jit.
6556
6557 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
6558
6559         * reflection.c, reflection.h: keep types and other handles separate in
6560         the hash tables for referred tokens. Add guid for modules.
6561
6562 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
6563
6564         * assembly.c: fix bugs found with valgrind.
6565         * metadata.h, metadata.c: added mono_metadata_guid_heap().
6566
6567 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
6568
6569         * threads: added icall support for getting current domain for
6570                    the thread.
6571  
6572 2002-04-13  Martin Baulig  <martin@gnome.org>
6573
6574         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
6575         (MonoDebugVarInfo): Added `index' field for register based addresses.
6576         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
6577         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
6578         `MonoDebugVarInfo *params' and `guint32 this_offset' with
6579         `MonoDebugVarInfo *this_var'.
6580
6581         * debug-symfile.c (relocate_variable): New static function to write
6582         a location description for a local variable or method parameter.
6583
6584 2002-04-12  Martin Baulig  <martin@gnome.org>
6585
6586         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
6587         stack offset and begin/end scope address of a local variable.
6588         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
6589         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
6590         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
6591
6592         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
6593         Added new relocation types for start/end scope of a local variable.
6594
6595 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
6596
6597         * object.h: add mono_object_domain() macro.
6598         * reflection.c: handle typespecs.
6599         * icall.c: MonoMethod::get_Name() implementation.
6600
6601 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
6602
6603         * icall.c: String::GetHashCode() icall implementation.
6604
6605 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
6606
6607         * icall.c: String::IndexOfAny icall.
6608         * object.c, object.h: make array->max_length more useful.
6609         Intrduced mono_object_class() and mono_string_length() macros.
6610
6611 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6612
6613         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
6614         instead of g_unichar_isdigit.
6615
6616 2002-04-11  Nick Drochak  <ndrochak@gol.com>
6617
6618         * icall.c: Implement a simple Double.ToString().
6619
6620 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
6621
6622         * appdomain.h: only io-layer.h is supposed to be included.
6623         * icall.c: explicitly import environ. Fix warning.
6624
6625 2002-04-10  Nick Drochak  <ndrochak@gol.com>
6626
6627         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
6628                 return true even if it's not Daylight Savings time.
6629                 Only return false for the case where the function isn't
6630                 implemented for a plaform (read Windows).
6631
6632 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
6633
6634         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
6635         data with a mutex.
6636
6637 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
6638
6639         * mempool.c (mono_mempool_alloc): only use g_malloc when
6640         absolutely necessary.
6641
6642 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
6643
6644         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
6645
6646         * class.c (mono_class_vtable): use domain mempool to allocate vtable
6647         (mono_class_proxy_vtable): use domain mempool
6648
6649 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
6650
6651         * appdomain.h, appdomain.c: split initialization that requires the
6652         execution engine support into mono_runtime_init().
6653
6654 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
6655
6656         * class.c (mono_class_init): don't include vtable inside MonoClass
6657         to save some memory, gather some statistics.
6658         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
6659
6660 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
6661
6662         * icall.c: internalcall implementation for ValueType.Equals().
6663
6664 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
6665
6666         * object.c (mono_message_init): moved 
6667         (mono_runtime_exec_main): new arch. independent impl.
6668         (mono_runtime_invoke_array): new method - like
6669         mono_runtime_invoke, but you can pass an array of objects.
6670         (mono_remoting_invoke): new arch. independent impl.
6671         (mono_message_invoke): new arch. independent impl.
6672         (mono_runtime_class_init): new arch. independent impl.
6673         (mono_runtime_object_init): new arch. independent impl.
6674
6675 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
6676
6677         * metadata.c, object.c, reflection.c: documented the exported
6678         functions.
6679
6680 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
6681
6682         * icall.c: simpler code to pass the assembly builder data to corlib.
6683         Implement GetNestedTypes() internalcall.
6684
6685 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
6686
6687         * class.c: warn if a type can't be loaded.
6688
6689 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
6690
6691         * image.h: typedef MonoImageOpenStatus
6692         * types.h: removed unused file
6693         
6694 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
6695
6696         * icall.c: Enum_ToObject accepts enum value arguments.
6697
6698 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
6699
6700         * class.c: move initialization of properties, events and nested
6701         classes, so that they happen for interfaces, too.
6702
6703 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
6704
6705         * icall.c: cleanup some ugly casts in Array_SetValue*.
6706
6707 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
6708
6709         * icall.c: the values array fro enums is of the correct type, now.
6710         Implement (correctly) getFullName instead of assQualifiedName for
6711         MonoType.
6712         * reflection.h, reflection.c: added mono_type_get_name ().
6713
6714 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
6715
6716         * assembly.c, image.h: for each MonoImage, record from wich assembly
6717         it was loaded.
6718         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
6719         Make Type.Assembly work.
6720
6721 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
6722
6723         * debug-symfile.h: use char* instead of gpointer to avoid
6724         unnecessary casts.
6725
6726         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
6727
6728         * icall.c (ves_icall_InternalExecute): impl. FielSetter
6729         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
6730
6731 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
6732
6733         * icall.c (mono_message_init): impl. (code cleanup)
6734         (ves_icall_InternalExecute): impl. FieldGetter
6735
6736         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
6737         defined we call all (non-static)methods through the vtable. 
6738
6739 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
6740
6741         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
6742         finalizer even though the memory is still referenced (and the chunk of
6743         memory is not freed).
6744
6745 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
6746
6747         * assembly.c: fix brokeness.
6748
6749 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
6750
6751         * class.c: kill some warnings. Check explicit interface method
6752         implementation also without considering the namespace.
6753         Load also literal strings in static class data.
6754
6755 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
6756
6757         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
6758         (default_assembly_name_resolver): Make the resolver take the
6759         "base" directory where the assembly was originally defined, so we
6760         can load DLLs that are in the same directory as the assembly that
6761         is being referenced.
6762
6763 2002-03-28  Dick Porter  <dick@ximian.com>
6764
6765         * file-io.h: 
6766         * file-io.c:
6767         * socket-io.c: 
6768         * unicode.h: 
6769         * unicode.c: Warning cleanups
6770
6771 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
6772
6773         * object.h, reflection.h: use the correct type instead of MonoObject.
6774
6775 2002-03-28  Martin Baulig  <martin@gnome.org>
6776
6777         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
6778         (mono_debug_update_symbol_file): Initialize classes if necessary.
6779
6780 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
6781
6782         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
6783         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
6784
6785 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
6786
6787         * assembly.h: fix function prototype.
6788         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
6789         * mono-endian.h: use const cast.
6790
6791 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
6792
6793         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
6794
6795 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
6796
6797         * loader.c: don't assert when a typeref can't be loaded, give
6798         a chance to the runtime to trow an exception instead.
6799         * loader.h: fix warning.
6800
6801 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
6802
6803         * class.c (mono_class_proxy_vtable): added proxy support
6804
6805 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
6806
6807         * icall.c: removed last of PAL calls, added System.Environment
6808         * file-io.h, file-io.c: MonoIO implementation
6809         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
6810
6811 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
6812
6813         * appdomain.c: do not use the byte marker in ldstr table lookup.
6814         * debug-helpers.c: allow two ':' to separate class and method name.
6815         * object.c: allocate arrays bounds with the GC, too.
6816         * verify: add a few more checks.
6817
6818 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
6819
6820         * reflection.c: output also literal strings. Allocate parameter data
6821         with GC_malloc() (thanks, Martin, for catching this!).
6822
6823 2002-03-26  Martin Baulig  <martin@gnome.org>
6824
6825         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
6826         include the `this' offset in the `param_offsets'.
6827
6828 2002-03-25  Martin Baulig  <martin@gnome.org>
6829
6830         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
6831         mono_debug_get_class() function to get the classes. Added new
6832         relocation types for arrays and strings.
6833         (mono_debug_get_class): New static function to search in all
6834         referenced assemblies for a metadata token.
6835
6836         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
6837
6838 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
6839
6840         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
6841         hold gc-allocated objects. Make the string heap a stream like the
6842         others. Removed duplicated code when writing stream info.
6843         Added asserts to catch possible buffer overflows. Set the sorted map
6844         for tables that need sorting. Added some documentation.
6845
6846 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
6847
6848         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
6849         for interned strings and vtables.
6850
6851 2002-03-24  Martin Baulig  <martin@gnome.org>
6852
6853         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
6854         it in the array since it was created with g_slist_prepend().
6855
6856 2002-03-24  Martin Baulig  <martin@gnome.org>
6857
6858         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
6859         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
6860         (mono_debug_method_from_token): Renamed to
6861         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
6862         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
6863
6864         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
6865         relocation types.
6866
6867         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
6868
6869 2002-03-24  Martin Baulig  <martin@gnome.org>
6870
6871         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
6872         (mono_debug_method_from_token): New func.
6873
6874         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
6875         New interncall, calls mono_debug_local_type_from_signature().
6876         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
6877         calls mono_debug_method_from_token().
6878
6879 2002-03-23  Martin Baulig  <martin@gnome.org>
6880
6881         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
6882         specifies the number of bytes to be converted, not the array size.
6883         Return the number of chars, not the number of bytes.
6884         (ves_icall_iconv_get_chars): The `byteCount' argument
6885         specifies the number of bytes to be converted, not the array size.
6886
6887 2002-03-23  Martin Baulig  <martin@gnome.org>
6888
6889         * reflection.h (MonoReflectionSigHelper): New type.
6890
6891         * reflection.c (mono_reflection_sighelper_get_signature_local),
6892         (mono_reflection_sighelper_get_signature_local): New functions.
6893
6894         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
6895         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
6896         interncalls.
6897
6898 2002-03-23  Martin Baulig  <martin@gnome.org>
6899
6900         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
6901         is_writeable is set.
6902         (mono_raw_buffer_update): New function to write the modified map
6903         back to disk.
6904
6905         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
6906
6907         * debug-symfile.c (mono_debug_update_symbol_file): Call
6908         mono_raw_buffer_update() when done writing.
6909
6910 2002-03-23  Martin Baulig  <martin@gnome.org>
6911
6912         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
6913
6914         * debug-symfile.c: Added support for arguments and local variables.
6915
6916 2002-03-23  Dick Porter  <dick@ximian.com>
6917
6918         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
6919         protected by ifdefs, hence breaking the w32 build.
6920
6921 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
6922
6923         * object.c: implement is_interned() the right way.
6924
6925 2002-03-21  Martin Baulig  <martin@gnome.org>
6926
6927         * debug-symfile.[ch]: New files to handle debugging information
6928         files. There's also support to dynamically update these symbol
6929         files to include machine dependent information.
6930
6931 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
6932
6933         * threads.c (mono_thread_create): new function to create thread
6934         from C
6935
6936 2002-03-20  Martin Baulig  <martin@gnome.org>
6937
6938         * icall.c (ves_icall_InternalInvoke): Create a new object if the
6939         method is a constructor.
6940         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
6941         points to ves_icall_InternalInvoke().
6942
6943 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
6944
6945         * file-io.c: Flush shouldn't throw exceptions.
6946
6947 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
6948
6949         * file-io.c: FileStream flush support; FileSetLength now
6950         restores file pointer.
6951
6952 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
6953
6954         * class.c: set image for pointer classes.
6955
6956 2002/03/19  Nick Drochak <ndrochak@gol.com>
6957
6958         * sysmath.c: Forgot one.
6959
6960 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
6961
6962         * sysmath.c: Avoid redefining existing names.
6963
6964 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
6965
6966         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
6967         handled by runtime as icall rather than dllimport from libm.so
6968         * file-io.c, file-io.h: fixed handle argument type.
6969
6970 2002-03-18  Dick Porter  <dick@ximian.com>
6971
6972         * reflection.c (mono_image_get_type_info): rename interface to
6973         iface, because of "#define interface struct" on windows.
6974
6975 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
6976
6977         * class.c, class.h: rename and export mono_ptr_class_get().
6978         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
6979         * reflection.c, reflection.h, icall.c: better/saner type name
6980         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
6981         method signatures.
6982
6983 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
6984
6985         * class.c (mono_class_init): removed hardcoded GHC_SLOT
6986
6987         * icall.c (ves_icall_InternalInvoke): impl.
6988
6989 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
6990
6991         * reflection.c: output the interface map table, too.
6992
6993 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
6994
6995         * class.c (class_compute_field_layout): separate computation of 
6996         static field layout
6997
6998 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
6999
7000         * icall.c: added System.Buffer support.
7001         * file-io.c: moved file icalls from PAL to FileStream.
7002
7003 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
7004
7005         * icall.c (ves_icall_System_Object_GetHashCode): impl.
7006
7007 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
7008
7009         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
7010
7011 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7012
7013         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
7014
7015 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
7016
7017         * debug-helpers.{c,h}: moved here from monograph some useful functions
7018         to locate a method by name/signature in a class or image. Included
7019         also a small and flexible IL disassembler.
7020
7021 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
7022
7023         * reflection.c: fixup tokens in methods with small header size, too.
7024
7025 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
7026
7027         * object.c (mono_string_to_utf8): remove assert(!error), instead
7028         print a warning. 
7029
7030 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
7031
7032         * icall.c: update to the new mono_Array_class_get interface.
7033
7034 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
7035
7036         * appdomain.c, object.c: Boehm-GC enable.
7037         * icall.c: make get_data_chunk() support split data requests.
7038         Ensure a class is initialized in more cases. Return only the first
7039         property found in GetProperties() or the compiler gets confused. 
7040         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
7041         * reflection.h, reflection.c: add fixup mechanism for field and method
7042         tokens. Initialize assembly->typeref in a single place. Output
7043         properties after events. Support custom attributes for events, too.
7044         Typo fix for paramter custom attrs.
7045
7046 2002-03-07  Martin Baulig  <martin@gnome.org>
7047
7048         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
7049
7050 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
7051
7052         * class.c (mono_array_class_get): fix. for multi. dim. arrays
7053
7054 2002-03-06  Martin Baulig  <martin@gnome.org>
7055
7056         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
7057         non-zero lower bounds. See testcases #F10-#F13.
7058
7059 2002-03-05  Martin Baulig  <martin@gnome.org>
7060
7061         * exception.c (mono_get_exception_argument_out_of_range): New exception.
7062
7063         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
7064         ves_icall_System_Array_GetValue(), only calculate the absolute array position
7065         here.
7066         (ves_icall_System_Array_SetValue): Likewise.
7067         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
7068         as argument and does the actual work. This function is used when copying a
7069         multi-dimensional array.
7070         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
7071         now do all the widening conversions of value types.
7072         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
7073
7074 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7075
7076         * class.c: remove some magic numbers and use the smbolic names,
7077         instead. Added init_events() to load event info at class init time.
7078         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
7079         and mono_metadata_methods_from_event().
7080         * reflection.h, reflection.c: added support for writing out the evnets
7081         related information.
7082
7083 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
7084
7085         * reflection.h, icall.c: use a different method (GetInterfaces)
7086         to gather interface info and add isbyref, isprimitive and
7087         ispointer to the ves_icall_get_type_info() return value.
7088
7089 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
7090
7091         * class.h: stared adding support for events.
7092         * icall.c: split find_members implementation. Added debug icall to get
7093         the address of an object.
7094         * reflection.c: handle TypeBuilders in mono_type_get_object().
7095
7096 2002-03-01  Martin Baulig  <martin@gnome.org>
7097
7098         * icall.c (ves_icall_System_Array_GetLength): This must throw an
7099         ArgumentOutOfRangeException(), not an ArgumentException().
7100         (ves_icall_System_Array_GetLowerBound): Likewise.
7101         (ves_icall_System_Array_GetValue): Improved argument checking.
7102         (ves_icall_System_Array_SetValue): Improved argument checking.
7103
7104 2002-03-01  Martin Baulig  <martin@gnome.org>
7105
7106         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
7107         called with invalid arguments rather than just dying with g_assert().
7108         (ves_icall_System_Array_SetValue): Likewise.
7109         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
7110         raise a NotImplementedException instead.
7111         (ves_icall_System_Array_GetLength): Added argument checking.
7112         (ves_icall_System_Array_GetLowerBound): Added argument checking.
7113
7114 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
7115
7116         * object.h (mono_assert): new macros mono_assert and
7117         mono_assert_not_reached
7118
7119 2002-02-28  Martin Baulig  <martin@gnome.org>
7120
7121         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
7122         and "System::String::IsInterned" to "System::String::_IsInterned".
7123
7124 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
7125
7126         * icall.c: remove hacks for typebuilder. Added icall to create a
7127         modified type from a tybebuilder.
7128         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
7129         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
7130         to create a backing MonoClass for a TypeBuilder.
7131
7132 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7133
7134         * class.c, class.h: more refactoring of class init.
7135         Export mono_class_setup_mono_type() and mono_class_setup_parent().
7136
7137 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
7138
7139         * marshal.c, marshal.h: start of marshaling interface.
7140
7141 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
7142
7143         * icall.c: fix order in assembly qualified name icall.
7144
7145 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
7146
7147         * class.c: do not free str, since we store it in the hash table.
7148         * reflection.h: add label field to MonoILExceptionInfo.
7149         * reflection.c: handle references to more than one assembly. Handle
7150         case when there isn't a module created in the assembly.
7151
7152 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
7153
7154         * class.c: Fix typo. Start refactoring of class init code.
7155
7156 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
7157
7158         * appdomain.c: exit with 1 on error.
7159         * class.c: we already have the name in MonoClassField.
7160         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
7161         MonoStreamHeader instead of an offset of image->raw_metadata.
7162
7163 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
7164
7165         * appdomain.c (mono_init): Be even more descriptive about the error.
7166
7167 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
7168
7169         * appdomain.c: give the user an informative message when corlib can't
7170         be loaded.
7171
7172 2002-02-26  Martin Baulig  <martin@gnome.org>
7173
7174         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
7175         New icall to get the time zone data.
7176
7177 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7178
7179         * reflection.c: set virtual and raw size of section correctly.
7180         * threads.c: transfer domain information to newly created threads.
7181
7182 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
7183
7184         * class.c: when instancing a class in a domain, load the default
7185         vaules for static fields from the constant table. Fix System.Enum to
7186         not be an enum.
7187         * icall.c: implement Object::GetType() internalcall. Implemented
7188         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
7189         Fixed checking of binding flags in find_members().
7190         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
7191         * reflection.c: handle enumerations when writing to the constant
7192         table. Use a different object cache for types.
7193
7194
7195 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
7196
7197         * object.c (mono_object_isinst): fix for arrays
7198
7199         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
7200
7201 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
7202
7203         * object.c: don't use mprotect ()  and fix intern pool hash table
7204         lookup for big endian systems.
7205
7206 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
7207
7208         * icall.c: change type_is_subtype_of () signature.
7209
7210 2002-02-21  Mark Crichton  <crichton@gimp.org>
7211
7212         * rand.c, rand.h: Added random number generator for
7213         System.Security.Cryptography classes.
7214
7215         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
7216
7217         * icall.c: Added System.Security.Cryptography calls.
7218
7219 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
7220
7221         * class.c, icall.c, metadata.c: better support for pointer types.
7222         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
7223         * reflection.c: Add support for getting custom attrs for properties
7224         and simplify some code.
7225
7226 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
7227
7228         * icall.c: change getToken () and add custom attribute GetBlob()helper
7229         method.
7230         * reflection.h: add custom attrs array to the reflection builder structures.
7231         * reflection.c: encode and emit custom attributes for all the relevant
7232         reflection objects. Cache fieldref and methodref tokens. Change
7233         mono_image_create_token() interface to take a MonoDynamicAssembly.
7234         More complete custom attributes decoder. Load custom attributes for
7235         Assembly, Field, Method and Constructor objects, too. Make the
7236         returned array an Attribute[] one, not object[]. Added
7237         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
7238         custom attribute constructor.
7239
7240 2002-02-20  Dick Porter  <dick@ximian.com>
7241
7242         * icall.c:
7243         * rawbuffer.c:
7244         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
7245         problem code out for now).
7246
7247 2002-02-19  Radek Doulik  <rodo@ximian.com>
7248
7249         * object.c (mono_ldstr): use hash table to avoid multiple swapping
7250
7251 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
7252
7253         * icall.c: register the GetCustomAttributes method.
7254         * object.c, object.h: add mono_string_new_len ().
7255         * reflection.h, reflection.c: added mono_runtime_invoke(),
7256         mono_install_runtime_invoke(). Added
7257         mono_reflection_get_custom_attrs () to load custom attributes and
7258         create the attribute objects.
7259
7260 2002-02-19  Dick Porter  <dick@ximian.com>
7261         * threads-dummy-types.c:
7262         * threads-dummy-types.h:
7263         * threads-dummy.c:
7264         * threads-dummy.h:
7265         * threads-pthread-types.c:
7266         * threads-pthread-types.h:
7267         * threads-pthread.c:
7268         * threads-pthread.h:  Deleted obsolete files
7269
7270 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
7271
7272         * class.c (mono_class_vtable): runtime init the class when we
7273         allocate static class data.
7274
7275         * icall.c (ves_icall_System_Array_SetValue): check for null values.
7276
7277         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
7278         and String - but we will need generic marshalling support in the
7279         future. 
7280         (mono_init): set the domain name in a ms compatible way
7281
7282         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
7283         String[].
7284
7285 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
7286
7287         * object.c (mono_array_clone): use alloca() instead of g_malloc  
7288         for sizes
7289
7290         * appdomain.c (mono_domain_unload): impl.
7291
7292 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
7293
7294         * appdomain.c, object.c: fix intern pool implementation.
7295         * class.c: fix alignment code.
7296
7297 2002-02-16  Radek Doulik  <rodo@ximian.com>
7298
7299         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
7300         and s2 > s1, just copy lower bytes to be compatible with little
7301         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
7302         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
7303
7304         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
7305         force big_endian to be 1 for big endian machines 
7306         (ves_icall_iconv_new_decoder): ditto
7307
7308 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
7309
7310         * socket-io.c (convert_sockopt_level_and_name): If the system
7311         doesn't define SOL_IP or SOL_TCP, get them by hand using
7312         getprotobyname() and caching the values (because this could be a
7313         slow operation).
7314         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
7315         Use the appropriate struct when the system does support it. Ie,
7316         not all systems have struct ip_mreqn so use struct ip_mreq when
7317         appropriate.
7318
7319 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
7320
7321         * reflection.c: handle finally clauses.
7322
7323 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
7324
7325         * socket-io.c: use g_snprintf() instead of snprintf.
7326
7327 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
7328
7329         * reflection.c (mono_param_get_objects): Cast second argument to
7330         mono_method_get_param_names to a const char** to silence the
7331         compiler warning.
7332
7333         * appdomain.c (mono_domain_assembly_open): Put parens around the
7334         truth statement in the for-loop.
7335
7336         * unicode.c (iconv_convert): Got rid of a compiler warning about
7337         int i being unused when the system has a new iconv.
7338         (iconv_get_length): Same.
7339
7340         * image.c (load_class_names): Cast the second argument to
7341         g_hash_table_insert() to char* to hush compiler warnings about the
7342         arg being a const.
7343         (mono_image_open): Same here.
7344
7345         * socket-io.c: Don't conditionally include sys/filio.h or
7346         sys/sockio.h here anymore since we now get them from
7347         io-layer/io-layer.h
7348         (inet_pton): If the system doesn't support inet_aton, implement
7349         using inet_addr and also #define INADDR_NONE if it isn't defined
7350         by the system.
7351
7352 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
7353
7354         * metadata.c, metadata.h: added function to get packing and size info
7355         of a typedef.
7356         * reflection.h, reflection.c: handle field RVA data. Save info about
7357         the table layout if needed. Assign typedef indexes to all the types
7358         before dumping the info about them to avoid forward reference problems.
7359
7360 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
7361
7362         * socket-io.c (convert_sockopt_level_and_name): ifdef
7363         SO_ACCEPTCONN because it is not defined on my system (old debian)
7364
7365 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
7366
7367         * opcode.c: use stddef.h to get NULL.
7368
7369 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
7370
7371         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
7372         for FIONBIO, FIONREAD and SIOCATMARK.
7373         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
7374         define INADDR_NONE and besides, inet_addr() is deprecated and
7375         should not be used. Use inet_pton() instead - it also has the
7376         added bonus that it can easily handle IPv6 addresses as well.
7377         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
7378
7379 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
7380
7381         * decimal.c: remove _MSC_VER conditional.
7382
7383 2002-02-13  Dick Porter  <dick@ximian.com>
7384
7385         * socket-io.c: 
7386         * icall.c: Internal calls for Blocking, Select, Shutdown,
7387         GetSocketOption and SetSocketOption
7388
7389 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7390
7391         * assembly.cs: better resolver: use it instead of some kludgy
7392         code.
7393
7394 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
7395
7396         * reflection.c: the best way to speed-up the compiler is to avoid
7397         infinite loops.
7398
7399 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
7400
7401         * class.c (mono_class_vtable): changed the object layout
7402         (obj->vtable->class). 
7403         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
7404
7405 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
7406
7407         * assembly.c: look for assemblies in the assembly dir, too.
7408
7409 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7410
7411         * class.c: fix thinko in mono_class_from_type().
7412
7413 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
7414
7415         * exception.h, exception.c: added TypeLoadException.
7416         * object.h, object.c: added mono_array_clone ().
7417         * icall.c: handle throwOnError in AssemblyGetType().
7418         Added Array.Clone().
7419         * opcode.h, opcode.c: use a single value for the opcode val.
7420         Compile fix for non-gcc compilers.
7421
7422 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
7423
7424         * opcodes.c, opcodes.h: export interesting info about opcodes.
7425
7426 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
7427
7428         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
7429         icalls. 
7430
7431         * class.c (class_compute_field_layout): set element_class for enums
7432         (mono_class_create_from_typedef): set element_class for normal classes
7433
7434         * icall.c (ves_icall_System_Enum_get_value): impl.
7435
7436         * class.c (mono_class_create_from_typedef): do not set valuetype
7437         flag for System.ValueType and System.Enum
7438
7439 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
7440
7441         * unicode.c (iconv_convert): fix big endian problem.
7442
7443 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
7444
7445         * class.c: add asserts if we are ever going to scribble over memory.
7446         * socket-io.c: not all systems have AF_IRDA defined.
7447
7448 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
7449
7450         * class.c (class_compute_field_layout): do not consider static
7451         fields to compute alignment
7452
7453 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
7454
7455         * appdomain.c (mono_appdomain_get): impl.
7456         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
7457
7458 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
7459
7460         * icall.c: ignore "file://" prefix when loading an assembly.
7461
7462 2002-01-23  Dick Porter  <dick@ximian.com>
7463
7464         * socket-io.c:
7465         * icall.c:
7466         * Makefile.am: Added socket support
7467
7468 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
7469
7470         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
7471         code back.  This should return the assemblies that are loaded by
7472         the runtime on behalf of an application domain. 
7473
7474         The current implementation is still broken, it just returns every
7475         assembly loaded, but until we get real applications domain this
7476         will do.
7477
7478 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
7479
7480         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
7481         AppDomain object.
7482
7483 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
7484
7485         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
7486         the mono_class_from_name lookup.
7487         (ves_icall_get_parameter_info): ditto.
7488         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
7489         method.
7490         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
7491
7492 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
7493
7494         * class.c: load also nested classes on class init.
7495         System.ValueType instance methods gets passed boxed
7496         values, unless methods in derived classed that get a pointer to the
7497         data.
7498         * icall.c: use better name parsing code in GetType().
7499         * image.c, image.h: add mono_image_loaded ().
7500         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
7501         * reflection.c, reflection.h: added mono_reflection_parse_type().
7502
7503 2002-01-22  Veronica De Santis <veron78@interfree.it>
7504
7505         * icall.c : Added mapping of internal calls for Manual and Auto reset events
7506         * threads.c : Added the implementation of internal calls for events
7507         * threads.h : Added prototypes of internal calls for events
7508         
7509 2002-01-21  Radek Doulik  <rodo@ximian.com>
7510
7511         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
7512
7513 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
7514
7515         * class.c (mono_class_init): set min_align to 1 (instead of 0)
7516         (mono_class_value_size): use min_align
7517
7518 2002-01-20  Dick Porter  <dick@ximian.com>
7519
7520         * threads.h:
7521         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
7522         so it compiles on w32.
7523
7524 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
7525
7526         * metadata.c (mono_type_stack_size): impl.
7527
7528         * class.c (mono_class_get_field): impl. memberref token
7529
7530 2002-01-16 Veronica De Santis <veron78@@interfree.it>
7531
7532         * icall.h : Added the internal calls mapping for CreateMutex_internal
7533                     and ReleaseMutex_internal.
7534         * threads.h : Added the prototype of mutexes internal calls.
7535         * threads.c : Added the implementations of mutexes internal calls.
7536
7537 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
7538
7539         * metaparse.h: removed unused file.
7540         * reflection.c, reflection.h: added stream_data_align () function 
7541         to align data in streams and keep stream aligned. Add support for
7542         exception support in method headers.
7543
7544 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
7545
7546         * unicode.c: make iconv_convert () return the number of bytess written
7547         in the output buffer.
7548
7549 2002-01-15  Dick Porter  <dick@ximian.com>
7550         * threads.c: Make the runtime's idea of infinite timeouts coincide
7551         with the class library's
7552
7553         Fix a particularly egregious bug in mono_thread_cleanup(). That
7554         code was so utterly bogus it must have been written on a Monday.
7555
7556 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
7557
7558         * reflection.h: add subtypes field to TypeBuilder.
7559         * reflection.c: encode constants for literal fields.
7560         Handle subtypes. Fix user string token (and add a zero byte)
7561         at the end.
7562         
7563 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
7564
7565         * class.c (mono_class_init): bug fix: assign slot numbers for
7566         abstract methods.
7567
7568 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
7569
7570         * reflection.c: don't try to output a code RVA for abstract methods.
7571         Small fixes for method header format. Output parameter info to the
7572         ParamDef table. Save method overriding info to MethodImpl table.
7573         Fix property support. Allow typedef.extends to be a type in the
7574         building assembly.
7575         * verify.c: fix off-by-one error.
7576
7577 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
7578
7579         * class.c: fix mono_class_from_mono_type () for szarray types.
7580         Remove unused cache check in mono_class_from_type_spec().
7581         * icall.c: *type_from_name () functions handle simple arrays and byref.
7582         * reflection.c: handle byref and szarray types. Handle methods without
7583         body (gets P/Invoke compilation working). Handle types and fields in
7584         get_token ().
7585         * reflection.h: add rank to MonoTypeInfo.
7586
7587 2002-01-10  Dick Porter  <dick@ximian.com>
7588
7589         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
7590         internal calls
7591
7592 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
7593
7594         * icall.c: initialize class in type_from_handle ().
7595         Loop also in parent classes for get_method ().
7596         * reflection.c: properly encode class and valuetype types.
7597         Start on encoding TypeBuilder types. Handle fieldrefs.
7598         Use correct length when registering a user string.
7599         Handle ConstructorBuilder and MonoMethod in get_token ().
7600         Make mono_type_get_object () aware of cached types.
7601         * object.c: back out change to mono_string_new ().
7602
7603 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
7604         * object.c: mono_string_new should return a NULL when the string 
7605         passed in is NULL -- not try to deference it.
7606         
7607 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
7608
7609         * icall.c: hack to make IsSubType work for TypeBuilders.
7610         * reflection.c: emit constructors before methods.
7611         Retrieve param names in mono_param_get_objects().
7612
7613 2002/01/05  Nick Drochak  <ndrochak@gol.com>
7614
7615         * Makefile.am: fix list of headers and sources so automake 1.5
7616         doesn't complain. Removed \# at end of list.
7617
7618 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
7619
7620         * reflection.c: get token for a method ref. Set return type of
7621         constructor to void.
7622         * loader.c: debug message.
7623         * class.c: typo fix.
7624
7625 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
7626
7627         * icall.c: fix array init with rank > 1. FindMembers
7628         loops in parent class as well.
7629         * image.c: do not insert nested types in name cache.
7630         * reflection.c: warning fix.
7631         * reflection.h: add override method (for interface impl).
7632
7633 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
7634
7635         * metadata.c: fix customattr decoding.
7636
7637 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
7638
7639         * rawbuffer.cs: Added native Win32 implementation, avoids using
7640         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
7641
7642 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
7643
7644         * class.c: make the low-level routines handle the cache.
7645
7646 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
7647
7648         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
7649
7650 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
7651
7652         * class.c: fix mono_array_element_size() for objects.
7653         * class.h, class.c: add properties to MonoClass and load them
7654         at init time.
7655         * icall.c: check with isinst() when assigning a value to an array
7656         instead of requiring the classes to match exactly.
7657         Implemented icall for System.Type::GetType().
7658         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
7659         enums. Handle bindingflags when looking for methods and fields.
7660         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
7661         and mono_metadata_methods_from_property().
7662         * reflection.h, reflection.c: added structures for propreties,
7663         parameters and enums. Implemented mono_property_get_object() and
7664         mono_param_get_objects().
7665
7666 2001-12-18  Dick Porter  <dick@ximian.com>
7667
7668         * file-io.c: Use mono_string_to_utf16() instead of
7669         mono_string_chars()
7670
7671         * object.c: Added mono_string_to_utf16(), which copies the non
7672         NULL-terminated MonoString into a new double-null-terminated
7673         buffer.
7674
7675 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
7676
7677         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
7678
7679 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
7680
7681         * file-io.c: raise exceptions if handle is invalid.
7682
7683 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
7684
7685         * assembly.c: yet another check for mscorlib.
7686         * class.c, class.h: load nesting info for classes.
7687         * icall.c: many new functions to support the Reflection classes.
7688         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
7689         * reflection.h, reflection.c: mono_image_create_token(),
7690         mono_assembly_get_object(), mono_type_get_object(),
7691         mono_method_get_object(), mono_field_get_object(): methods to return
7692         objects that parallel the C representation of assemblies, types,
7693         methods, fields.
7694
7695 2001-12-11  Dick Porter  <dick@ximian.com>
7696
7697         * icall.c:
7698         * file-io.c: Internal calls for file IO.
7699
7700 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
7701
7702         * tabledefs.h: missing FileAttributes.
7703         * verify.h, verify.c: use is_valid_string () to simplify and check for
7704         valid strings more correctly. Fix warnings and speeling.
7705         Check more tables: Filed, File, ModuleRef, StandAloneSig.
7706         Check code: branches, maxstack, method calls.
7707
7708 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
7709
7710         * object.c (mono_object_allocate): removed static, so that the jit
7711         can allocate value types.
7712
7713         * icall.c (ves_icall_System_DateTime_GetNow): impl.
7714
7715 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
7716
7717         * class.c: init enum types right away and register the
7718         token->MonoClass map in mono_class_create_from_typedef ().
7719         * verify.h, verify.c: first cut of the verifier.
7720         * pedump.c: add --verify switch to verify metadata tables.
7721         * tabledefs.h: add some missing enums.
7722
7723 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
7724
7725         * class.c (mono_install_runtime_class_init): impl.
7726         (mono_class_init): renamed mono_class_metadata_init to
7727         mono_class_init, also removed the metadata_inited flag
7728
7729         * object.c (mono_object_isinst): use faster algorithm
7730
7731 2001-11-30  Radek Doulik  <rodo@ximian.com>
7732
7733         * mono-endian.h: reverted last change
7734         added function prototypes
7735
7736         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
7737         add mono-endian.c back
7738
7739         * mono-endian.c: returned back, as Paolo pointed out, it's needed
7740         for unaligned access, I've mistaked it with endianess. I am
7741         sorry.
7742         (mono_read16): fix reverted endianess
7743         (mono_read64): ditto
7744         (mono_read32): ditto
7745
7746 2001-11-30  Dick Porter  <dick@ximian.com>
7747
7748         * exception.c: Implement mono_exception_from_name()
7749
7750 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
7751
7752         * metadata.h, metadata.c: remove params_size and locals_size and their
7753         calculation from the metadata code: they are only usefult to the
7754         interp.
7755
7756 2001-11-29  Radek Doulik  <rodo@ximian.com>
7757
7758         * object.c (mono_ldstr): swap bytes here, it's probably not the
7759         best place, but works for me now, I'll redo it once I know mono
7760         better, also note that I add PROT_WRITE and don't reset back, also
7761         note that it's only affects big endians, so x86 should be OK
7762
7763         * mono-endian.h (read16): use just glib macros for both endians
7764
7765         * mono-endian.c: removed as glib macros are used in in
7766         mono-endian.h so we don't need to care about endianess for read
7767         macros as glib does that for us already
7768
7769 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
7770
7771         * class.h, class.h: take minimum alignment into consideration so
7772         that the fields of a class remain aligned also when in an array.
7773
7774 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
7775
7776         * loader.h, loader.c: add mono_method_get_param_names().
7777         * class.c: 0-init class fields.
7778
7779 2001-11-26  Dick Porter  <dick@ximian.com>
7780
7781         * icall.c:
7782         * threads-types.h:
7783         * threads.c: New file that handles System.Threading on all platforms
7784
7785         * object.c: 
7786         * object.h: Remove the synchronisation struct from MonoObject,
7787         replace it with a pointer that gets initialised on demand
7788
7789         * Makefile.am: Replace all the system-specific threading code with
7790         a single file that uses the new wrapper library
7791
7792 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
7793
7794         * class.c, class.h: add mono_install_trampoline() so that the runtime
7795         can register a function to create a trampoline: removes the ugly
7796         requirement that a runtime needed to export arch_create_jit_trampoline.
7797         * object.h, object.c: added mono_install_handler() so that the runtime
7798         can install an handler for exceptions generated in C code (with
7799         mono_raise_exception()). Added C struct for System.Delegate.
7800         * pedump.c: removed arch_create_jit_trampoline.
7801         * reflection.c: some cleanups to allow registering user strings and
7802         later getting a token for methodrefs and fieldrefs before the assembly
7803         is built.
7804         * row-indexes.h: updates and fixes from the new ECMA specs.
7805
7806 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
7807
7808         * class.h, class.c: add enum_basetype field to MonoClass.
7809         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
7810         to get index in the constant table reated to a field, param or
7811         property.
7812         * reflection.h, reflection.c: handle constructors. Set public-key and
7813         version number of the built assembly to 0.
7814         * row-indexes.h: update from new ECMA spec.
7815
7816 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
7817
7818         * class.h, class.c: add a max_interface_id to MonoClass.
7819         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
7820         since it's used to do that. Added mono_type_type_from_obj().
7821         Make GetType() return NULL instead of segfaulting if the type was not
7822         found. Handle simple arrays in assQualifiedName.
7823         * object.h: add a struct to represent an Exception.
7824         * reflection.c: output call convention in method signature.
7825         Add code to support P/Invoke methods and fixed offsets for fields.
7826
7827 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
7828
7829         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
7830         the value.
7831         * icall.c: use mono_array_addr instead of array->vector: fixes the
7832         reflection image writing.
7833         * reflection.c: init call convention byte to 0 in method signature.
7834         Encode the property signature. Don't output property-related methods
7835         twice. Really process the properties for a type (don't cast a field to
7836         a property, my mom always told me that).
7837         Fix 64 bit issues in pointer alignment in a different and more
7838         readable way.
7839
7840 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
7841
7842         * loader.h: Removed type class from MonoDefaults, added monotype
7843
7844         * loader.c: Loaded MonoType, removed loading of Type
7845
7846         * icall.c (my_mono_new_object): Now returns a System.MonoType,
7847         and fills in System.Type._impl with a RuntimeTypeHandle rather
7848         than the actual MonoClass *
7849
7850         (ves_icall_type_from_handle): change from type_class to
7851         monotype_class
7852
7853         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
7854         implemented
7855
7856         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
7857         implemented
7858
7859         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
7860
7861         (ves_icall_System_Reflection_Assembly_GetType): implemented
7862
7863         (ves_icall_System_MonoType_assQualifiedName): implemented
7864
7865         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
7866
7867 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
7868
7869         * assembly.c (mono_assembly_open): Implement a cache for the
7870         assemblies. 
7871
7872         (mono_assembly_close): only destroy the assembly when the last
7873         reference is gone.
7874         
7875 2001-11-09  Dick Porter  <dick@ximian.com>
7876
7877         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
7878
7879 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
7880
7881         * class.c (mono_class_metadata_init): bug fix: compute the right slot
7882
7883 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
7884
7885         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
7886         from Martin Weindel.
7887         * object.h: add mono_string_chars ().
7888
7889 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
7890
7891         * reflection.c (build_compressed_metadata): Eliminates warnings
7892         and uses 64-bit clean code.
7893
7894         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
7895         (mono_type_equal): Change signature to eliminate warnings.
7896
7897 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
7898
7899         * icall.c, loader.c: remove the internalcall array constructors.
7900         Changes to match the new MonoArray structure.
7901         * object.h, object.c: an array object doesn't allocate an extra
7902         vector. Add mono_array_new_full () to create jagged arrays easily.
7903
7904 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
7905
7906         * metadata.h, metadata.c: add mono_metadata_field_info () to
7907         retreive all the info about a field from vairous tables.
7908         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
7909         * class.h, class.c: augment MonoClassField with more info.
7910         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
7911         policy and load a field's RVA if needed.
7912
7913 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
7914
7915         * class.c (mono_class_metadata_init): create a trampoline for all
7916         virtual functions instead of actually compiling them.
7917
7918 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
7919
7920         * class.h, class.c: include name in MonoClassField.
7921         * class.c: fix fundamental type of System.Object and System.String.
7922         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
7923         tokens in ldtoken.
7924         * icall.c: remove internalcalls for the Reflection stuff that is now
7925         done in C# code.
7926         * loader.c: mono_field_from_memberref () implementation.
7927         * mono-endian.c: thinko (s/struct/union/g).
7928         * object.c, object.h: make the mono_string_* prototypes actually use
7929         MonoString instead of MonoObject.
7930         * reflection.c, reflection.h: updates for changes in the reflection
7931         code in corlib: we use C structures that map to the actual C# classes.
7932         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
7933         fat method header if needed and use the info from the ILGenerator for
7934         methods. Handle fields in types. Misc fixes.
7935
7936 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
7937
7938         * class.c (mono_class_metadata_init): bug fix: always allocate
7939         space for static class data
7940
7941 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
7942
7943         * class.c (mono_compute_relative_numbering): use relative
7944         numbering to support fast runtime type checks.
7945
7946 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
7947
7948         * class.c (mono_class_create_from_typeref): added debugging output
7949         to print class name when MonoDummy is returned instead of real class
7950
7951 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
7952
7953         * class.c (mono_class_metadata_init): interface offset table now
7954         contains pointers into the vtable - this is more efficient for the jit
7955
7956 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
7957
7958         * class.c (mono_class_metadata_init): use a temporary vtable (the
7959         old algorithm only worked for the interpreter, but not for the jit)
7960
7961 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
7962
7963         * loader.c (method_from_memberref): use mono_class_get to get the
7964         class of an array instead of using System.Array directly.
7965         (mono_get_method): also add MEMBERREF methods to the method cache
7966         which usefull for arrays.
7967
7968 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
7969
7970         * pedump.c (arch_compile_method): added to compute vtable entry
7971
7972         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
7973         number of interfaces.
7974         
7975         * class.h: merged MonoArrayClass into MonoClass
7976
7977         * class.c (mono_class_create_from_typedef): compute the vtable size and
7978         allocate space to include the vtable inside MonoClass
7979         (mono_class_metadata_init): initialize the vtable
7980
7981 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
7982
7983         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
7984         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
7985         * image.c: endian fixes by Laurent Rioux.
7986         * object.h, object.c: rename MonoStringObject to MonoString and
7987         MonoArrayObject to MonoArray. Change some function names to conform to
7988         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
7989         guint16* as first argument, so don't use char*.
7990         Provide macros to do the interesting things on arrays in a portable way.
7991         * threads-pthread.c: updates for the API changes and #include <sched.h>
7992         (required for sched_yield()).
7993         * icall.c: updates for the API changes above.
7994         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
7995         platforms that need them.
7996
7997 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
7998
7999         * class.c: set the correct type for all the fundamental
8000         type when loading the class.
8001
8002 2001-10-05  Dick Porter  <dick@ximian.com>
8003
8004         * threads-pthread.c (pthread_mutex_timedlock): Simple
8005         compatibility version for C libraries that lack this call.
8006
8007 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
8008
8009         * class.c: MonoTypes stored in MonoClass are stored as
8010         fundamental MonoTypes when the class represents a
8011         fundamental type (System.Int32, ...).
8012         The TypeHandle return by ldtoken is a MonoType*.
8013         * icall.c: ves_icall_get_data_chunk () write out all the
8014         PE/COFF stuff. Implement ves_icall_define_method (),
8015         ves_icall_set_method_body (), ves_icall_type_from_handle ().
8016         * image.c: properly skip unknown streams.
8017         * loader.h, loader.c: add type_class to mono_defaults.
8018         * metadata.c, metadata.h: export compute_size () as
8019         mono_metadata_compute_size () with a better interface.
8020         Typo and C&P fixes.
8021         * pedump.c: don't try to print the entry point RVA if there is no entry point.
8022         * reflection.c, reflection.h: many cleanups, fixes, output method
8023         signatures and headers, typedef and typeref info, compress the metadata
8024         tables, output all the heap streams, cli header etc.
8025         * row-indexes.h: typo fixes.
8026
8027 2001-10-04  Dick Porter  <dick@ximian.com>
8028
8029         * object.h: Add a synchronisation mutex struct to MonoObject
8030
8031         * object.c (mono_new_object): Initialise the object
8032         synchronisation mutexes
8033
8034         * icall.c: System.Threading.Monitor internal calls
8035         
8036         * threads-pthread.h:
8037         * threads-pthread.c: System.Threading.Monitor internal calls
8038
8039         * threads-types.h: New file, includes the system-specific thread
8040         structures
8041         
8042         * threads-pthread-types.h:
8043         * threads-pthread-types.c: New files, handle pthread-specific
8044         synchronisation types
8045
8046         * threads-dummy-types.h: 
8047         * threads-dummy-types.c: New files of dummy support for
8048         thread-specific types
8049
8050         * metadata.c:
8051         * image.c:
8052         * pedump.c: include mono-endian.h not endian.h
8053         
8054         * Makefile.am: More threads files.
8055         Name mono-endian.h not endian.h
8056
8057 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
8058
8059         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
8060         stuff and implement a few more bits.
8061         * icall.c: a field needs to be dereferenced twice. Do not use the same
8062         name for two variables in the same scope.
8063         * image.c, image.h: cleanups.
8064
8065 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
8066
8067         * class.c (mono_class_metadata_init): bug fix: compute the right size
8068
8069 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
8070
8071         * icall.c: implemented some of the Reflection internalcalls.
8072         * image.c, image.h: start writing out the PE/COFF image.
8073         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
8074         that does the reverse than decode_blob_size ().
8075         * object.c: use mono_metadata_encode_value (). Move here
8076         temporary implementation of mono_string_to_utf8 ().
8077         * rawbuffer.c: make malloc_map static.
8078
8079 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
8080
8081         * metadata.c: fix type comparison for arrays.
8082         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
8083         Added a couple of new classes to monodefaults.
8084         * icall.c: added a couple of Reflection-related internalcalls.
8085         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
8086         Added a byval_arg MonoType to MonoClass.
8087
8088 2001-09-28  Dick Porter  <dick@ximian.com>
8089
8090         * icall.c:
8091         * threads-pthread.h: 
8092         * threads-pthread.c: Implemented internal calls for
8093         LocalDataStoreSlot operations.  Applied mutexes around all shared
8094         data.  Reworked the thread creation and Start() operations to
8095         avoid a race condition.
8096         
8097         * threads-dummy.h:
8098         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
8099
8100 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
8101
8102         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
8103
8104 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
8105
8106         * class.c, loader.c: warn and return NULL instead of erroring out.
8107         * icall.c: added System.AppDomain::getCurDomain().
8108         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
8109
8110 2001-09-25  Dick Porter  <dick@ximian.com>
8111
8112         * threads-pthread.h:
8113         * threads-pthread.c: Implemented timed thread joining and added
8114         System.Threading.Thread::Join_internal internal call
8115
8116         * icall.c: Added System.Threading.Thread::Join_internal internal call
8117
8118         * threads-dummy.h:
8119         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
8120
8121 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
8122
8123         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
8124         mono_string_intern () to implement the semantics of the ldstr opcode
8125         and the interning of System.Strings.
8126         * icall.c: provide hooks to make String::IsIntern and String::Intern
8127         internalcalls.
8128
8129 2001-09-23  Dick Porter  <dick@ximian.com>
8130
8131         * threads-dummy.c: 
8132         * threads-dummy.h: New files of dummy threading routines
8133
8134         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
8135         support code based on system specifics
8136
8137         Rename PTHREAD_LIBS to THREAD_LIBS
8138         
8139 2001-09-23  Dick Porter  <dick@ximian.com>
8140
8141         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
8142         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
8143         internal calls.
8144         (mono_thread_init): Set up a Thread object instance to return when
8145         the main thread calls Thread.CurrentThread
8146         (mono_thread_cleanup): Wait for all subthreads to exit
8147
8148         * icall.c: New internal calls for System.Threading.Thread::Sleep
8149         (including Schedule) and CurrentThread
8150
8151         * threads.h: New file, to insulate thread-specific stuff from the
8152         rest of the code
8153
8154 2001-09-21  Dick Porter  <dick@ximian.com>
8155
8156         * threads-pthread.h: 
8157         * threads-pthread.c: New file, for handling pthreads-style
8158         threading support.  Start() now starts a new thread and executes
8159         the ThreadStart delegate instance.
8160
8161         * icall.c: Added the internalcall for
8162         System.Threading.Thread::Start_internal
8163
8164         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
8165
8166 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
8167
8168         * loader.c: work around the different signatures for delegates
8169         constructors csc generates in compiled code vs the ones compiled in mscorlib.
8170
8171 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
8172
8173         * class.h, class.c: add mono_class_get_field_from_name ().
8174         * *: Fix C comments and other ANSI C issues.
8175
8176 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
8177
8178         * endian.h, assembly.c: fix some endianness issues.
8179
8180 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
8181
8182         * loader.h, load.c: add delegate_class to mono_defaults.
8183         Handle runtime provided methods in mono_get_method ().
8184
8185 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
8186
8187         * loader.c (mono_get_method): use pinvoke for internal call
8188
8189         * icall.c: use pinvoke for internal call
8190
8191         * loader.c (method_from_memberref): set the method name
8192
8193 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
8194
8195         * metadata.c: help the compiler generate better code for
8196         mono_class_from_mono_type ().
8197
8198 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
8199
8200         * class.c (mono_class_metadata_init): delayed computing of the
8201         class size to mono_class_metadata_init ()
8202
8203 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
8204
8205         * class.c, class.h: add an interfaces member to MonoClass.
8206         * image.c, image.h: add assembly_name field to MonoImage
8207         from the assembly table.
8208         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
8209
8210 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
8211
8212         * class.c: Handle Array in mono_class_from_mono_type ().
8213         * metadata.c, pedump.c: some endian fixes.
8214
8215 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
8216
8217         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
8218         * metadata.c: fix small problem introduced with the latest commit.
8219
8220 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
8221
8222         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
8223         We don't need a MonoMetadata pointer anymore to compare signatures in
8224         mono_metadata_signature_equal (), update callers.
8225         Reduced memory usage an number of allocations for MonoMethodHeader and
8226         MonoMethodSignature.
8227
8228 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
8229
8230         * metadata.c: added compare for szarray.
8231
8232 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
8233
8234         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
8235         and add a couple more types to it and mono_defaults. Give an hint on
8236         classes that need implementing in our corlib and are referenced
8237         in mscorlib.
8238
8239 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
8240
8241         * class.h, class.c: keep track if a class is also an Enum.
8242         * loader.c: Implement a couple more types for use in libffi
8243         marshalling. Gives better diagnostics when failing to dlopen
8244         a library. Set method->klass for P/Invoke methods, too.
8245
8246 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
8247
8248         * class.c, class.h: add a MonoType this_arg to MonoClass that
8249         represents a pointer to an object of the class' type that
8250         can be used by the interpreter and later the type cache.
8251         Add best guess alignment info for valuetype objects.
8252
8253 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
8254
8255         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
8256         into MonoType: one less level of indirection and allocation and
8257         simplifies quite a bit of code. Added cache for MonoTypes that are
8258         used frequently, so that we don't need to allocate them all the time.
8259
8260 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
8261
8262         * class.c (mono_class_create_from_typedef): System.Enum is also a
8263         value type, although it does not derive from System.ValueType
8264         (maybe a bug in the ms compiler?)
8265
8266         * metadata.c (mono_type_size): return the right size for value types
8267
8268         * loader.c (mono_get_method): only initialize method header if not abstract
8269
8270         * class.c (mono_class_from_mono_type): use mono_default values. 
8271
8272 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
8273
8274         * *: use MonoClass pointers instead of <type_tokens>
8275         
8276         * class.h: new flag: metadata_inited.
8277
8278         * class.c (mono_class_metadata_init): impl.
8279         (mono_class_instance_size): impl.
8280         (mono_class_data_size): impl.
8281
8282 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
8283
8284         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
8285         MonoClass now has the name and name_space fields. 
8286         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
8287         mono_get_method () takes and optional MonoClass as argument.
8288         Removed mono_typedef_from_name() and added mono_class_token_from_name()
8289         instead that takes advantage of a map from class names to typedef
8290         tokens in MonoImage.
8291
8292 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
8293
8294         * metadata.c: zero is not a valid alignment boundary.
8295         Merge MONO_TYPE_VOID in default decoding code.
8296
8297 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
8298
8299         * image.h: merged MonoMetadata into MonoImage
8300
8301         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
8302         identify the type of elements.
8303
8304 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
8305
8306         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
8307         * cil-coff.h: split MonoMSDOSHeader and add size info.
8308         * image.c: add some consistency checks.
8309         * metadata.c: fix row size computation: one programmer
8310         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
8311         add explanation for the locator routine.
8312         Fix decoding of size in method header.
8313         
8314 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
8315
8316         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
8317         (g_concat_dir_and_file): Bring g_concat_dir_and_file
8318         function from gnome-libs.  This uses the right path separator
8319         based on the OS, and also works around a bug in some systems where
8320         a double slash is not allowed. 
8321         (default_assembly_name_resolver): Use g_concat_dir_and_file
8322         (mono_assembly_open): ditto.
8323
8324 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
8325
8326         * metadata.c (mono_metadata_signature_equal): impl.
8327
8328         * *: void is now a realy MonoType (instead of using NULL)
8329         
8330         * metadata.c (do_mono_metadata_parse_type): use
8331         mono_metadata_parse_type to parse void value.
8332
8333 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
8334
8335         * metadata.c, metadata.h: in the signature and method header store
8336         only the space required for holding the loca vars and incoming arguments.
8337
8338 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
8339
8340         * metadata.c (do_mono_metadata_parse_type): treat void like any
8341         other type (instead of assigning NULL);
8342
8343 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
8344
8345         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
8346
8347 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
8348
8349         * image.c (do_mono_image_open): added a cache for arrays.
8350
8351 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
8352
8353         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
8354         decode a single column from a row in a metadata table and changes
8355         to take advantage of it in the typedef locator (gives a nice speed up).
8356         Store offset info for function params.
8357
8358 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
8359
8360         * image.h (MONO_IMAGE_IS_CORLIB): removed 
8361
8362 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
8363
8364         * assembly.c: how could mono_assembly_close () had ever worked?
8365         * metadata.c, metadata.h: provide offset info for local vars.
8366         Implement mono_type_size () to take care of alignment as well
8367         as size (it was mono_field_type_size in cli/class.c before).
8368
8369 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
8370
8371         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
8372
8373         * assembly.h (CORLIB_NAME): set to corlib.dll
8374
8375         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
8376
8377 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
8378
8379         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
8380         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
8381         tokentype.h: massive namespace cleanup.
8382
8383 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
8384
8385         * metadata.h, metadata.c: decode exception clauses when parsing method header.
8386
8387 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
8388
8389         * metadata.c (mono_metadata_free_type): added check for type !=
8390         NULL (void) before calling mono_metadata_free_type()
8391
8392 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
8393
8394         * metadata.h, row_indexes.h: added header with enumerations to use
8395         to index in the columns from tables in metadata and to decode coded
8396         tokens: we should start using this instead of embedding magic numbers
8397         all over the code.
8398
8399 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
8400
8401         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
8402         Move metadata_t info from cli_image_info_t to MonoImage, where
8403         it's easily accessible. Changed all the uses accordingly.
8404         Added the method and class caches to MonoImage.
8405         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
8406         and mono_metadata_decode_value () signature to be more consistent
8407         with the other parse functions (and simplify code). Taken advantage
8408         of zero-length array allocation with GCC. Removed reduntant (and
8409         wrong) MonoFieldType struct and use MonoParam instead. Changed
8410         mono_metadata_parse_field_type () to use common code for parsing.
8411         Added mono_metadata_typedef_from_field () and
8412         mono_metadata_typedef_from_method () to lookup a typedef index from a
8413         field or method token.
8414         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
8415
8416 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
8417
8418         * metadata.c (mono_metadata_parse_field_type): Implement. 
8419         (do_mono_metadata_parse_type): Split engine from
8420         mono_metadata_parse_type, so that we can create smaller structures
8421         for things that just have one pointer to the MonoType (look at
8422         the MonoFieldType)
8423
8424 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
8425
8426         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
8427         as Jan Gray found out, it is incorrect. 
8428
8429 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
8430
8431         * assembly.c: Implement asssembly loading.  This loads an image
8432         and loads all the referenced assemblies.  Come to think of it, we
8433         could always do lazy loading of the assemblies. 
8434
8435         * image.c (mono_image_open): Keep loaded images in a hashtable.
8436
8437         * image.h (MonoImage): Add reference count.
8438
8439 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
8440
8441         * assembly.c (mono_assembly_open): Keep track of the file name in
8442         case the assembly has no ASSEMBLY table.
8443
8444         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
8445         from get.c here.
8446
8447 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
8448
8449         * metadata.c, metadata.h: decode local vars in method header
8450         parse function. Change callers accordingly.
8451
8452 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
8453
8454         * metadata.h, cil-coff.h: protect against multiple inclusion.
8455         Added some new structures to hold information decoded from metadata:
8456         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
8457         and relevant decoding/free functions.
8458         * metadata.c: implement decoding functions. Add warning for out of bounds
8459         index in mono_metadata_locate(). Implement mono_get_method () to retreive
8460         all the info about a method signature and invocation. Remove check on
8461         uninitialized local var in parse_mh() and fix memory leak.
8462
8463 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
8464
8465         * metadata.h: More macros.
8466
8467         * tokentype.h: New file.
8468
8469 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
8470
8471         * assembly.c: added a consistency check and initialize
8472         some structures with g_new0().
8473         * metadata.c: fixed a couple more bugs in table size computation
8474         and add other checks for out-of bound access to metadata.
8475
8476 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
8477
8478         * metatada.c: fix bugs computing table sizes. Spew a
8479         warning when index in string heap is out of bounds.
8480
8481 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
8482
8483         * metadata.h: Add a couple of macros to manipulate tokens. 
8484
8485 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
8486
8487         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
8488         cli_section_tables).
8489
8490 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
8491
8492         * metadata.c (mono_metadata_user_string): New function, provides
8493         access to the UserString heap. 
8494
8495 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
8496
8497         * metadata.c: Add inline documentation.
8498
8499 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
8500
8501         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
8502         files. 
8503
8504 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
8505
8506         * typeattr.h: New file, TypeAttribute flags. 
8507
8508 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
8509
8510         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
8511         mono_assembly_ensure_section): Section loading code.
8512         (load_section_tables): Load the sections.
8513
8514         * mono/metadata/metadata.c (mono_metadata_locate_token,
8515         mono_metadata_locate): Functions to locate the information
8516         definition given a token or a table and an index.
8517         (mono_metadata_compute_table_bases): New.
8518         (compute_size): New function to compute the sizes of the various
8519         tables.
8520
8521         * mono/metadata/metadata.h: Finish listing the different index
8522         types. 
8523
8524         * mono/metadata/pedump.c: Improve to dump new information.
8525
8526 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
8527
8528         * mono/metadata/metadata.c: Entered all the tables matching
8529         Beta2. 
8530
8531         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
8532
8533
8534
8535
8536
8537
8538