384496a1765c7e5382360db160cd323efce10a0f
[mono.git] / mono / metadata / ChangeLog
1 2005-06-21  Martin Baulig  <martin@ximian.com>
2
3         * class-internals.h
4         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
5
6         * metadata.c (mono_metadata_generic_method_equal): Also
7         distinguish the `generic_class'; fixes #75334.
8
9 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10
11         * domain.c:
12         * appdomain.c:
13         * domain-internals.h:
14         * reflection.c: 'domain_assemblies' field is now protected by its own
15         lock. Don't call into managed code to run the AssemblyLoad event if we
16         now there are no registered delegates for it.
17
18 2005-06-20  Martin Baulig  <martin@ximian.com>
19
20         * class.c (mono_class_is_assignable_from): Use a custom version of
21         mono_class_has_parent() to make things work for generic instances;
22         fix #75300.
23
24 2005-06-20  Martin Baulig  <martin@ximian.com>
25
26         * loader.c (method_from_methodspec): Apply a patch from
27         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
28
29 2005-06-20  Martin Baulig  <martin@ximian.com>
30
31         * class.c (mono_class_init): Reverted Zoltan's last change; it
32         breaks generics.
33
34 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
35
36         * threads.c (wait_for_tids_or_state_change): Add missing locking.
37
38 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
39
40         * socket-io.c: fix the index in the socket array for writable/error
41         sockets. Fixes bug #75306.
42
43 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
44
45         * class.c (mono_class_init): Allow interfaces to have static ctors.
46
47 2005-06-17  Martin Baulig  <martin@ximian.com>
48
49         * loader.c (method_from_methodspec): Use `context->container' when
50         parsing the `gmethod->inst'.
51
52 2005-06-17  Martin Baulig  <martin@ximian.com>
53
54         * class.c (mono_type_get_name_recurse): Don't add the assembly
55         name for type arguments.
56
57 2005-06-15  Martin Baulig  <martin@ximian.com>
58
59         * reflection.c (mono_image_get_inflated_method_token): Encode
60         correct klass; fixes #75260.
61
62 2005-06-13 Michal Moskal <malekith@nemerle.org>
63
64         * icall.c: Make GetCorrespondingMethod/Constructor take
65         MonoReflectionMethod method not MonoMethod. Removed
66         MonoType.GetCorrespondingField, and make
67         MonoGenericType.GetCorrespondingField take name not
68         MonoClassField.
69
70 2005-06-13  Michal Moskal <malekith@nemerle.org>
71
72         * reflection.c (field_encode_signature, encode_locals):
73          Make sizes of buffers for types larger (for big generic types).
74          (create_generic_typespec,
75          mono_reflection_sighelper_get_signature_local,
76          mono_reflection_sighelper_get_signature_field):
77          Add asserts for too small buffers.
78
79 2005-06-15  Martin Baulig  <martin@ximian.com>
80
81         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
82         if our parent is not a dynamic type.
83
84 2005-06-15  Martin Baulig  <martin@ximian.com>
85
86         * class-internals.h (MonoTypeNameFormat): New enum.
87
88         * class.c
89         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
90         (mono_type_get_full_name): Removed.
91         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
92         argument instead of the boolean's.
93
94         * icall.c (ves_icall_System_MonoType_getFullName):
95         Added `gboolean assembly_qualified'.    
96
97         * reflection.h
98         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
99
100         * reflection.c (mono_reflection_parse_type): Parse the new type
101         name format.
102
103 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
104
105         * icall.c: no need to convert from utf16 to utf8 and then back again
106         after the call to GetLogicalDrives.
107
108 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
109
110         * icall.c: frombase64. Fix problems exposed by new tests.
111
112 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
113
114         * icall.c: added internal calls for converting char [] and strings in
115         base64 into byte [].
116
117 2005-06-10  Martin Baulig  <martin@ximian.com>
118
119         * class.c (mono_class_create_generic_2): Read the nested classes
120         from the metadata rather than from `gklass->nested_classes' since
121         `gklass' might not be initialized yet.
122
123 2005-06-09  Duncan Mak  <duncan@novell.com>
124
125         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
126         all public headers. Fixes #74919.
127
128 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
129
130         * domain.c: The key for proxy_vtable_hash is now a pointer
131         array. Added new GHashFunc and GCompareFunc functions for this.
132
133         * class.h: The list of interfaces in MonoRemoteClass is known in
134         advance and can't grow (we create a new MonoRemoteClass if needed),
135         so now the interface array can be allocated together with
136         MonoRemoteClass.
137         
138         * object.c: Added a new method create_remote_class_key.
139         Fixed mono_remote_class so it does not depend on
140         mono_upgrade_remote_class.
141         Removed extend_interface_array.
142         Added new method clone_remote_class(), which makes a copy of a remote
143         class and adds a new interface or class to it.
144         mono_upgrade_remote_class() now creates a new remote class (or gets
145         it from the cache) if an vtable upgrade is needed. In this way
146         we make sure that other objects sharing the same remote class
147         don't get the new vtable with unwanted interfaces.
148         
149         * object-internals.h:
150         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
151         
152         * marshal.c: Track changes in mono_upgrade_remote_class().
153
154 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
155         * icall.c: Add runtime methods for obtaining members of inflated
156         class, which were created from supplied non-inflated members. It
157         is used in internal Get{Method,Constructor,Field} methods in
158         System.Type
159
160 2005-06-09  Martin Baulig  <martin@ximian.com>
161
162         * reflection.c
163         (mono_reflection_bind_generic_method_parameters): Fix #75169.
164
165 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
166         * reflection.c (mono_image_basic_init): Define
167         Version in MonoDynamicAssembly. 
168         
169 2005-06-08  Martin Baulig  <martin@ximian.com>
170
171         Fix #75136.
172
173         * loader.c
174         (mono_method_signature_full): New public method; takes a
175         `MonoGenericContext *'.
176         (find_method): Use mono_method_signature_full() and pass the
177         klass'es context to it.
178
179         * class.c (mono_class_is_inflated_method): Use
180         mono_method_signature_full() and pass the context to it.
181
182 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
183
184         * object.c: add proper locking in mono_remote_class_vtable(),
185         fixes possible memory corruption.
186
187 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
188
189         * marshal.c (mono_remoting_marshal_init): set
190         initialized after initialization.
191
192 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
193
194         * locales.c : hush.
195
196 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
197
198         * object.c (extend_interface_array): fix really silly
199         memory corrupting / comparison bug.
200
201 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
202
203         * reflection.c: Functions added to support the creation
204         of CustomAttributeData, which includes Attribute data
205         used by ReflectionOnly methods.
206
207         * reflection.h:  mono_reflection_get_custom_attrs_data and
208          mono_custom_attrs_data_construct added (functions exposed).
209
210          * icall.c: Added mono_reflection_get_custom_attrs_data
211          as icall.
212         
213 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
214
215         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
216         lupus's request.
217
218 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
219
220         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
221
222         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
223         dynamic DllImportAttribute.
224
225         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
226         dynamic DllImportAttribute.
227
228         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
229         Fixes #75162.
230
231 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
232
233         * threads.c: avoid segfault when an unstarted thread is aborted.
234
235 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
236
237         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
238         Returns the name and version of the runtime for reporting.
239
240 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
241
242         * appdomain.c: bump corlib version.
243         * object-internals.h: new field in MonoReflectionAssembly.
244
245 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
246
247         * object-internals.h: Carlos forgot to add this field.
248
249 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
250
251         * icall.c: Added create_version to create instances
252         of Version of MonoReflectionAssemblyName. This change helps
253         the AssemblyName tests to keep running fine.
254         
255 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
256   
257         * object.c (mono_method_return_message_restore): A somehow less
258         intrusive fix for #75138.
259
260 2005-06-03  Raja R Harinath  <rharinath@novell.com>
261
262         * object.c (mono_method_return_message_restore): Fix computation
263         of expected number of out args.
264
265 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
266
267         * reflection.c (mono_image_get_method_info): Fix the case when the
268         charset is empty.
269
270 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
271
272         * object.c: Added missing null check in
273           mono_method_return_message_restore.
274
275 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
276
277         * reflection.c (mono_image_get_method_info): Handle the case when
278         dllentry is empty.
279
280 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
281
282         * object.c: When creating the vtable for a proxy, take into account
283         all inherited interfaces, not only the ones registered in
284         iclass->interfaces. This fixs bug #74996.
285         Also, in mono_method_return_message_restore, verify that the array
286         of out args has the expected lengh.
287
288 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
289
290         * socket-io.c: update the timeout in Poll when the call is interrupte.
291
292 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
293
294         * socket-io.c: support abort/suspend in Select_internal after last
295         change.
296
297 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
298
299         * threadpool.c: remove warning.
300
301 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
302
303         * icall.c:
304         * socket-io.[ch]: Select_internal uses poll() now when available, thus
305         removing the 1024 limit from select(). Runtime part of the fix for
306         bug #71203.
307
308 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
309
310         * socket-io.c: when resolving the addresses for the same
311         host returned by gethostname(), get the local IPs from the interface
312         list. Loopback addresses are discarded if the are interfaces up with
313         non-loopback ones. Fixes bug #63265.
314
315 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
316
317         * appdomain.c, verify.c, object-internals.h, reflection.c:
318         bumped corlib number to 36, and added new extra_flags field
319         to ReflectionMethodBuilder and friends.  Fixes #75060.
320
321 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
322
323         * gc.c: register a new weak link only if the object is non-null
324         (fixes bug#75047).
325
326 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
327
328         * culture-info.h : short time pattern too.
329
330 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
331
332         * culture-info.h : expand long time pattern string length.
333
334 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
335
336         * culture-info-table.h : update (more French date format; #72788).
337
338 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
339
340         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
341         the method is static. Fixes #75029.
342
343 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
344
345         * reflection.c: Update the table_idx field of method builders after
346         saving the module, since it can change. This is a workaround for
347         bug #74914. 
348
349 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
350
351         * culture-info-table.h : update (additional French date format).
352
353 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
354
355         * icall.c (ves_icall_type_Equals): Revert last change.
356         
357         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
358
359         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
360
361 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
362
363         * class-internals.h: Added executioncontext_class field to 
364         MonoDefaults structure.
365         * domain.c: Cache System.Threading.ExecutionContext class in 
366         mono_defaults.
367         * object.c: Capture the ExecutionContext for asynchroneous calls in
368          mono_async_result_new.
369         * object-internals.h: Added execution_context and original_context 
370         fields to MonoAsyncResult. Added execution_context to MonoThread.
371         * security-manager.c|.h: Added mono_get_context_capture_method to 
372         return the capture method (if required by the security manager or by
373         the framework version used).
374         * threadpool.c: Apply capture (if present) ExecutionContext in 
375         mono_async_invoke and revert to original context after it completes.
376
377 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
378
379         * culture-info-table.h : updated (real hacky solution for zh-CHT).
380
381 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
382
383         * culture-info-table.h : zh-CHT related workaround.
384
385 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
386
387         * marshal.c (emit_marshal_custom): Add some error checking and call the
388         methods in the ICustomMarshaler interface. Fixes #74875.
389         
390         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
391         native->managed wrappers.
392
393 2005-05-12  Martin Baulig  <martin@ximian.com>
394
395         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
396         here and use the loader lock.
397
398         * mono-debug.c: Properly lock when the debugger is not attached.
399         (mono_debug_init): Release the initial lock if we're not running
400         in the debugger.
401
402 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
403
404         * marshal.c (emit_marshal_custom): Pass through NULL values without
405         calling the custom marshalling routines.
406
407         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
408         conversion in structures. Fixes #74882.
409
410 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
411
412         * culture-info-table.h : zh-* cultures were missing.
413
414 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
415
416         * threads.c: Added a new event background_change_event which is signaled
417         when a thread changes its background mode.
418         Moved here several checks previously done in managed code. The checks
419         require the thread lock, and using the thread lock in managed code
420         can result in deadlocks.
421         Merged Start_internal and Thread_internal into a single method. Now 
422         Thread_internal does all work of creating and starting a thread.
423         Added icalls for setting and getting the state of the object. Moved from
424         managed code to avoid locking there.
425         Added wait_for_tids_or_state_change() which is called instad of
426         wait_for_tids when waiting for non-backround threads to end. This method
427         will return if one of the threads ends or the background_change_event
428         is signaled.
429         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
430         the background mode. This method signals the background_change_event
431         event.
432         * icall.c:
433         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
434         removed Start_internal.
435         
436 2005-05-11  Martin Baulig  <martin@ximian.com>
437
438         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
439         to order of some fields to get proper alignment on 64-bit machines.
440
441 2005-05-11  Martin Baulig  <martin@ximian.com>
442
443         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
444         changes as they're broken and completely fuck up the debugger.
445
446         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
447
448 2005-05-10  Martin Baulig  <martin@ximian.com>
449
450         * reflection.c (mono_reflection_generic_class_initialize): Don't
451         call mono_class_setup_parent() here.
452
453 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
454
455         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
456         send/receive timeout use an integer in milliseconds. We were using a
457         struct timeval.
458
459 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
460
461         * locales.c:
462         (internal_get_cultures): reserve the first slot of the array for the
463         InvariantCulture, which will be filled in managed code.
464
465 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
466
467         * reflection.c (mono_image_fill_module_table): Initialize the
468         GENERATION field as well.
469
470 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
471
472         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
473         Monitor.Enter on the object.
474
475 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
476
477         * threads.c: Enable the wait for running threads when exiting.
478         * icall.c: Suspend all threads before exiting.
479
480 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
481
482         * assembly.c (mono_assembly_load_reference): Fix warning.
483
484 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
485
486         * threadpool.c: changed the default number of threads per cpu. From now
487         on, the default will be 20 + (5 * number of cpus) instead of 50.
488
489 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
490
491         * loader.c (mono_method_get_signature_full): Add locking here.
492
493 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
494
495         * appdomain.c: Moved methods for parsing and freeing assembly
496         names to assembly.c.
497         * assembly.c, domain-internals.h: Created public methods for parsing
498         assembly names. Fixed mono_assembly_load_with_partial_name:
499         it now finds the best match, taking into account the version,
500         token and culture specified in the partial name. Also return
501         the latest version if no version information is specified.
502
503 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
504
505         * threadpool.c: replace check for SocketAsyncCall class.
506
507 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
508
509         * threadpool-internals.h:
510         * Makefile.am: added threadpool-internals.h
511
512         * threadpool.c: call mono_unhandled_exception on exceptions not handled
513         that happen in threadpool threads (tested on MS).
514         (mono_thread_pool_remove_socket): new function that dispatch any pending
515         AIO call on a socket that is closing. By now only epoll really needs it,
516         as select/poll wake up when the socket closes.
517
518
519         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
520
521 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
522
523         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
524
525 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
526
527         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
528
529 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
530
531         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
532         has an abort request, convert it into a suspend request.
533
534 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
535
536         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
537         warning for the usage of `UnmanagedFunctionPointerAttribute' which
538         is not supported yet.
539
540 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
541
542         * image.c: register assemblies loaded from data (bundles) in the loaded
543         assemblies hash. Fixes bug #74772.
544
545 2005-04-29  Martin Baulig  <martin@ximian.com>
546
547         * class.c (mono_type_get_name_recurse): Update to the new naming
548         schema from the latest .NET 2.x beta2.
549         (mono_class_setup_vtable_general): If we're a generic instance,
550         copy the vtable from our generic type definition and inflate all
551         the methods in it.
552
553         * loader.c (find_method): Update to the new naming schema from the
554         latest .NET 2.x beta2.
555
556 2005-04-29  Raja R Harinath  <harinath@gmail.com>
557
558         * class.c (mono_class_init): Add a mono_loader_unlock to the
559         #74734 fix.
560
561 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
562
563         * icall.c (ves_icall_System_Environment_Exit): Remove the 
564         suspend_all_other_threads () call for the time being, since it can hang.
565
566         * threads.c (mono_thread_manage): Similarly, disable the waiting for
567         the background threads to exit, since it can also hang.
568
569         * class.c (mono_class_init): Applied patch from Ankit Jain 
570         (radical@gmail.com). Avoid pending init errors when a field refers
571         to a nested class using a typeref. Fixes #74734.
572
573         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
574         this for dynamic modules.
575
576 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
577
578         * threads.c: don't wait for threads that are in the process of aborting
579         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
580         and waiting for background threads to finish. This makes xsp and
581         mod-mono-server exit without random length delays and/or hangs.
582
583 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
584
585         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
586
587 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
588
589         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
590         dynamic types to prevent infinite loops. Fixes #74727.
591
592         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
593         ..._is_assignable_to.
594
595 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
596
597         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
598
599 2005-04-25  Martin Baulig  <martin@ximian.com>
600
601         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
602
603         * domain.c
604         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
605
606         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
607
608         * reflection.c (build_compressed_metadata): Set metadata header
609         version to 2.0.
610
611 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
612
613         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
614         number into an integral and a decimal part. Fixes #70473.
615
616         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
617
618 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
619
620         * culture-info-table.h : reflected the latest locale-builder output.
621
622 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
623
624         * threadpool.c: check for SuspendRequested too when deciding if
625         mono_thread_interruption_checkpoint should be called.
626
627 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
628
629         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
630         * threads.c: remove interruption_mutex and use Interlocked instead. When
631         suspending all the threads, wait for all the suspended events at once.
632         If we're shutting down and get an APC that is going to be queued,
633         call mono_thread_execute_interruption immediately, as the thread might
634         be sleeping on a pthread condition or mutex.
635
636         * icall.c: call mono_runtime_set_shutting_down before suspending the
637         threads.
638
639         Fixes bug #74693. And now xsp is happier when exiting.
640
641 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
642
643         * loader.c (mono_stack_walk): Fix #74690.
644
645 2005-04-22  Martin Baulig  <martin@ximian.com>
646
647         * mono-debug.h (MonoDebugMethodJitInfo): Added
648         `MonoDebugMethodJitInfo *jit'.
649
650         * mono-debug.c (mono_debug_read_method): Cache the
651         MonoDebugMethodJitInfo in `address->jit'.
652         (mono_debug_free_method_jit_info): New public method.
653
654 2005-04-22  Martin Baulig  <martin@ximian.com>
655
656         * class.c (mono_class_is_assignable_from): Disallow
657         type parameter -> interface.
658
659 2005-04-21  Dick Porter  <dick@ximian.com>
660
661         * threads.c (mono_thread_create): Turn an assertion into an error.
662
663 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
664
665         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
666         
667         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
668         Fix some gcc 4.0 warnings.
669
670 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
671
672         * file-io.c: fix alt dir separator char on unix systems
673         and cleanup (fixes bug #71214).
674
675 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
676
677         * marshal.c: Use CALLVIRT instead of CALL when dispatching
678         a call to a remote domain, since the method may be an
679         interface method in the client domain. This fixes bug #74192.
680
681 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
682
683         * threadpool.c: recv/send are now performed before going back to managed
684         code to save one transition.
685
686 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
687
688         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
689
690         * metadata/threadpool.c: removed hack to workaround the bug above.
691
692         Fixes bug #74618.
693
694 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
695
696         * reflection.c reflection.h: Fix handling of parameter defaults in
697         dynamic methods. Also fixes handling of parameter attributes.
698         Fixes #74609.
699
700         * mono-debug.c (mono_debug_close_image): Fix warning.
701
702 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
703
704         * socket-io.h: replaced old unused field with new 'blocking'.
705         * threadpool.c: restore socket blocking state on windows(tm).
706
707 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
708
709         * icall.c: don't return the codebase in the AssemblyName[] returned by
710         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
711         * object-internals.h: Removed FIXME (fields were presents) and fixed
712         versioncompat declaration.
713
714 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
715
716         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
717         not closed, so don't cleanup when it happens.
718
719 2005-04-13  Chris Toshok  <toshok@ximian.com>
720
721         * mono-debug-debugger.h: change prototype for
722         mono_debugger_lookup_type.
723
724         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
725         this function, although it should probably be named
726         mono_debugger_init_type.
727
728 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
729
730         * threadpool.c: fix non-AIO case.
731
732 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
733
734         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
735         the built-in profiler to measure just JIT compilation times.
736
737 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
738
739         * threadpool.c: the epollfd might be closed by another thread at
740         any time, so ignore EBADF at treat it as a "we're closing" sign.
741
742 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
743
744         * threadpool.c: release the semaphores with a count equals to the number
745         of working threads in both IO and regular pools. Fixed typo that messed
746         up the count of IO pool threads. Don't initialize the pipe handles if
747         we're using epoll.
748
749 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
750
751         * threadpool.c: some systems don't like a NULL when deleting the socket
752         from epoll.
753
754 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
755
756         * threadpool.c: fix semaphore allocation.
757
758 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
759
760         * threadpool.c: added epoll() based implementation for asynchronous IO
761         that is used instead of the default poll() when available.
762         It can be disabled by setting MONO_DISABLE_AIO.
763
764 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
765
766         * threadpool.c: windows needs 'closesocket' and instead of returning
767         0 when the stream is closed while in select, it returns -1. Fixes bug
768         #74573.
769
770 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
771
772         * class.c (class_compute_field_layout): Fix the regression caused by
773         the previous try.
774
775 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
776
777         * threadpool.c: separate pool for socket async. IO.
778         * threadpool.h: mono_max_worker_threads is not a global any more.
779
780 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
781
782         * class.c (class_compute_field_layout): Fix #74549.
783
784 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
785
786         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
787         use 2 connected sockets instead.
788
789 2005-04-08  Miguel de Icaza  <miguel@novell.com>
790
791         * mono-config.c: Add new entry point for mkbundle
792         mono_config_parse_memory. 
793
794 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
795
796         * threadpool.c: removed another unused function.
797
798 2005-04-08  Ankit Jain  <radical@corewars.org>
799
800         * reflection.c (get_default_param_value_blobs): Add 'types'
801         parameter to get the types encoded in the constant table.
802         (mono_param_get_objects): Use the type from the constant table,
803         not the type of the parameter, when creating default values.
804         Handle null default values correctly.
805
806 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
807
808         * file-io.c:
809         * file-io.h:
810         * threadpool.c:
811         * threadpool.h:
812         * icall.c:
813         * socket-io.c: removed dead code for async IO.
814
815 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
816
817         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
818
819         * threadpool.c: intercept socket async. calls and pass them to a thread
820         that is polling and dispatching the job items to the threadpool as
821         socket become ready. Fixes bugs #71217, #71933.
822
823         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
824         between char and short/ushort arrays.
825
826         * socket-io.c: remove dead code.
827
828 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
829
830         * locales.c,
831           icall.c : removed InternalToUpper_Comp() and
832           InternalToLower_Comp().
833
834 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
835
836         * char-conversions.h : The tables were incorrectly generated. Should
837           be generated against invariant culture.
838
839 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
840
841         * object.c (mono_runtime_invoke_array): Fix return value when 
842         passing pre-created valuetype objects to ctors.
843
844         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
845         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
846         Fixes #74338.
847
848 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
849
850         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
851         only used with --security and hides the wrong corlib version error.
852
853 2005-03-30  Joshua Tauberer  <tauberer@for.net>
854
855         * class.c: Changed mono_class_name_from_token so that types
856         outside of a namespace don't have an initial period.  Improved
857         the g_warning message used in _mono_class_get when loading
858         fails.
859         * assembly.c: In mono_assembly_load_reference, when an assembly
860         can't be found, "No such file or directory" is misleading and
861         unhelpful because a few paths were checked for the presence of
862         the assembly.  When that happens (ENOENT), display a nicer
863         message indicating the directories that were searched.  In all
864         cases, the warning is made easier to read for non-hackers.
865
866 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
867
868         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
869         project/solution.
870         * appdomain.h|domain.c: Removed inline from functions.
871         * appdomain.c: Reduced warnings when compiling on windows.
872         * icall.c: Fixed output_debug declaration to gunichar2*.
873         * mono-config.c: Reduced warnings when compiling on windows.
874         * rand.c: Added missing "windows.h". Added missing return value.
875         * rawbuffer.c: Added missing winsock2.h for windows.
876         * sysmath.h: Added mono-compiler.h header to allow/ease 
877         compilation with non-GCC compilers.
878         * threads.c: Fixed declarations to compile with VS.NET C compiler.
879         Removed cast warnings.
880
881         Adapted from the work of J Lothian (for VC6).
882
883 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
884
885         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
886         from default_path.
887
888 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
889
890         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
891         the 2.0 profile.
892
893 2005-03-27  Raja R Harinath  <harinath@gmail.com>
894
895         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
896         has to be in $(exec_prefix).  $(prefix) is for arch-independent
897         stuff, and it would probably use $(prefix)/share rather than
898         $(prefix)/lib.
899
900 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
901
902         * console-io.c: added 2 includes that might be missing.
903
904 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
905
906         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
907         profile.
908
909         * reflection.c (create_custom_attr): Allocate the params array using
910         alloca so it gets GC tracking.
911
912 2005-03-23  Chris Toshok  <toshok@ximian.com>
913
914         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
915         out some spew.
916
917 2005-03-24  Raja R Harinath  <rharinath@novell.com>
918
919         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
920         changes to pick up any changes in prefix, etc.
921
922 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
923
924         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
925         
926         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
927         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
928
929 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
930
931         * class-internals.h object-internals.h class.c reflection.c: Extend the
932         mono_lookup_dynamic_token () function to return the class of the
933         token as well. 
934
935         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
936         well. Fixes #73848.
937
938 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
939
940         * security-manager.c: Skip inheritance checks for intra-corlib
941         class inheritance and method overrides. This skips a lot of checks
942         and (anyway) permissions cannot work until corlib is loaded.
943
944 2005-03-23  Martin Baulig  <martin@ximian.com>
945
946         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
947         MONO_TYPE_GENERICINST.  
948
949 2005-03-23  Martin Baulig  <martin@ximian.com>
950
951         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
952
953 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
954
955         * class.c: added locking comments to some functions.
956         Cache the interface offsets arrays (saves about 20 KB
957         of runtime memory in a typical app).
958         Reduce the time overhead in mono_class_setup_supertypes ().
959
960 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
961
962         * icall.c: speedup and fix leaks in GetMethodsByName and
963         GetPropertiesByName.
964
965 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
966
967         * reflection.c: some locking fixes.
968
969 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
970
971         * metadata.c: added missing break in case statement.
972
973 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
974
975         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
976         typedbyref return values. Fixes #73941.
977
978 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
979
980         * security-manager.c|h: Added demandunmanaged method and 
981         suppressunmanagedcodesecurity class to MonoSecurityManager.
982         Renamed aptc class to allowpartiallytrustedcallers.
983
984 2005-03-17  Martin Baulig  <martin@ximian.com>
985
986         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
987
988 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
989
990         * file-io.c: disabled file async. IO using aio_*. It uses the
991         threadpool now. Workaround for bug #73718.
992
993 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
994
995         * assembly.h, mono-config.c: added code to deal with bundled configs
996         for bundled assemblies.
997
998 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
999
1000         * *.c, private.h: cleanup, removing old private.h header file.
1001
1002 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1003
1004         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
1005         and throw_on_unmappable_char attributes.
1006
1007 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
1008
1009         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
1010         _ProcessName_internal.
1011
1012 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
1013
1014         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
1015         #73631.
1016
1017         * icall.c threads.c threads-types.h: Remove slothash icalls as they
1018         are no longer used.
1019
1020 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
1021
1022         * object.c (compute_class_bitmap): Add support for generics. Fixes
1023         #73527.
1024
1025 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1026
1027         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
1028
1029 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1030
1031         * filewatcher.c: commented out the code for windows watcher, as we don't
1032         use it (we use the managed implementation instead).
1033
1034 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1035
1036         * object-internals.h (MonoThread): Remove 'unused1' field.
1037
1038         * appdomain.c: Bump corlib version.
1039
1040         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
1041
1042         * reflection.c (mono_reflection_create_runtime_class): Remove the
1043         AssemblyBuilder.Save optimization since it causes too many problems.
1044
1045 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
1046
1047         * exception.c|h: Added mono_get_exception_reflection_type_load to
1048         create a ReflectionTypeLoadException object.
1049         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
1050         to return NULL is a InheritanceDemand fails during reflection. Updated
1051         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
1052         ReflectionTypeLoadException if an InheritanceDemand fails during 
1053         reflection. Added icall mapping for GetLinkDemandSecurity.
1054         * security-manager.c|h: Added ves_icall_System_Security_
1055         SecurityManager_GetLinkDemandSecurity internal call to return the
1056         class and methods permissions set for a LinkDemand. Removed unused
1057         fields in MonoSecurityManager.
1058
1059 2005-03-10  Martin Baulig  <martin@ximian.com>
1060
1061         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
1062         it's a generic instance.
1063
1064 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
1065
1066         * reflection.c (mono_get_object_from_blob): Applied patch from
1067         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
1068
1069         * class.c (mono_class_is_assignable_from): Another try at fixing 
1070         #73469 without breaking anything.
1071
1072 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1073
1074         * class.c: (mono_class_is_assignable_from): Revert the last changes
1075         since they don't work with generics.
1076         
1077         * class.c (mono_class_is_assignable_from): Fix build bustage.
1078
1079         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
1080         the managed IsAssignableFrom method. Fixes #73469.
1081
1082         * reflection.c (mono_reflection_call_is_assignable_from): New helper
1083         function.
1084
1085 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1086
1087         * object.c (mono_load_remote_field_new): Fix returning uninitialized
1088         memory when the remoting callback does not sets the out arguments.
1089         Fixes #73007.
1090
1091         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
1092         by mistake.
1093
1094         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
1095
1096         * object-internals.h (MonoStackFrame): Sync with managed object layout.
1097
1098         * appdomain.c: Bump corlib version.
1099
1100 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1101
1102         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
1103         function.
1104
1105         * threads.c (mono_thread_attach): Detect threads which are not started
1106         by the GC pthread wrappers.
1107
1108 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
1109
1110         * icall.c: Added new icall for RNG.
1111         * rand.c|h: Added new icall to open the RNG. This allows to share a 
1112         single handle on Linux to access /dev/urandom and fix #73183.
1113
1114 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1115
1116         * object.c: setting the new vtable in a transparent proxy object must
1117         not change the GC descriptor.
1118
1119 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1120
1121         * object.c: fixed compilation without GCJ support.
1122         * reflection.c: for runtime-created types ensure klass->has_references
1123         is correct (bug #73215).
1124
1125 2005-03-02  Martin Baulig  <martin@ximian.com>
1126
1127         * class.c (mono_class_is_assignable_from): Make this work if
1128         `oklass' is a generic instance; fixes #72831.
1129
1130 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1131
1132         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1133         with hasthis set.
1134         
1135         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1136
1137         * marshal.c: Reorganize native->managed marshalling code to also use
1138         the emit_marshal_... functions.
1139
1140 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1141
1142         * object.c: typed allocs have issues with bitmap sizes > 30,
1143         so check for max_set >= 30.
1144
1145 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1146
1147         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1148         managed code. Fixes #73012.
1149
1150         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1151
1152         * metadata.c reflection.c: Load/Emit elem_mult as well.
1153         
1154         * metadata.h (MonoMarshalSpec): Add comment.
1155
1156         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1157
1158         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1159         num_elem to -1 if not given.
1160
1161         * object-internals.h (MonoReflectionMarshal): Add has_size field.
1162
1163         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
1164         given values.
1165
1166 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
1167
1168         * null-gc.c (mono_gc_free_fixed): Was not compilable.
1169
1170 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1171
1172         * reflection.c (encode_marshal_blob): Encode param_num field as well.
1173
1174         * object-internals.h (MonoReflectionMarshal): Add param_num field.
1175
1176 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1177
1178         * object.c: generalized the reference bitmap creation
1179         and added hooks for the new GC.
1180         * class-internals.c: removed the gc_bitmap field from MonoClass.
1181
1182 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1183
1184         * domain.c: help the compiler to produce better code
1185         in mono_jit_info_table_find ().
1186
1187 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1188
1189         * object.c: make all allocations look typed.
1190
1191 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1192
1193         * socket-io.c: load Mono.Posix if it's not loaded already
1194         (fixes bug#73033).
1195
1196 2005-02-24  Martin Baulig  <martin@ximian.com>
1197
1198         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
1199         * reflection.c (dup_type): Likewise.
1200
1201 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
1202
1203         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
1204         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
1205
1206 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1207
1208         * domain.c, threads.c, object-internals.h: make the critical thread
1209         local vars use the fast access mode (even when we're compiled in
1210         a lib). Provide accessors to be used by the jit during codegen.
1211
1212 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1213
1214         * appdomain.c: Changed hook functios behavior to include
1215         support for the reflection only assemblies. Some icalls were changed
1216         to support the mentioned assemblies too. Signatures of static methods
1217         try_assembly_resolve and real_load now have an additional parameter:
1218         refonly.
1219
1220         * assembly.c: General changes to mono_assembly_ methods to support
1221         reflection only api. Functions mono_assembly_open, mono_assembly_load,
1222         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
1223         suffix, to support an additional gbool parameter to specify whether
1224         the assembli is reflection only or not. Created some new hook functions 
1225         to add support for reflection only assemblies. Signatures of static 
1226         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
1227         have now an additional parameter: refonly.
1228
1229         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
1230         indicating whether the assembly is reflection only or not.
1231
1232         * exception.c: Add mono_get_exception_invalid_operation.
1233
1234         * icall.c: Throw an InvalidOperationException when trying to invoke
1235         a property/method/event, or trying to set/get the value of a field.
1236         Also add an icall to retrieve the ref_only flag to the
1237         MonoReflectionAssembly.
1238
1239 2005-02-23  Chris Toshok  <toshok@ximian.com>
1240
1241         Part of fix for #72827.
1242         * mono-debug.c (mono_debug_add_method): add lexical block data to
1243         the info we write.  Kind of a hack at the moment - we copy the
1244         lexical block info from the MonoDebugMethodInfo to the
1245         MonoDebugMethodJitInfo here, before writing it.
1246         (mono_debug_read_method): read the lexical block info.
1247
1248         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
1249
1250         * debug-mono-symfile.h: add lexical block support.
1251
1252         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
1253         support.
1254
1255 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1256
1257         * loader.c (mono_lookup_pinvoke_call): Fix warning.
1258
1259         * object.c (mono_runtime_free_method): Call mono_free_method () and
1260         put the TODOs there.
1261
1262         * loader.c (mono_free_method): Free up most memory allocated for 
1263         dynamic methods.
1264
1265 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1266
1267         * reflection.c: properly flag a Type argument to a
1268         named custom attr value (bug #72248).
1269
1270 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1271
1272         * reflection.c: reduce code duplication in named custom
1273         attribute encoding.
1274
1275 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
1276
1277         * reflection.c: properly encode custom attrs of type object
1278         (bug #72649).
1279
1280 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1281
1282         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
1283
1284 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
1285
1286         * socket-io.c: load System.dll if it's not loaded already
1287         (bug #72850 and #70477).
1288
1289 2005-02-21  Martin Baulig  <martin@ximian.com>
1290
1291         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1292         generic instances.
1293
1294 2005-02-21  Martin Baulig  <martin@ximian.com>
1295
1296         * reflection.c (mono_image_build_metadata): We also need to
1297         "fixup" the MethodImpl table after we computed the final method
1298         indices.  Call fixup_methodimpl() to do that.
1299         (fixup_methodimpl): New private method.
1300
1301 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1302
1303         * assembly.c: special case mscorlib.dll (bug#72536),
1304         patch from Carlos Alberto Cortez.
1305
1306 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1307
1308         * threads-types.h threads.c: Fix build bustage.
1309
1310         * threads.c: Use a union for long<->double conversions.
1311
1312         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
1313         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
1314
1315         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
1316         containing the checkpoint call with NOT_TAKEN.
1317         
1318         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
1319         checkpoint before pushing the arguments, so they won't have to be
1320         spilled to stack.
1321
1322 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1323
1324         * domain.c, assembly.c, domain-internals.h: make some data
1325         const and relocation-free.
1326
1327 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1328
1329         * object.c, appdomain.c, class-internals.h: introduce the
1330         MonoClassRuntimeInfo structure to hold the info needed to
1331         use a class at runtime. Made mono_class_vtable() lock-free
1332         for all the appdomains.
1333
1334 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
1335
1336         * metadata-internals.h, image.c: introduce a per-image mempool to
1337         be used for memory that has the same lifetime as the image.
1338
1339 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
1340
1341         * domain.c: In mono_init_internal(), instead of selecting the first
1342         runtime version supported by an executable, get a list of all
1343         supported versions and select the one for which an mscorlib exists
1344         (since even if the runtime supports a given version, it doesn't mean
1345         that the framework for that version is installed).
1346         Modified get_runtimes_from_exe to support this behavior.
1347         In supported_runtimes, added information about additional system
1348         assembly versions.
1349         
1350         * assembly.c: Added support for more than one system assembly version
1351         per runtime version. Updated the assembly list.
1352         In mono_assembly_remap_version, removed the initial version check,
1353         since we don't know to which version we need to compare until we
1354         get the version set on which the assembly is based.
1355         Moved the code for loading corlib into the new method
1356         mono_assembly_load_corlib(), so it can be used by the initialization
1357         code.
1358         
1359         * domain-internals.h: Updated data structures and added declaration
1360         for mono_assembly_load_corlib.
1361
1362 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1363
1364         * reflection.c (resolve_object): Fix the creation of the signature in 
1365         the SignatureHelper case.
1366
1367         * assembly.c (mono_assembly_remap_version): Fix binary search.
1368         
1369 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
1370  
1371         * class.c: Added inheritance check when a method is overloaded (from a
1372         virtual method or when implementing an interface) and when a class is
1373         inherited. Added functions to set a failure for a class and to 
1374         retreive the exception from a failure.
1375         * class-internals.h: Added fields to MonoClass to keep the exception
1376         information status for inheritance (or other exceptions) to be thrown
1377         later (i.e. not at load time).
1378         * object.c: Throw the inheritance SecurityException when a type is to 
1379         be created with either class or method inheritance violations.
1380         * reflection.c|h: Fix when getting declsec from a class. Removed 
1381         unrequired code for class. Improved sanity in parameter naming.
1382         * security-manager.c|h: Added functions to check for class and method
1383         inheritance.
1384
1385 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1386
1387         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
1388         and has_finalize in dynamic types as well.
1389
1390 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
1391
1392         * culture-info-table.h : fixed currency format for en-GB (and so on).
1393
1394 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
1395
1396         * gc.c: ensure the GC handles never have 0 as a value.
1397
1398 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1399
1400         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
1401         a pointer to a struct to unmanaged code. Fixes #72625.
1402
1403 2005-02-16  Martin Baulig  <martin@ximian.com>
1404
1405         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
1406
1407 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1408
1409         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
1410
1411 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1412
1413         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
1414
1415         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
1416         UnmanagedFunctionPointerAttribute, use it for determining calling convention
1417         etc. Fixes #71471.
1418
1419         * reflection.c (mono_custom_attrs_get_attr): New helper function.
1420
1421         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
1422
1423 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
1424
1425         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
1426         changes to make the current context a field in MonoThread.
1427
1428 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1429
1430         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
1431         the last change.
1432         
1433         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
1434         extracted from mono_marshal_get_native_wrapper.
1435
1436         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
1437         to create wrappers around native functions.
1438
1439         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
1440         delegates for arbitrary function pointers. Fixes #71472.
1441
1442 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1443
1444         * threads.c: cleaned up the code a little.
1445
1446 2005-02-15  Martin Baulig  <martin@ximian.com>
1447
1448         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
1449         the data table.
1450
1451         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
1452         allocate larger chunks if needed.
1453
1454 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1455
1456         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
1457         in by mistake.
1458
1459 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
1460
1461         * domain.c: keep the domains in an array and ensure the domain ids
1462         are kept small, so they can be used as indexes to domain-specific data
1463         with a small memory overhead.
1464
1465 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1466
1467         * icall.c: Handle byref types in Type icalls. Fixes #72544.
1468
1469 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
1470
1471         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
1472
1473 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
1474
1475         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
1476
1477         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
1478         values.
1479
1480         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
1481         
1482 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
1483
1484         * domain-internals.h: add the hashtable here.
1485
1486         * class-internals.h: Remove `info' from MonoMethod
1487
1488         * domain.c: Add a new hashtable, jit_trampoline_hash
1489
1490 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1491
1492         * object.c: don't set the value of static fields
1493         (fixes bug#72494).
1494
1495 2005-02-11  Martin Baulig  <martin@ximian.com>
1496
1497         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
1498         (mono_debug_add_method): Silently ignore the method if it's too big.
1499         (mono_debug_add_type): Likewise.
1500
1501 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
1502
1503         * threads.c, appdomain.c: remove #ifdefs from the code.
1504
1505 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
1506
1507         * metadata-internals.h: Added flags to MonoAssembly to cache the most
1508         common security informations. This allows us to stay in unmanaged code
1509         when doing LinkDemand and it's special cases (except for the first 
1510         time for initialization). The flags a very much used with --security.
1511         * reflection.c|h: Added code to get declarative security attributes 
1512         for LinkDemand and InheritanceDemand. This required to refactor the
1513         existing code for Demand.
1514         * security-manager.c|h: Added new method fields for the special cases
1515         of LinkDemand.
1516
1517 2005-02-10  Martin Baulig  <martin@ximian.com>
1518
1519         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
1520         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
1521
1522 2005-02-10  Martin Baulig  <martin@ximian.com>
1523
1524         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
1525         debugging code; this is almost a complete rewrite.
1526
1527         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
1528
1529 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1530
1531         * domain.c, object.h: expose mono_string_equal () and 
1532         mono_string_hash ().
1533         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
1534         it's implemented in managed code.
1535
1536 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1537
1538         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
1539         lo leak objects between appdomains.
1540
1541 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1542
1543         * assembly.c: old compilers compilation fix from 
1544         robertj@gmx.net (Robert Jordan).
1545
1546 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
1547
1548         * class-internals.h: Little reminder for the future.
1549
1550         * debug-helpers.c: Fix up wrapper_type_names
1551
1552 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1553
1554         * image.c, metadata-internals.h: when loading an image from a file,
1555         mmap all of it and use the same codepaths as when using a
1556         in-memory image: the code is simpler and we use less memory
1557         (both writable and readonly).
1558
1559 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1560
1561         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
1562         API to alloc runtime data structures that need to be tracked by the
1563         GC and contain pointers.
1564         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
1565         make the code more readable and eventually use a different GC.
1566
1567 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
1568
1569         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
1570         for out arguments.
1571         
1572 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
1573
1574         * object.c: In release_type_locks(), don't release the cctor lock
1575         if it has already been released. This fixes a crash in the
1576         thread5 test.
1577
1578 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1579
1580         * gc.c, marshal.c, icall.c: register a delegate for finalization
1581         only when the native function pointer has been allocated for it.
1582
1583 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1584
1585         * object.c: cleaned up some code, allocate objects that are
1586         pointer free with the atomic malloc variant. Allocate memory
1587         for static data from the mempool if it's pointer-free.
1588         Allocate the bounds array at the end of the array data, when needed.
1589         * object-internals.h, object.h: move a private function in a private
1590         header.
1591         * class.c: handle missing case in tracking references in fields.
1592
1593 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1594
1595         * class.c, class-internals.h: keep track if a type has
1596         reference fields in either the instance or static fields.
1597
1598 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
1599
1600         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
1601         and renamed to MonoRuntimeInfo. Added fields to store the expected
1602         framework assembly version. Changed mono_get_framework_version and
1603         mono_get_runtime_version for a single mono_get_runtime_info method.
1604         
1605         * assembly.c: Added method to remap system assembly versions to the
1606         current executing runtime version. Removed old mapping code.
1607         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
1608         
1609         * icall.c, reflection.c: Track api changes.
1610
1611 2005-02-06  Miguel de Icaza  <miguel@novell.com>
1612
1613         * loader.c (method_from_memberref): Improve error reporting,
1614         produce the class name instead of the typeref/typedef index. 
1615
1616 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
1617
1618         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
1619
1620 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1621
1622         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
1623         stdcall and charset name mangling.  Reorganize the code and add
1624         some tracing stuff.
1625
1626 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1627
1628         * monodiet.c: More iters!
1629
1630         * marshal.c: Iter usage.
1631
1632         * icall.c: Iter usage.
1633
1634         * object.c: Use iters.
1635
1636         * debug-helpers.c: More iters
1637
1638 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1639
1640         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
1641         under win32.
1642
1643 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1644
1645         * mono-debug-debugger.c: use iters
1646
1647         * class.c, class-internals.h: mono_class_setup_events is static
1648         now
1649
1650         * All callers: use iters
1651
1652 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1653
1654         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
1655         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1656
1657 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1658
1659         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
1660
1661         * marshal.h: Add prototypes for ldfld/stfld_remote.
1662
1663         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
1664         this is called during startup.
1665         
1666 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1667
1668         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
1669         MonoThreadsSync struct private in monitor.c. Changed the way
1670         MonoThreadsSync is allocated so it's faster and there is no
1671         need to keep track of it with a finalizer and it uses less memory.
1672         This also finally allows us to allocate mono objects as ptrfree when
1673         there are no reference fields.
1674
1675 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
1676
1677         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
1678         disappearing link to the GC interface and use them to simplify
1679         the gchandles code.
1680
1681 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1682
1683         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
1684         stfld_remote which call mono_load/store_field_new. This allows methods
1685         calling ldfld/stfld wrappers to be AOTed.
1686
1687         * console-io.c: Include sys/filio.h under solaris.
1688         
1689         * console-io.c: Include curses.h if needed correctly.
1690
1691 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1692         
1693         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
1694         method->klass as well.
1695
1696         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
1697
1698         * class.c (mono_class_init): Switch on lazy initialization of 
1699         methods.
1700
1701         * class.c (mono_class_get_finalizer): Handle the case when the 
1702         finalizer is inherited.
1703
1704 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1705
1706         * console-io.c: <curses.h> is needed by term.h on solaris.
1707
1708 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
1709
1710         * icall.c, class-internals.h, monodiet.c, class.c: Remove
1711         mono_class_setup_properties where possible. Remove this ftn from
1712         the header file, and make it static.
1713
1714 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1715
1716         * loader.c: Add missing setup_... call.
1717
1718         * class.c: Add missing setup_... calls.
1719
1720         * class.c (mono_class_init): Switch on lazy initialization of 
1721         the generic vtable.
1722         
1723         * class.c (mono_class_init): Fix generics broken by the recent changes.
1724
1725         * monodiet.c (handle_type): Add missing setup_... calls.
1726
1727         * class.c: Back out garbage in previous patch.
1728         
1729         * class.c: Add missing setup_... calls.
1730
1731         * class.c (mono_class_get_method_from_name_flags): Avoid calling
1732         mono_class_setup_methods () if possible.
1733
1734         * class-internals.h (MonoClass): Add 'has_cctor' flag.
1735
1736         * class-internals.h (MonoCachedClassInfo): New structure.
1737
1738         * class.c: Initialize properties and events fields of MonoClass lazily.
1739
1740         * class.c: Add infrastructure for lazily initializing the methods and
1741         vtable fields of MonoClass. Not yet used.
1742
1743         * class.c (mono_class_get_finalizer): New helper function.
1744
1745         * class.c: Add infrastructure for loading some class related data from
1746         an AOT file.
1747
1748         * object.c: Add infrastructure for initializing the vtable from data
1749         in the AOT file.
1750
1751         * gc.c (run_finalize): Use mono_class_get_finalizer ().
1752
1753         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
1754         appropriate initialization function before accessing parts of the
1755         MonoClass structure.
1756
1757         * marshal.c: Fix warnings.
1758         
1759         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
1760
1761         * mono-debug-debugger.c (get_exception_message): Use 
1762         mono_class_get_method_from_name_flags ().
1763
1764 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
1765
1766         * reflection.c, appdomain.c: Replace a few manual searches that
1767         Zoltan missed. (Paolo approved this part of my initial patch).
1768
1769 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
1770
1771         * profiler.c: disable recording statistical events at report time.
1772
1773 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1774
1775         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
1776         to byteswap arrays of enum values, too (bug #72080).
1777
1778 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
1779
1780         * appdomain.c (set_domain_search_path): Allow this to be called if
1781         domain->setup is not yet set.
1782
1783         * loader.c (mono_method_get_index): New helper function.
1784
1785         * loader.c reflection.c: Use mono_method_get_index ().
1786
1787         * class.c (mono_class_get_method_from_name_flags): New helper method.
1788
1789         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
1790         this.
1791
1792         * class.c (mono_class_get_cctor): New helper method.
1793
1794         * string-icalls.c object.c class.c marshal.c reflection.c: Use
1795         mono_class_get_method () to look up methods.
1796
1797 2005-02-01  Miguel de Icaza  <miguel@novell.com>
1798
1799         * console-io.c: Fix the build, this should work on Windows.
1800
1801 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
1802
1803         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
1804         be set to null to keep things valid
1805
1806 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1807
1808         * icall.c: added Console 2.0 icalls.
1809         * Makefile.am: added console-io.[ch]
1810         * console-io.[ch]: internal calls for Console 2.0 API.
1811
1812 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1813
1814         * class.c: make sure we consider all the interfaces
1815         when calculating max_interface_id (bug found by
1816         Jeroen Frijters running ikvm).
1817
1818 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
1819
1820         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
1821         valuetype fields to null.
1822
1823         * object.c (set_value): Ditto. Fixes #71669.    
1824
1825 2005-01-31  Martin Baulig  <martin@ximian.com>
1826
1827         * metadata.c (mono_metadata_has_generic_params): New public
1828         function; checks whether something is a generic method.
1829
1830 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1831
1832         * appdomain.c: fix infinite recursion when adding assemblies.
1833
1834 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
1835
1836         * object.c: Fix small typo to return all items for Environment.
1837         GetCommandLineArgs.
1838
1839 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1840
1841         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
1842         reflection.c: more domain and assembly-unload related fixes
1843         and memory leaks plugs.
1844
1845 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
1846
1847         * class.c loader.c security.c loader.h process.c threads.c mono-debug-debugger.c profiler.c marshal.c rand.cpedump.c: Fix 64 bit warnings.
1848
1849 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
1850
1851         * loader.c (mono_method_signature): Make this method lazy
1852         (mono_get_method_from_token): Don't computate the signature here.
1853
1854         Doing this saves quite a bit of memory. I got 90 kb on starting up
1855         monodoc. It should also save some disk reads on startup.
1856
1857         * *: MonoMethod->signature might be NULL now. You *MUST* use
1858         mono_method_signature.
1859
1860 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
1861
1862         * object.c (mono_runtime_get_main_args): Return an array from the
1863         current domain here. Fixes #71938.
1864
1865 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1866
1867         * monitor.c: formatting changes to comply with the
1868         mono coding style and remove #ifdefs from the code.
1869
1870 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1871
1872         * metadata.c, private.h: remove some unneeded data
1873         and use a more compact representation for table schemas.
1874
1875 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1876
1877         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
1878         to get a better distribution in hash tables.
1879         * *.c: use mono_aligned_addr_hash() where appropriate.
1880         * assembly.c: make var static.
1881
1882 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1883
1884         * domain-internals.h: Put MonoJitInfo on a diet.
1885
1886         * domain.c: Fix a warning.
1887
1888 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1889
1890         * gc.c: rework the gc handles code to reuse handles
1891         when freed.
1892
1893 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1894
1895         * domain.c: fixed long standing bug in mono_string_equal() which
1896         was brought to light with the ldstr changes.
1897
1898 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
1899
1900         * reflection.c: Remove warning by adding missing include for marshal.h
1901
1902 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1903
1904         * domain.c, object.c: change the ldstr_table to hold
1905         MonoString* as keys: makes the runtime isinterned lookup
1906         faster and simplifies memory management.
1907
1908 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
1909  
1910         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
1911         possible to add imperative security checks before calling the icall.
1912         * reflection.c: Return security attributes on the original MonoMethod
1913         (and not the wrapped one). This fix permissions on icalls.
1914
1915 2005-01-25  Dick Porter  <dick@ximian.com>
1916
1917         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
1918         the check for mktime() support actually test the mktime() return
1919         value.  "Fixes" bug 71682, though the output is still different to
1920         MS.
1921
1922 2005-01-25  Martin Baulig  <martin@ximian.com>
1923
1924         * class.c (mono_class_is_assignable_from): Make this work for
1925         generic instances.
1926
1927 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
1928
1929         * marshal.c (mono_string_utf8_to_builder)
1930         (mono_string_builder_to_utf16): We might not have ownership of the
1931         string. In thise case, we need to create a new buffer.
1932
1933         * object-internals.h (mono_stringbuilder_capacity): sb->str might
1934         be null, in which case, use the default capacity.
1935
1936 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1937
1938         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
1939         GC events to the profiler.
1940
1941 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1942
1943         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
1944         if you don't want the GC to run.
1945
1946 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
1947
1948         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
1949         start providing a GC API and keeping different implementations in
1950         their own file.
1951         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
1952
1953 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
1954
1955         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
1956         mmap rather than allocating a huge buffer.
1957         (mono_debug_close_mono_symbol_file): Free the buffer allocated
1958         above.
1959
1960 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
1961
1962         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
1963         and CheckExecutionRights.
1964         * reflection.c|h: Keep the index of the declarative security to be 
1965         used, instead of the pointer, when AOT compiler is used. Also add 
1966         class initialization when requesting demands.
1967         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
1968         CheckExecutionRights. Both properties are now FALSE by default, and
1969         unmodifiable, unless the --security option is used.
1970
1971 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1972
1973         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
1974         reflection.c: properly refcount images and assemblies, many leaks fixed.
1975
1976 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1977
1978         * threadpool.c: increase the timeout for threads in the thread pool to
1979         10s.  Fixes bug #67159.
1980
1981 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
1982
1983         * class-internals.h: Sun's compiler insists on explicit
1984         signed on bit fields to handle then correctly.
1985
1986 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
1987
1988         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
1989         Make the size of the array fit only the number of invalid path
1990         chars that we have.
1991
1992         * class.c (_mono_class_get): Improve the error reporting when a
1993         class referenced is not found, to assist debugging. 
1994
1995 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
1996
1997         * threads.c: fix off-by-one error.
1998         * domain.c: free data allocated in the domain.
1999
2000 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2001
2002         * reflection.c (mono_method_body_get_object): Fill out exception info
2003         as well.
2004
2005         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
2006         structure.
2007         
2008 2005-01-19  Martin Baulig  <martin@ximian.com>
2009
2010         * loader.c (mono_get_method_constrained): Make this work again.
2011
2012 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2013
2014         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
2015         guint16 to match the managed side.
2016
2017         * reflection.c (mono_reflection_body_get_object): Fill out local
2018         variables array.
2019
2020         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
2021         as well.
2022
2023         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
2024         'local_var_sig_token'.
2025
2026 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
2027
2028         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
2029         System.Drawing.
2030
2031         * reflection.c (mono_method_body_get_object): Handle abstract and
2032         runtime methods.
2033
2034 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
2035
2036         * marshal.c, loader.c, class-internals.h, reflection.c:
2037         store the emthod data for a wrapper in an array instead of a list.
2038
2039 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
2040
2041         * marshal.c: change the code to allocate memory more
2042         conservatively for method wrappers.
2043
2044 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
2045
2046         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
2047         fields from MonoClass to the marshal info structure where they belong.
2048
2049 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2050
2051         * class.c, object.c, class-internals.h, marshal.c: rearrange
2052         some fields and tweak some types to lower memory usage.
2053
2054 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
2055
2056         * threads.c (signal_thread_state_change): Handle the case when the
2057         target thread is the current thread.
2058
2059         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
2060
2061         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
2062         emit_ptr_to_object_conv. 
2063
2064         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
2065         marshalling. Fixes #71352.
2066
2067 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2068
2069         * metadata.h, blob.h: move table enum to blob.h so it can be included
2070         in any header.
2071         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
2072         cut the size of MonoImage/MonoDynamicImage.
2073
2074 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
2075
2076         * profiler.c (mono_profiler_install_simple): Fix default arguments.
2077
2078 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2079
2080         * reflection.c, reflection.h, icall.c: add a function to check
2081         if an attribute type is defined for a metadata object.
2082
2083 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2084
2085         * object-internals.h: Added some needed fields from StringBuilder class.
2086         * marshal.c: Set the maxCapacity when creating a StringBuilder.
2087
2088 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
2089
2090         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
2091         threads before shutting down the runtime.
2092
2093         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
2094
2095 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2096
2097         * object-internal.h, threads.c: implement stacksize and 
2098         parameterized thread start functionality (requires
2099         matching corlib). Marked broken code for later removal.
2100
2101 2005-01-12  Martin Baulig  <martin@ximian.com>
2102
2103         * class-internals.h (MonoGenericClass): Moved the `initialized'
2104         flag to MonoDynamicGenericClass, removed `init_pending'.
2105         (MonoGenericInst): Added `is_reference' flag.
2106
2107 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
2108
2109         * reflection.c (mono_image_create_pefile): Only set the pe_offset
2110         inside the MSDOS header. Fixes #71201.
2111
2112         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
2113         gc thread.
2114         (mono_domain_finalize): Ditto.
2115
2116 2005-01-12  Martin Baulig  <martin@ximian.com>
2117
2118         * class.c (mono_get_shared_generic_class): Use the cache for
2119         non-dynamic generic classes.
2120
2121         * class-internals.h (mono_class_create_generic_2): Removed
2122         function prototype, this function is now static inside class.c.
2123
2124         * class.c (mono_class_create_generic_2): Made this static, only
2125         call it from mono_class_init() and mono_class_setup_parent().
2126         (collect_implemented_interfaces_aux): Call mono_class_init() on
2127         the interfaces we collect.
2128         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2129
2130 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2131
2132         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2133         it a real thread handle.
2134
2135         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2136         MonoJitExceptionInfo, since each catch clause needs its own variable.
2137         
2138 2005-01-11  Dick Porter  <dick@ximian.com>
2139
2140         * image.c (mono_pe_file_open): New variant on mono_image_open()
2141         that does not set up the CLI metadata; used for FileVersionInfo so
2142         it can get the data for windows binaries too.
2143         
2144         * process.c (process_read_string_block): Don't read off the end of
2145         the StringTable block.
2146
2147         These both fix bug 70766.
2148
2149 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2150
2151         * gc.c: set some fields to NULL at GC cleanup time.
2152         * threads.c: if we quit the main thread, call exit ().
2153
2154 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2155
2156         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2157
2158 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2159
2160         * threads.h, threads.c, object.c: added accessor and settor for
2161         main_thread. Handle it specially when exiting from it: wait
2162         for other foreground threads to exit.
2163
2164 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
2165
2166         * process.c, verify.c: remove some bloat.
2167
2168 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
2169
2170         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
2171         the calling convention to cdecl under win32.
2172
2173 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2174
2175         * object.c (mono_object_get_size): New function to get the size of
2176         an object instance.
2177
2178         * profiler.c (simple_allocation): Use above.
2179
2180 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
2181
2182         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
2183         ves_icall_System_AppDomain_getRootDomain (as it's not required to
2184         get an appdomain by it's id and we can't assume the root's id is 0).
2185         * domain-internals.h: Change the function prototype to match.
2186         * icall.c: Change the icall table for AppDomain.
2187
2188 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
2189
2190         * locales.c (string_invariant_compare_char): Only compute
2191         GUnicodeTypes in the case where we need them.  Test for ordinality
2192         first and return if so.
2193
2194         From the commit:
2195
2196                 /*
2197                  * FIXME: here we must use the information from c1type and c2type
2198                  * to find out the proper collation, even on the InvariantCulture, the
2199                  * sorting is not done by computing the unicode values, but their
2200                  * actual sort order.
2201                  */
2202
2203 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2204
2205         * loader.c: for P/Invoke methods, allow the "Internal" shared
2206         library name to refer to the calling process symbol namespace.
2207
2208 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
2209
2210         * Makefile.am: Add the security manager to the build.
2211         * security-manager.c|h: New. Initialization of the security manager.
2212
2213 2005-01-07  Dick Porter  <dick@ximian.com>
2214
2215         * threads.c: 
2216         * monitor.c: Update thread state during Monitor and WaitHandle
2217         waits.  Fixes bug 71031.
2218
2219 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
2220
2221         * reflection.c (property_encode_signature): Correctly handle when the
2222         property has no methods.
2223
2224 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2225
2226         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
2227         
2228         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
2229         fields from mb, not rmb. Fixes #71017.
2230
2231         * marshal.c (emit_ptr_to_str_conv): Add support for 
2232         ByValTStr -> string conversion. Fixes #71015.
2233
2234         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
2235
2236         * mempool.c (mono_mempool_contains_addr): New helper function.
2237
2238 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2239
2240         * metadata.c (mono_metadata_compute_size): Fix size calculation of
2241         HasSematics encoded fields.
2242         
2243         * metadata.c (mono_type_to_unmanaged): Improve error message for 
2244         invalid string marshalling.
2245
2246         * metadata.c: Fix warnings.
2247         
2248 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2249
2250         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
2251         profiler support.
2252
2253 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2254
2255         * domain.c object.c domain-internals.h: Revert part of r38077 since the
2256         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
2257         tests.
2258
2259 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
2260
2261         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
2262         so methods containing these can be AOTed.
2263
2264 2005-01-03  Martin Baulig  <martin@ximian.com>
2265
2266         * loader.c (find_method): Removed the hack for generic instances.
2267         (method_from_memberref): If our parent is a generic instance, pass
2268         its generic type definition to find_method() and then inflate the
2269         method.
2270         (mono_get_method_constrained): Pass the generic type definition to
2271         find_method() and inflate the method later.
2272
2273         * class-internals.h (MonoStats): Added `generic_class_count'.
2274
2275         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
2276         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
2277
2278         * reflection.c (mono_custom_attrs_from_params): Don't ignore
2279         generic type definitions.
2280
2281 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2282
2283         * loader.c icall.c: Fix warnings.
2284
2285 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
2286
2287         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
2288         blittable types. Fixes #70864.
2289
2290 2004-12-29  Martin Baulig  <martin@ximian.com>
2291
2292         * icall.c
2293         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
2294
2295         * reflection.c (mono_method_get_object): Create a
2296         "System.Reflection.MonoGenericMethod" for inflated methods; don't
2297         call mono_get_inflated_method().
2298
2299         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
2300
2301 2004-12-27  Martin Baulig  <martin@ximian.com>
2302
2303         * class-internals.h (MonoMethod): Added `is_inflated' flag.
2304         (MonoMethodInflated): Added `inflated' field.
2305
2306         * class.c (mono_class_inflate_generic_method): Don't really
2307         inflate the method here; just set the `is_inflated' flag in the
2308         MonoMethod.
2309         (mono_class_get_inflated_method): Actually inflate the method here
2310         if it's not already inflated; we use the MonoMethodInflated's new
2311         `inflated' field as a cache.
2312
2313 2004-12-26  Martin Baulig  <martin@ximian.com>
2314
2315         * class.c
2316         (inflate_generic_class): Moved some code out of inflate_generic_type().
2317         (mono_class_inflate_generic_method): If we're already inflated,
2318         inflate the context and use the declaring method; ie. make sure
2319         the declaring method of an inflated method is always the generic
2320         method definition.
2321         (mono_class_create_from_typedef): Create
2322         `class->generic_container->context->gclass'.
2323
2324 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2325
2326         * metadata-internals.h, marshal.c, reflection.c: More
2327         MonoGHashTable->GHashTable.
2328
2329         * domain-internals.h, class.c: Change MonoGHashTable's into
2330         GHashTables for some cases where no gc stuff is used
2331
2332         All users: update apis
2333
2334 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
2335
2336         * metadata.c (builtin_types): Make this `const'. Makes this get
2337         put into the shareable section.
2338         (mono_metadata_init): Casts to make gcc happy.
2339
2340 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
2341
2342         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
2343
2344 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
2345
2346         * icall.c: Added an internal call to retrieve the position and length
2347         of assembly-level declarative security attributes (RequestMinimum, 
2348         RequestOptional and RequestRefuse). This is used by the Assembly class
2349         to re-create the corresponding permission sets.
2350
2351 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2352
2353         * marshal.c: fix the stelemref wrapper to be type correct
2354         (and faster).
2355
2356 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2357
2358         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
2359         to do key & 0x7fffffff. Hashtable already does this. It just
2360         results in longer code.
2361
2362 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2363
2364         * appdomain.c: Bump corlib version.
2365         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
2366         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
2367         * reflection.c|h: Add functions to get declarative security infos
2368         (blob position and length) for assemblies, classes and methods.
2369
2370 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
2371
2372         * reflection.c: sort the constant table (bug #70693).
2373
2374 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
2375
2376         * object-internals.h, threads.c, domain.c: add accessors for
2377         the MonoThread and MonoDomain tls keys.
2378
2379 2004-12-18  Martin Baulig  <martin@ximian.com>
2380
2381         * class.c (inflate_generic_type): If we're inflating a generic
2382         instance, set `ngclass->context->container = context->container';
2383         ie. the container we inflated into.
2384
2385         * metadata.c (mono_metadata_parse_generic_param): Reflect above
2386         inflate_generic_type() changes.
2387
2388 2004-12-17  Martin Baulig  <martin@ximian.com>
2389
2390         * class-internals.h
2391         (MonoGenericClass): Replaced `MonoType *generic_type' with
2392         `MonoClass *generic_class'.  Removed `dynamic_info'; if
2393         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
2394         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
2395
2396 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
2397
2398         * exception.c (mono_exception_from_token): New helper function.
2399
2400 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
2401
2402         * assembly.c (mono_assembly_load_with_partial_name): Call 
2403         mono_assembly_loaded before invoking the preload hooks. Fixes
2404         #70564.
2405
2406         * object-internals.h (MonoThread): Change culture_info and 
2407         ui_culture_info into an array.
2408
2409         * threads.c: Cache culture info objects from more than one appdomain.
2410
2411         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
2412         current UI culture.
2413
2414 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2415
2416         * threads.h threads.c appdomain.c: Clear the culture_info field of
2417         all threads during unloading if they point to an object in the dying
2418         appdomain.
2419
2420 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
2421
2422         * culture-info.h (TextInfoEntry): New struct
2423         * object-internals.h: sync with managed
2424         * locales.c: fill the `text_info_data' field
2425         * culture-info-tables.h: update
2426
2427 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
2428
2429         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
2430         collector.
2431
2432 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
2433
2434         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
2435         (ves_icall_ModuleBuilder_getMethodToken): Ditto
2436
2437 2004-12-12  Martin Baulig  <martin@ximian.com>
2438
2439         * mono-debug-debugger.c (write_type): If we're an enum and the
2440         builtin types have already been initialized, call mono_class_init().
2441
2442 2004-12-11  Martin Baulig  <martin@ximian.com>
2443
2444         * metadata.c (mono_metadata_load_generic_params): Added
2445         `MonoGenericContainer *parent_container' argument; automatically
2446         compute `container->is_method'; pass the correct owner to
2447         get_constraints().      
2448
2449         * reflection.c (compare_genericparam): Sort the GenericParam table
2450         according to increasing owners. 
2451
2452 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2453
2454         * profiler.c: allow disabling the default profiler.
2455
2456 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
2457
2458         * decimal.c, icall.c: allow disabling System.Decimal support.
2459
2460 2004-12-09  Marek Safar <marek.safar@seznam.cz>
2461
2462         * reflection.c: Add support for null attribute arguments.
2463
2464 2004-12-09  Martin Baulig  <martin@ximian.com>
2465
2466         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
2467         names to get rid of compiler warnings.
2468
2469 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2470
2471         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
2472         mono_marshal_load_type_info (). Fixes #69625.
2473         (mono_marshal_get_ptr_to_struct): Likewise.
2474
2475 2004-12-08  Martin Baulig  <martin@ximian.com>
2476
2477         * mono-debug.h: Bumped version number to 47.
2478
2479         * mono-debug-debugger.c
2480         (mono_debugger_event_handler, mono_debugger_event): Take two
2481         guint64 arguments insteed of a gpointer and a guint32.  
2482
2483 2004-12-08  Martin Baulig  <martin@ximian.com>
2484
2485         * debug-mono-symfile.h
2486         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
2487         `address' to `native_offset'.
2488
2489 2004-12-08  Martin Baulig  <martin@ximian.com>
2490
2491         * class.c (mono_class_create_from_typespec): Only inflate if we
2492         either have `context->gclass' or `context->gmethod'.
2493
2494 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2495
2496         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
2497
2498         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
2499
2500         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
2501
2502         * reflection.c (mono_assembly_get_object): Remove the workaround put
2503         in for the release.
2504         
2505         * appdomain.c: Use the corlib_internal field from MonoAssembly.
2506
2507         * appdomain.c: Bump corlib version.
2508
2509         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
2510         be visible in other appdomains.
2511
2512 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
2513
2514         * threads.c: Interlocked inc and dec for longs were messed up,
2515         use a KISS based impl for this. Fixes 70234
2516
2517 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
2518
2519         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
2520
2521 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2522
2523         * icall.c: fix to follow policy not to allow struct
2524         arguments in icalls.
2525
2526 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2527
2528         * process.c: make the patch that handles spaces in file paths work
2529         on mono/windows too.
2530
2531 2004-12-06  Martin Baulig  <martin@ximian.com>
2532
2533         * class.c (mono_class_create_generic): Call
2534         mono_class_setup_supertypes() if we're dynamic.
2535         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
2536
2537 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
2538
2539         * object-internals.h: Add new fields to MonoThread.
2540
2541         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2542
2543         * icall.c threads-types.h threads.c: Add new icalls.
2544
2545         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
2546
2547         * object-internals.h (MonoReflectionAssembly): Sync object layout with
2548         managed side.
2549
2550         * appdomain.c: Bump corlib version.
2551
2552         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
2553         internal assemblies. Fixes #69181.
2554
2555 2004-12-05  Martin Baulig  <martin@ximian.com>
2556
2557         * class.c (mono_class_inflate_generic_signature): Make this a
2558         no-op if `context' is NULL or we don't have any type parameters;
2559         also copy `sentinelpos'.        
2560
2561 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
2562
2563         * image.c: Add unbox_wrapper_cache.
2564
2565         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
2566
2567         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
2568         function generator.
2569         
2570         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
2571         Fixes #70173.
2572
2573         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
2574         
2575 2004-12-04  Martin Baulig  <martin@ximian.com>
2576
2577         * loader.c (mono_method_get_signature_full): New public function;
2578         like mono_method_get_signature(), but with an additional
2579         `MonoGenericContext *' argument.
2580
2581         * class.c (mono_class_inflate_generic_signature): Formerly known
2582         as inflate_generic_signature(); make this public.
2583
2584 2004-12-04  Martin Baulig  <martin@ximian.com>
2585
2586         * metadata.c
2587         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
2588         instead of a `MonoGenericContainer *'.  
2589         (mono_metadata_parse_array_full): Likewise.
2590         (mono_metadata_parse_signature_full): Likewise.
2591         (mono_metadata_parse_method_signature_full): Likewise.
2592         (mono_metadata_parse_generic_inst): Likewise.
2593         (mono_metadata_parse_generic_param): Likewise.
2594         (mono_metadata_parse_mh_full): Likewise.
2595         (mono_type_create_from_typespec_full): Likewise.
2596
2597 2004-12-03  Martin Baulig  <martin@ximian.com>
2598
2599         * class-internals.h (MonoGenericContainer): Replaced the
2600         `MonoGenericContext * pointer with a `MonoGenericContext'
2601         structure and made it the first element.
2602
2603 2004-12-03  Martin Baulig  <martin@ximian.com>
2604
2605         * class.c
2606         (inflate_generic_type): Set the `context->container' when creating
2607         a new MonoGenericContext.
2608         (mono_class_inflate_generic_method): Likewise.
2609         (mono_class_create_from_typespec): Just use `context->container'
2610         to get the container.
2611
2612         * loader.c (method_from_methodspec): Set `context->parent' from
2613         `context->container' - and if that's a method container, use its
2614         parent.  Also set the `context->container' when creating a new
2615         MonoGenericContext.
2616         (mono_get_method_from_token): Use just `context->container' to get
2617         the container.
2618
2619         * metadata.c (do_mono_metadata_parse_generic_class): Also set
2620         `gclass->context->container'.
2621
2622         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
2623         the `context->container' when creating a new MonoGenericContext.
2624
2625 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
2626
2627         * reflection.c (compare_genericparam): Sort params with identical
2628         owner by their number. Fixes gen-111 on sparc.
2629
2630 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2631
2632         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
2633         around the domain changes.
2634
2635         * appdomain.c (mono_domain_unload): Handle the case when the thread
2636         calling Unload is itself being aborted during unloading. Fixes #70022.
2637
2638         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
2639
2640         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
2641         checkpoint_func as an icall so it gets a wrapper.
2642         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
2643         in the cross-appdomain wrappers too.
2644
2645         * threads.c (mono_thread_has_appdomain_ref): Make this public.
2646
2647         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
2648
2649         * reflection.c: Fix some memory leaks.
2650         
2651 2004-12-02  Martin Baulig  <martin@ximian.com>
2652
2653         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
2654
2655         * metadata.c (generic_class_cache): New static hashtable.
2656         (mono_metadata_lookup_generic_class): New public method.
2657
2658 2004-12-02  Martin Baulig  <martin@ximian.com>
2659
2660         * class.c (mono_class_create_from_typedef): Call
2661         mono_class_setup_parent() and mono_class_create_mono_type() before
2662         parsing the interfaces.
2663
2664 2004-12-02  Martin Baulig  <martin@ximian.com>
2665
2666         * metadata.c (generic_inst_cache): New static hashtable.
2667         (mono_metadata_lookup_generic_inst): New public function.
2668         (mono_metadata_inflate_generic_inst): New public function.
2669         (mono_metadata_parse_generic_inst): New public function.
2670         (do_mono_metadata_parse_generic_class): Use the new
2671         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
2672         since this'll also use the cache.
2673
2674         * reflection.c (mono_reflection_bind_generic_method_parameters):
2675         Use mono_metadata_lookup_generic_inst() to use the new cache.
2676
2677         * class.c (inflate_mono_type): Use
2678         mono_metadata_inflate_generic_inst() to inflate a generic
2679         instance; this'll also use the new cache.
2680
2681         * loader.c (method_from_methodspec): Use
2682         mono_metadata_parse_generic_inst() and
2683         mono_metadata_inflate_generic_inst() rather than parsing it
2684         manually, so we can use the new cache.
2685
2686 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2687
2688         * threads.c (wait_for_tids): Do not incorrectly free threads when 
2689         the wait times out.
2690
2691 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2692
2693         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
2694         iter->args based on whether parameters are passed in registers (i.e.
2695         MONO_ARCH_REGPARMS is defined)
2696
2697 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
2698
2699         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
2700         the exception message. Fixes #70070.
2701         (method_from_methodspec): Fix warnings.
2702
2703 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2704
2705         * process.c: (complete_path) return the path quoted
2706
2707 2004-12-01  Martin Baulig  <martin@ximian.com>
2708
2709         * class-internals.h (MonoGenericInst): New structure.
2710         (MonoGenericClass): Replaced `type_argc', `type_argv' and
2711         `is_open' with `MonoGenericInst *inst'.
2712         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
2713         `is_open' with `MonoGenericInst *inst'.
2714
2715 2004-11-30  Martin Baulig  <martin@ximian.com>
2716
2717         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
2718
2719         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
2720         to `generic_class_cache'.
2721
2722         * metadata.c
2723         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
2724         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
2725         (mono_generic_inst_is_valuetype): Renamed to
2726         mono_generic_class_is_valuetype().
2727
2728         * class-internals.h
2729         (MonoGenericInst): Renamed to MonoGenericClass.
2730         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
2731         (MonoClass): Renamed `generic_inst' to `generic_class'.
2732         (MonoGenericContext): Renamed `ginst' to `gclass'.
2733
2734         * object-internals.h
2735         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
2736
2737         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
2738         mono_reflection_generic_class_initialize().
2739
2740         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
2741         now known as "System.Reflection.MonoGenericClass".
2742         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
2743
2744 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
2745
2746         * class-internals.h: Added a flag field to MonoClass to cache the
2747         declarative security attributes actions associated with the class.
2748         * domain-internals.h: Added booleans to MonoJitInfo to cache the
2749         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
2750         applicable to the JITted method.
2751         * reflection.c|h: Added functions to extract (as flags) which security
2752         actions are available (declaratively) for a method, class or assembly.
2753         * metadata.c|h: Added functions to search the declarative security
2754         table in the metadata.
2755         
2756 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
2757
2758         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
2759         EXPORTEDTYPES are already in the class name cache, so there is no
2760         need to add extra code here to look at them. Just removes a bit of
2761         cruft.
2762
2763         (ves_icall_System_Environment_get_TickCount): No need for #if
2764         WINDOWS. We already have the code in io-layer.
2765
2766 2004-11-28  Martin Baulig  <martin@ximian.com>
2767
2768         * loader.c
2769         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
2770         Fixes gen-112.cs.
2771
2772 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
2773
2774         * assembly.c (do_mono_assembly_open): Instead of having a
2775         conditional WITH_BUNDLE, incorporate support for bundles here, by
2776         having a global `bundles' variable holding a pointer to the actual
2777         bundles. 
2778
2779         (mono_register_bundled_assemblies): New API call used by the
2780         bundle code. 
2781
2782         See mkbundle.1 for details.
2783         
2784 2004-11-27  Martin Baulig  <martin@ximian.com>
2785
2786         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
2787         the vtable for generic methods.
2788
2789 2004-11-26  Martin Baulig  <martin@ximian.com>
2790
2791         * metadata.c
2792         (mono_metadata_generic_method_hash): New public function.
2793         (mono_metadata_generic_method_equal): Likewise.
2794
2795         * class-internals.h
2796         (MonoGenericContainer): Added `GHashTable *method_hash'.
2797
2798         * reflection.c (ReflectionMethodBuilder): Added
2799         `MonoGenericContainer *generic_container'.
2800         (reflection_methodbuilder_to_mono_method): Don't create a new
2801         MonoGenericContainer each time we're called.
2802         (mono_reflection_bind_generic_method_parameters): Use
2803         `container->method_hash' to cache the results so we don't create a
2804         different method if we're called several times with the same
2805         arguments.
2806
2807         * loader.c (method_from_methodspec): Use the new
2808         `container->method_hash' here, too.
2809
2810 2004-11-26  Martin Baulig  <martin@ximian.com>
2811
2812         * class.c (inflate_generic_signature): Correctly compute
2813         `res->has_type_parameters'.
2814         (mono_class_vtable): Use the `has_type_parameters' flag to
2815         determine whether we're a generic method.
2816
2817         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
2818
2819 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
2820
2821         * object.c (mono_runtime_run_main): Fix a small memory leak.
2822
2823 2004-11-25  Martin Baulig  <martin@ximian.com>
2824
2825         * class.c (set_generic_param_owner): Fixed the loop.
2826
2827 2004-11-25  Martin Baulig  <martin@ximian.com>
2828
2829         * object.c (mono_class_vtable): Don't create any JIT wrappers for
2830         generic methods.
2831
2832 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
2833
2834         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
2835         names. Fixes #69787.
2836
2837 2004-11-24  Martin Baulig  <martin@ximian.com>
2838
2839         * class.c (mono_class_create_generic_2): If we don't have a
2840         `ginst->parent', inflate `gklass->parent' to get our parent.
2841
2842 2004-11-24  Martin Baulig  <martin@ximian.com>
2843
2844         * reflection.c (compare_genericparam): Correctly sort the
2845         GenericParam table; fixes #69779.
2846
2847 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
2848
2849         * reflection.c: When writing a PE file, don't create a huge
2850         buffer in memory. Just write the arrays we have to the file.
2851         This reduces memory usage.
2852
2853         * metadata-internals.h: MonoDynamicStream pefile is no longer used
2854         globally.
2855
2856 2004-11-17  Martin Baulig  <martin@ximian.com>
2857
2858         * class.c (mono_class_init): Don't setup `class->parent' for
2859         dynamic instances; moved this to mono_class_generic_2().
2860         (mono_class_create_generic): Also set `klass->inited' for dynamic
2861         generic instances.
2862         (mono_class_create_generic_2): Don't do anything for dynamic
2863         generic instances.  Set `klass->parent' here and also call
2864         mono_class_setup_parent() here. 
2865
2866         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
2867         `MonoType *parent' argument; set `ginst->parent' before calling
2868         mono_class_create_generic_2(), so we set the correct parent.
2869
2870 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
2871
2872         * reflection.c: allow getting attributes from ModuleBuilder
2873         (used by ikvm).
2874
2875 2004-11-17  Martin Baulig  <martin@ximian.com>
2876
2877         * class.c (mono_class_create_from_typedef): If a type parameter is
2878         inherited from an outer class, set its owner to that class.
2879
2880 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
2881
2882         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
2883           for (int*) written size. This fixes bug #69592.
2884
2885 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
2886
2887         * icall.c: Added IsAuthenticodePresnet internal call.
2888         * image.c|h: New function that check a MonoImage for an Authenticode
2889         signature in the certificate PE data directory.
2890         * security.c|h: New internal call to ask the runtime if an 
2891         Authenticode signature seems referenced in the PE header.
2892
2893 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
2894
2895         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
2896
2897         * reflection.c (mono_image_create_pefile): Free the assembly streams
2898         after writing out the assembly file.
2899
2900         * object.c (mono_runtime_run_main): Fix small memory leak.
2901
2902         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
2903         property access modifiers. Fixes #69389.
2904
2905 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2906
2907         * domain.c, object.c, object-internals.h, domain-internals.h,
2908         object.h, marshal.c: keep dynamic code info per domain.
2909
2910 2004-11-15  Martin Baulig  <martin@ximian.com>
2911
2912         * class.c (mono_type_get_name_recurse): Put type arguments in
2913         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
2914         see bug #68387.
2915
2916 2004-11-15  Martin Baulig  <martin@ximian.com>
2917
2918         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
2919         (mono_class_setup_vtable): When computing `the_cname' for a
2920         generic instance, don't include the namespace since we'd otherwise
2921         add it twice.
2922
2923 2004-11-15  Martin Baulig  <martin@ximian.com>
2924
2925         * class.c (mono_class_create_generic): Changed return type to void.
2926         (mono_class_create_generic_2): New public function; setup
2927         `class->method', `class->field' and `class->interfaces' here
2928         instead of in mono_class_init().
2929
2930         * class.h (mono_class_create_generic): Moved to class-internals.h.
2931
2932 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
2933
2934         * reflection.c (mono_image_create_pefile): take a file HANDLE.
2935         rather than writing to memory, write to this file. Right now,
2936         we are just writting into a buffer, and copying that. However
2937         we can avoid the buffer later.
2938
2939         (mono_dynamic_stream_reset): new function
2940
2941         * icall.c, object-internals.h: update for the above.
2942
2943 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
2944
2945         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
2946         have been using gc'd memory. First it is slower, unlikely
2947         the comment in the source code said, secondly, it increases
2948         our footprint to do it in the gc.
2949
2950         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
2951         the method so that it does not have to copy to managed code.
2952
2953 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
2954
2955         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
2956
2957 2004-11-12  Martin Baulig  <martin@localhost>
2958
2959         * reflection.c (mono_image_create_token): Allow generic method
2960         definitions here, since they may appear in an `.override'; see
2961         gen-98/gen-99 for an example.
2962
2963 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
2964
2965         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
2966         #69365.
2967
2968         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
2969         descriptive.
2970
2971 2004-11-11  Martin Baulig  <martin@ximian.com>
2972
2973         * class.c (mono_class_setup_vtable): In an explicit interface
2974         implementation, the method name now includes the arity.
2975
2976 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
2977
2978         * object.c (mono_array_full_copy): Fix warning.
2979
2980 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
2981
2982         * appdomain.c: Removed look_for_method_by_name(). Use the new method
2983         mono_class_get_method_from_name() instead.
2984         
2985         * class-internals.h: Added two new types of wrappers. 
2986         Added MonoRemotingTarget enum. Added new trampoline function type, which
2987         takes an additional MonoRemotingTarget value as parameter, so it is
2988         possible to request a trampoline for a specific target.
2989         
2990         * class.c: Added new mono_class_get_method_from_name() method.
2991         
2992         * class.h: In MonoRemoteClass, we can have now to vtables, one for
2993         general remoting sinks and one specific for cross domain calls.
2994         
2995         * debug-helpers.c: Added new wrapper names.
2996         
2997         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
2998         of a remote class.
2999         
3000         * image.c: Porperly delete value objects form the remoting invoke hashtable.
3001         
3002         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
3003         with several other methods (mono_marshal_get_xappdomain_dispatch,
3004         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
3005         and others) can generate a fast remoting wrapper for cross domain calls.
3006         More information can be found in docs/remoting.
3007         Other changes: Removed mono_find_method_by_name, and used
3008         mono_class_get_method_from_name instead.
3009         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
3010         is stored in the remoting invoke hashtable.
3011         
3012         * marshal.h: published the new method for getting the xdomain wrapper,
3013         and also added a method for getting the adequate wrapper for a given
3014         method and target.
3015         
3016         * object-internals.h, object.c: Added a couple of methods for capying and
3017         cloning arrays.
3018         Modified mono_install_remoting_trampoline, which takes the new remoting
3019         trampoline that has a remoting target as parameter.
3020         mono_class_proxy_vtable now also takes a remoting target as parameter, and
3021         will return the most suitable vtable for the target.
3022         Added mono_remote_class_vtable, which returns the vtable of a remote class
3023         (which can be the normal remoting vtable or the xdomain vtable).
3024         
3025         * threads.c: the xdomain invoke and dispatch wrappers must also be
3026         protected against interruptions.
3027
3028 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3029
3030         * icall.c: use memmove in BlockCopyInternal when the source and
3031         destination arrays are the same.
3032
3033 2004-11-09  Martin Baulig  <martin@ximian.com>
3034
3035         * class-internals.h (MonoGenericContainer): Removed `method' and
3036         `signature', replaced them with `is_method' and `is_signature'
3037         flags.  Added `context'.
3038
3039         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
3040         instead of a `MonoGenericContainer *'.
3041
3042         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
3043         for dynamic type parameters.
3044         (mono_metadata_load_generic_params): Setup `container->context'.
3045
3046         * reflection.c (mono_reflection_setup_generic_class): Setup
3047         `tb->generic_container->context'.
3048         (do_mono_reflection_bind_generic_parameters): Use
3049         mono_class_inflate_generic_type() to correctly inflate types,
3050         rather than using our own hack just for MONO_TYPE_VAR.
3051
3052 2004-11-09  Martin Baulig  <martin@ximian.com>
3053
3054         * class.c (mono_class_inflate_generic_method): Small fix; don't
3055         crash here.
3056
3057         * icall.c
3058         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
3059         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
3060         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
3061         (ves_icall_Type_BindGenericParameters): Likewise.
3062         (ves_icall_Type_get_IsGenericInstance): Likewise.
3063         (ves_icall_Type_GetGenericParameterPosition): Likewise.
3064         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
3065         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3066         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3067
3068 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
3069
3070         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
3071         assembly versions and public key tokens. Fixes #69113.
3072
3073 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
3074
3075         * metadata.c: fix bug introduced with the type cache changes
3076         on 2004-11-06.
3077
3078 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
3079
3080         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
3081         the MonoClass pointer instead of the token in exception clauses.
3082         * reflection.c: updates for the above and make the code not depend
3083         on the structure of MonoExceptionClause.
3084
3085 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
3086
3087         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3088         Add support for dynamic assemblies. Fixes #69114.
3089
3090         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
3091
3092 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
3093
3094         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
3095         since most only those methods use it. the code member of
3096         MonoMethodPInvoke was dead, so that can be removed too. Also,
3097         remove inline_count (again, not used), and move slot so that it
3098         can share bits with some other flags. This saves 8 bytes in the
3099         structure and gives us about 50 kb back for mcs helloworld.cs
3100
3101         * *.[ch]: Do naming changes for the above.
3102
3103         * loader.c (mono_method_get_header): Lazily init the header
3104         on first access.
3105         (mono_get_method_from_token): don't init the header here
3106         (mono_free_method): the header may never be allocated
3107
3108         Overall, this saves 150 kb of unmanaged allocations
3109         for mcs helloworld.cs. That accounts for 10% of the unmanaged
3110         memory at runtime.
3111         
3112         * loader.c, loader.h (mono_method_get_header): new accessor.
3113
3114         * *.[ch]: use the above method. Prepares us to lazily load
3115         the header.
3116
3117         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
3118         three warnings, which are actual bugs (see 69206).
3119
3120         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
3121         unused. Saves a cool 4 bytes / method.
3122
3123 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3124
3125         * metadata.c (builtin_types): Add types for System.Object here.
3126         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3127         for a class or valuetype from klass->this_arg or klass->byval_arg.
3128
3129         On mcs for a hello world, this gets us down from 21836 MonoType's
3130         to 14560.
3131
3132         (mono_metadata_free_type): Account for the above change.
3133
3134 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3135
3136         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3137         exception instead of asserting if name is null.
3138         (ves_icall_System_AppDomain_GetData): Ditto.
3139
3140 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3141
3142         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3143         EnumBuilder.
3144
3145         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3146         Return NULL when the domain does not have entry_assembly set.
3147
3148         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3149         Add a 'resource_modules' argument.
3150         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3151
3152         * reflection.c (mono_reflection_create_runtime_class): Move setting
3153         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3154         for enums too.
3155
3156         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3157         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3158         Throw an ArgumentNullException if 'ptr' is null.
3159
3160         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3161         assemblies here. Fixes #69020.
3162
3163 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
3164
3165         * reflection.c (build_compressed_metadata): Fix the previous patch for
3166         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
3167         the stack.
3168
3169 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
3170
3171         * assembly.c (mono_assembly_names_equal): Allow a match if one of
3172         the cultures is false. Fixes #69090.
3173
3174         * reflection.c (build_compressed_metadata): Fix invalid memory read 
3175         detected by valgrind.
3176         
3177         * reflection.c (mono_reflection_get_type): Avoid triggering a 
3178         TypeResolve multiple times for the same type. Fixes #65577.
3179
3180 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
3181
3182         * marshal.c: Avoid using ldftn to call managed functions. It is
3183         much slower than just a call.
3184
3185         * reflection.c (mono_module_get_object): free the basename we
3186         allocate here from glib.
3187         
3188         * reflection.c (ensure_runtime_vtable): make sure to free
3189         overrides.  Also, we were allocating an array of MonoMethod not an
3190         array of MonoMethod*.
3191
3192         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
3193
3194         * image.c (mono_image_close): free image->guid here.
3195
3196 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
3197
3198         * reflection.c: Fix some spec conformance issues with the PE file
3199         structures so mcs compiled apps run on the Net 2.0 beta.
3200
3201 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
3202
3203         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
3204         Implement this. Fixes #67264.
3205
3206         * debug-helpers.h debug-helpers.c marshal.c: Move 
3207         mono_find_method_by_name to debug-helpers.c.
3208
3209 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
3210
3211         * object.c (mono_release_type_locks): type_initialization_hash is
3212         a GHashTable.
3213
3214         * reflection.c object.c object-internals.h: Fix warnings.
3215
3216         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
3217         without accessors. Fixes #61561.
3218
3219         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
3220         application base from the root domain if not set. Fixes #65641.
3221         (mono_runtime_init): Fix warning.
3222
3223 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3224
3225         * appdomain.c: call mono_thread_pool_init.
3226         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
3227         of worker threads based on the number of CPUs and the environment
3228         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
3229         for non-windows (windows) systems.
3230
3231 2004-10-27  Chris Toshok  <toshok@ximian.com>
3232
3233         * mono-debug-debugger.c (write_class): don't call mono_class_init
3234         here, as even with the check for (!klass->init_pending), we get
3235         into a situation where we're hitting cycles in class
3236         initialization.  Fixes #68816.
3237
3238 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
3239
3240         * image.c: Avoid overwriting values in the loaded_images_hash when an
3241         assembly is loaded multiple times. Fixes #61152.
3242
3243         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
3244         so multiple satellite assemblies for the same name can be loaded.
3245         Fixes #68259.
3246
3247         * mono_domain_assembly_preload: Actually return the loaded assembly, 
3248         not NULL.
3249
3250         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
3251         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
3252
3253         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
3254         pending finalizers are not invoked after the appdomain has been 
3255         unloaded. Fixes #67862.
3256
3257 2004-10-22  Martin Baulig  <martin@ximian.com>
3258
3259         * mono-debug-debugger.c
3260         (mono_debugger_runtime_invoke): Don't box valuetypes.
3261
3262 2004-10-22  Chris Toshok  <toshok@ximian.com>
3263
3264         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
3265         don't hide private methods.
3266
3267 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
3268
3269         * icall.c: Allows the runtime to "share" (when known) the public key
3270         token of an assembly. This avoid the need to recalculate the token 
3271         (from the public key) in managed code.
3272
3273 2004-10-21  Chris Toshok  <toshok@ximian.com>
3274
3275         * debug-helpers.c (append_class_name): argh, revert last patch.
3276         
3277 2004-10-21  Chris Toshok  <toshok@ximian.com>
3278
3279         * debug-helpers.c (append_class_name): use '+' as the delimiter,
3280         not '/', so that it matches what the debugger uses to look up
3281         methods.
3282
3283 2004-10-21  Martin Baulig  <martin@ximian.com>
3284
3285         * mono-debug-debugger.c (mono_debugger_throw_exception): New
3286         public method; this is called each time an exception is thrown and
3287         allows the debugger to use exception catch points.
3288
3289 2004-10-21  Martin Baulig  <martin@ximian.com>
3290
3291         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
3292         the stack pointer and the exception object in some struct and pass
3293         that to the debugger.
3294
3295 2004-10-21  Chris Toshok  <toshok@ximian.com>
3296
3297         * mono-debug-debugger.c (do_write_class): add instance/static
3298         event support.  We don't expose "raise" or "other" yet.
3299         (event_is_static): new method.
3300
3301 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
3302
3303         * mono-debug-debugger.c
3304         (mono_debugger_handle_exception): Remove
3305         bogus return value for fussy compilers.
3306
3307 2004-10-20  Martin Baulig  <martin@ximian.com>
3308
3309         * mono-debug-debugger.c
3310         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
3311         (mono_debugger_handled_exception): Likewise.
3312
3313 2004-10-20  Martin Baulig  <martin@ximian.com>
3314
3315         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3316         MONO_DEBUGGER_EVENT_EXCEPTION.
3317
3318         * mono-debug-debugger.c (mono_debugger_handle_exception): New
3319         public function to send the debugger a notification for an
3320         exception and inform it about a catch/finally clause.
3321
3322 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
3323
3324         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3325         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3326         fix 2.95 build. 
3327
3328         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
3329
3330 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
3331
3332         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
3333         marshalled as [In,Out]. Fixes #58325.
3334
3335 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
3336
3337         * reflection.c (mono_method_body_get_object): Implement some fields.
3338
3339 2004-10-12  Martin Baulig  <martin@ximian.com>
3340
3341         * reflection.c (mono_reflection_bind_generic_parameters): Small
3342         fix, correctly retrieve our parent from a generic instance.
3343
3344 2004-10-12  Martin Baulig  <martin@ximian.com>
3345
3346         * metadata.c (mono_metadata_generic_param_equal): We always have
3347         an owner.
3348
3349         * class.c
3350         (mono_class_from_generic_parameter): We need to have an owner.
3351         (my_mono_class_from_generic_parameter): Likewise.
3352
3353         * reflection.c (mono_reflection_setup_generic_class): Renamed to
3354         mono_reflection_create_generic_class() and added a new
3355         mono_reflection_setup_generic_class().  
3356         (mono_reflection_initialize_generic_param): If we're a nested
3357         generic type and inherited from the containing class, set our
3358         owner to the outer class.
3359
3360 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
3361
3362         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
3363
3364         * reflection.c (mono_method_body_get_object): New function to create
3365         a MethodBody object.
3366
3367         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
3368
3369 2004-10-11  Martin Baulig  <martin@ximian.com>
3370
3371         * metadata.c (_mono_metadata_type_equal): Renamed to
3372         do_mono_metadata_type_equal() and made static.
3373
3374 2004-10-11  Martin Baulig  <martin@ximian.com>
3375
3376         * appdomain.c: Bump corlib version number to 28.
3377
3378 2004-10-10  Martin Baulig  <martin@ximian.com>
3379
3380         * class-internals.h
3381         (MonoGenericInst): Added `MonoGenericContainer *container'.
3382         (MonoGenericMethod): Likewise.
3383         (MonoGenericContext): Likewise.
3384         (MonoGenericParam): Added `MonoGenericContainer *owner'.
3385
3386         * metadata.c
3387         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
3388         (do_mono_metadata_parse_generic_inst): Likewise.
3389         (mono_metadata_parse_type_full): New public method.  This is the actual
3390         mono_metadata_parse_type() implementation - with an additional
3391         `MonoGenericContainer *' argument.
3392         (mono_metadata_parse_array_full): Likewise.
3393         (mono_metadata_parse_signature_full): Likewise.
3394         (mono_metadata_parse_method_signature_full): Likewise.
3395         (mono_metadata_parse_mh_full): Likewise.
3396         (mono_type_create_from_typespec): Likewise.
3397         (mono_metadata_interfaces_from_typedef_full): New public method;
3398         this is similar to the other _full() methods, but we take a
3399         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
3400         (mono_metadata_parse_generic_param): Take an additional
3401         `MonoGenericContainer *' argument and lookup the MonoGenericParam
3402         from that container.
3403         (mono_metadata_generic_param_equal): New static method to compare
3404         two type parameters.
3405         (_mono_metadata_type_equal): New static method; takes an
3406         additional `gboolean signature_only' argument - if true, we don't
3407         compare the owners of generic parameters.
3408         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
3409         with a TRUE argument - do a signature-only comparision.
3410
3411         * loader.c: Use the new _full() methods and pass the
3412         MonoGenericContainer to them.
3413
3414         * object-internals.h (MonoReflectionTypeBuilder): Added
3415         `MonoGenericContainer *generic_container' field.
3416         (MonoReflectionMethodBuilder): Likewise.
3417
3418 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
3419
3420         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
3421         case initial images of dynamic assemblies.
3422
3423         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
3424
3425         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
3426
3427         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
3428         length of event->other array.
3429         (typebuilder_setup_events): Ditto.
3430
3431         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
3432         'assembly_by_name' and add an 'assemblies' list.
3433
3434         * assembly.h assembly.c: Add a new search hook for determining whenever
3435         an assembly is already loaded. Use this instead of searching in the
3436         loaded_assemblies list.
3437
3438         * domain.c appdomain.c: Implement the new search hook so loaded 
3439         assemblies are now scoped by appdomain. Fixes #67727.
3440
3441 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
3442
3443         * threads.c (mono_thread_attach): Initialize synch_lock field so
3444         mono_thread_detach works again.
3445
3446         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
3447         'lib' too. Fixes #63130.
3448
3449 2004-10-06  Jackson Harper  <jackson@ximian.com>
3450
3451         * culture-info-tables.h: regenerated.
3452
3453 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
3454
3455         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
3456         implemented by other interfaces in the result. Fixes #65764.
3457         
3458         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3459         Handle unloadable modules without crashing.
3460
3461         * image.c (load_modules): Revert the previous patch since modules must
3462         have a fixed index inside the array.
3463         
3464         * image.c (load_modules): Don't include native modules in the modules
3465         array.
3466
3467 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
3468
3469         * reflection.h: Add param_defaults field.
3470
3471         * reflection.c: Add support for parameter defaults in dynamic methods.
3472         Fixes #64595.
3473
3474         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
3475         an empty string when a type has no namespace. Fixes #64230.
3476
3477 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
3478
3479         * tabledefs.h: Added "internal" security actions to support non-CAS
3480         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
3481         Note: they do not seems to be used anymore in 2.0 (new metadata format)
3482
3483 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
3484
3485         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
3486         constructor of abstract class. Fixes #61689.
3487
3488 2004-10-04  Martin Baulig  <martin@ximian.com>
3489
3490         * class-internals.h (MonoGenericContainer): New type.
3491         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
3492         `MonoGenericContainer *generic_container'.
3493         (MonoClass): Replaced `gen_params' and `num_gen_params' with
3494         `MonoGenericContainer *generic_container'.
3495
3496         * metadata.c (mono_metadata_load_generic_params): Return a
3497         `MonoGenericContainer *' instead of a `MonoGenericParam *';
3498         removed the `num' argument.
3499
3500 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
3501
3502         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
3503         for dynamic images.
3504
3505         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
3506         machine fields.
3507
3508         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
3509
3510         * reflection.c: Save pe_kind and machine values into the generated
3511         image file.
3512
3513         * appdomain.c: Bump corlib version number.
3514
3515         * object-internals.h: Reorganize layout of LocalBuilder.
3516
3517         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
3518         New helper function.
3519
3520         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
3521         created MonoType for dynamic types. Fixes #66180.
3522
3523 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
3524
3525         * threadpool.c: the ares hashtable needs a critical section around it.
3526         this prevents some nasty segfaults
3527
3528 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
3529
3530         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
3531         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
3532         bug 67324).
3533         
3534 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3535
3536         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
3537         
3538 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
3539
3540         * image.c: Always canonicalize image file names, to avoid loading
3541         the same assembly twice when referenced using a relative path.
3542
3543 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3544
3545         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
3546
3547         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
3548
3549         * marshal.c: Fix warnings.
3550
3551 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
3552
3553         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
3554         attempting to marshal the delegate_trampoline as the method_addr.
3555         This patch has a static hashtable of marshalled delegates so that 
3556         we can map delegate_trampoline addresses back to delegates.  This
3557         allows a delegate passed to managed code to be passed back into native
3558         code.  Fixes #67039
3559
3560 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3561
3562         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
3563
3564         * reflection.c (method_encode_code): Align method headers properly.
3565         Fixes #66025.
3566
3567 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3568
3569         * marshal.c: In the runtime invoke wrapper, reset the abort
3570         exception if it is cached. This avoids the automatic rethrowal of 
3571         the exception after the catch of the wrapper. Also check for pending
3572         interruptions before calling the managed method. This is done using
3573         the new method emit_thread_force_interrupt_checkpoint, since the
3574         normal checkpoint method is ignored when running the invoke wrapper.
3575         * object.c: If the abort exception is rethrown, set the abort_exc
3576         field of the thread, so it will be rethrown aftere every catch.
3577         * threadpool.c: Only run an interruption checkpoint if what has been
3578         requested is a stop of the thread (aborts will be ignored).
3579         * threads.c: By default, a thread will now never be interrumped while
3580         running the runtime invoke wrapper (this ensures that runtime_invoke
3581         will always return to the caller if an exception pointer is provided).
3582         There is a new special method mono_thread_force_interruption_checkpoint()
3583         to force an interruption checkpoint even if running a protected
3584         wrapper, which is used by the same runtime invoke wrapper to do a check
3585         at a safe point.
3586
3587 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3588
3589         * object.c, object-internals.h: Implemented mono_release_type_locks,
3590         which releases the cctor locks held by a thread.
3591         * threads.c, threads.h: In thread_cleanup, release cctor locks held
3592         by a thread. Added mono_thread_exit() method to be used to safely stop
3593         a thread.
3594
3595 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3596
3597         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3598         Move null check before dereference.  Avoid indexing beyond the end
3599         of the 'modules' array.
3600
3601 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3602
3603         * metadata-internals.h (MonoImage): Add module_count field.
3604         * image.c (load_modules): Set image->module_count.
3605         (mono_image_load_file_for_image): Use image->module_count.
3606         * reflection.c (mono_image_load_module): Append to image->modules array 
3607         of dynamic assembly.
3608         (mono_module_get_object): Fix loop to actually increment index.
3609         Use image->module_count.
3610         * assembly.c (mono_assembly_load_references): Use image->module_count.
3611         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3612         Likewise.
3613
3614 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3615
3616         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
3617         Avoid assert on generic types.
3618
3619 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
3620
3621         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
3622
3623         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
3624
3625         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
3626         function to convert a MarshalSpec structure to its managed counterpart.
3627
3628         * reflection.c: Fix warnings.
3629         
3630         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
3631         field.
3632
3633         * icall.c (mono_create_icall_signature): Fix build.
3634
3635 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
3636
3637         * icall.c: Add MakePointType icall.
3638
3639         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
3640         warnings.
3641
3642 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3643
3644         * threadpool.c: reuse allocated slots in the queue.
3645
3646 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
3647
3648         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
3649
3650         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
3651
3652         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
3653         previous change.
3654
3655         * tabledefs.h: Add constants for pinvoke attributes BestFit and
3656         ThrowOnUnmappableChar.
3657
3658         * icall.c (ves_icall_Type_GetPacking): New icall.
3659
3660 2004-09-24  Martin Baulig  <martin@ximian.com>
3661
3662         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
3663
3664 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3665
3666         * appdomain.c:
3667         (mono_domain_set): allow setting a domain that is being unloaded.
3668         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
3669         being unloaded.
3670
3671 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3672
3673         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
3674         the GetCustomAttributes icall.
3675
3676 2004-09-23  Martin Baulig  <martin@ximian.com>
3677
3678         * object-internals.h (MonoReflectionGenericParam): Replaced
3679         'has_ctor_constraint', `has_reference_type' and `has_value_type'
3680         with `guint32 attrs'.
3681
3682 2004-09-23  Martin Baulig  <martin@ximian.com>
3683
3684         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
3685
3686 2004-09-23  Martin Baulig  <martin@ximian.com>
3687
3688         * object-internals.h (GenericParameterAttributes): New enum.
3689
3690 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3691
3692         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
3693         
3694         * class.c (init_events): Fill out event->other field.
3695
3696         * class.c: Fix warnings.
3697
3698         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
3699
3700 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
3701
3702         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
3703         walk which doesn't supply the IL offset.
3704
3705 2004-09-22  Martin Baulig  <martin@ximian.com>
3706
3707         * reflection.c (mono_reflection_setup_internal_class): If we're
3708         System.ValueType, System.Object or System.Enum, set
3709         `klass->instance_size' and create the vtable.
3710         (mono_reflection_create_internal_class): If we're an enum type,
3711         get the base class from our current corlib.
3712
3713 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
3714
3715         * reflection.h (MonoResolveTokenError): New type.
3716
3717         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
3718         icall.
3719
3720         * icall.c: Add an 'error' argument to the ResolveToken icalls.
3721
3722 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
3723
3724         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
3725         Support also calling constructors, but only for already allocated objects.
3726
3727 2004-09-17  Geoff Norton <gnorton@customerdna.com>
3728
3729         * reflection.c (type_get_qualified_name): If the klass is null
3730         return the typename to avoid a NullRefEx.
3731         (encode_cattr_value): Get the qualified name of the boxed type,
3732         not the underlying enumtype.  Fixes #62984.
3733
3734 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
3735
3736         * marshal.c: Fix problems with previous checkin.
3737
3738 2004-09-21    <vargaz@freemail.hu>
3739
3740         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
3741         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
3742
3743         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
3744
3745 2004-09-21  Geoff Norton <gnorton@customerdna.com>
3746
3747         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
3748         should only return a type for pointers, arrays, and passbyref types.
3749         Fixes bug #63841.
3750
3751 2004-09-21  Martin Baulig  <martin@ximian.com>
3752
3753         * domain.c (mono_debugger_check_runtime_version): New public
3754         function.
3755
3756         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
3757
3758 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
3759
3760         * reflection.c: Added missing sort to the declarative security 
3761         attributes table. MS implementation stops seeing the attributes if the
3762         token number regress in the table (as shown by ildasm and permview).
3763
3764 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
3765
3766         * object-internals.h (MonoReflectionModule): Add 'token' field.
3767         
3768         * reflection.c (mono_reflection_get_token): Add support for Module
3769         and Assembly.
3770         (mono_module_get_object): Set 'token' field.
3771         (mono_module_file_get_object): Set 'token' field.
3772
3773         * icall.c: Add new Assembly and Module icalls.
3774
3775         * appdomain.c: Bump corlib version.
3776
3777 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
3778
3779         * loader.h loader.c class.h class.c: Add helper functions for obtaining
3780         tokens of metadata objects.
3781
3782         * reflection.h reflection.c (mono_reflection_get_token): New function
3783         to obtain the token of a metadata object.
3784
3785         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
3786
3787 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
3788
3789         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
3790         
3791         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
3792
3793 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
3794
3795         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
3796         * object-internals.h: Added 3 MonoArray* members to MonoReflection
3797         AssemblyBuilder to access the permissions set in the class lib.
3798         * reflection.c: Added security attributes encoding step in 
3799         mono_image_build_metadata.
3800         * tabledefs.h: Added new security actions defined in 2.0:
3801         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
3802
3803 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3804
3805         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
3806         macro parameter.
3807
3808 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3809  
3810         * locales.c: nullify the ICU_collator member of CompareInfo when it is
3811           finalized. There where random SIGSEVs at program termination, when
3812           an object being finalized was trying to do a string comparison and
3813           the current culture was already finalized.
3814  
3815 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3816
3817         * threads.c: call thread_cleanup before finishing the thread if we get
3818         there.
3819
3820 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
3821
3822         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
3823         assemblies from the parent. Fixes #65665.
3824
3825 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
3826
3827         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
3828         modifiers.
3829
3830 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
3831
3832         * reflection.h: add prototype for mono_get_dbnull_object
3833         * reflection.c: add prototypes for get_default_param_value_blobs 
3834         and mono_get_object_from_blob for fussier compilers
3835
3836 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
3837  
3838         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
3839         false deadlock checks in class initialization.
3840  
3841 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
3842
3843         * image.c (mono_image_addref): Fix comment.
3844
3845         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
3846         possible.
3847
3848 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
3849
3850         * reflection.c (mono_param_get_objects): Modified to return
3851         ParameterInfo.DefaultValue object.
3852
3853         (get_default_param_value_blobs):
3854         (mono_get_object_from_blob):
3855         (mono_get_dbnull_object): New helper routines. 
3856
3857         * object.c (mono_get_constant_value_from_blob): New helper routine
3858         carved out from get_default_field_value ()
3859
3860         * object-internals.h (mono_get_constant_value_from_blob): Added
3861         function declaration.
3862
3863 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
3864
3865         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
3866         referenced assemblies. Fixes #62135.
3867
3868         * exception.h exception.c (mono_get_exception_file_not_found2): New
3869         helper function.
3870
3871 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
3872
3873         * class.h class.c: Add mono_type_get_underlying_type ().
3874
3875 2004-09-09  Geoff Norton <gnorton@customerndna.com>
3876
3877         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
3878         Fix GetTypes() to support dynamically created assemblies.
3879
3880 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
3881
3882         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
3883         
3884         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
3885         previous patch.
3886
3887         * reflection.h reflection.c loader.c: Allow dynamic construction of
3888         pinvoke methods. Fixes #65571.
3889         
3890         * reflection.c (mono_reflection_get_type): Revert previous change since
3891         it causes regressions.
3892
3893 2004-09-08  Martin Baulig  <martin@ximian.com>
3894
3895         * class.c (class_compute_field_layout): Don't call
3896         mono_class_layout_fields() for open generic instances.
3897
3898 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
3899         * threads.c appdomain.c: fix typo in GC macro
3900
3901 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3902
3903         * threads.c: don't call mono_thread_detach() in start_wrapper(),
3904         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
3905
3906 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
3907
3908         * image.c (mono_image_close): Applied patch from 
3909         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
3910         assembly is loaded multiple times from data.
3911         
3912         * image.c (mono_image_open): Fix warning.
3913
3914 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3915
3916         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
3917         once. Fixes #58334.
3918         
3919         * reflection.c (mono_reflection_create_runtime_class): Initialize
3920         klass->nested_classes. Fixes #61224.
3921
3922 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3923
3924         * threads.c: sched_yield() on exit, to allow threads to quit.
3925
3926 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3927
3928         * object.c (mono_unhandled_exception): Remove leftover debug code.
3929
3930 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
3931
3932         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
3933
3934 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3935
3936         * marshal.c (emit_marshal_array): Really null terminate string arrays.
3937         
3938         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
3939
3940 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3941
3942         * marshal.c (emit_marshal_array): Null terminate string arrays.
3943         
3944         * marshal.c (raise_auto_layout_exception): Fix warning.
3945
3946         * reflection.c (mono_param_get_objects): Initialize the default value
3947         with DBNull.Value, not null. Fixes #62123.
3948
3949 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
3950
3951         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
3952         throw an exception with a cute explanation.
3953
3954 2004-09-06  Dick Porter  <dick@ximian.com>
3955
3956         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
3957         Close the new process's thread handle, as we don't use it.  The
3958         handle stays around forever otherwise.
3959
3960 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3961
3962         * object.c (arith_overflow): Fix warning.
3963
3964         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
3965         calling conventions in method refs. Fixes #65352.
3966
3967         * reflection.c: Fix warnings.
3968
3969 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3970
3971         * icall.c: Add a new icall for Array.Clear
3972
3973 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
3974
3975         * object.c: When allocating an array, we have to throw
3976         an overflow exception if any of the lengths are < 0.
3977
3978 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
3979
3980         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
3981         properly. Also move implementation of string array marshalling to 
3982         managed code. Fixes #42316.
3983
3984 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3985
3986         * assembly.c: provide more information when loading an assembly fails.
3987
3988 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3989
3990         * filewatcher.c: don't expect the development fam package to be
3991         installed.
3992
3993 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
3994
3995         * marshal.c: Make a copy of the signature cookie since it will be
3996         freed by the caller.
3997         
3998         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
3999
4000         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
4001
4002         * metadata.c (mono_metadata_free_marshal_spec): New function to free
4003         marshal specs.
4004
4005         * marshal.c: More refactoring.
4006         
4007         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
4008         smaller functions.
4009
4010 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
4011
4012         * object.c: In mono_message_invoke, fill the output parameter array after
4013           calling the managed method (it was done before the call). This fixes
4014           bug #59299.
4015
4016 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4017
4018         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
4019         as well.
4020
4021 2004-09-02  Martin Baulig  <martin@ximian.com>
4022
4023         * class.c (mono_class_instance_size): Don't allow generic type
4024         definitions or open generic instances.
4025         (mono_class_array_element_size): If we're a value type, call
4026         mono_class_instance_size() on the original class.
4027
4028         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
4029         handle generic instances.
4030
4031         * mono-debug-debugger.c (write_type): Handle generic instances
4032         like classes.
4033
4034 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4035
4036         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
4037         the allocation request fails. Fixes #65089.
4038
4039         * object.c (mono_runtime_free_method): Do not call mono_free_method.
4040         
4041         * object.c (mono_runtime_free_method): New function to free a dynamic
4042         method.
4043
4044         * marshal.c (mono_delegate_free_ftnptr): New function to free the
4045         delegate trampoline.
4046
4047         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
4048         with hasthis as dynamic,
4049
4050         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
4051
4052         * domain.c (mono_jit_info_table_remove): New function to remove an
4053         entry from the jit info table.
4054
4055         * class-internals.h (MonoMethod): Add 'dynamic' field.
4056
4057         * loader.c: Fix warnings.
4058
4059 2004-09-01  Martin Baulig  <martin@ximian.com>
4060
4061         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
4062         instead of mono_debugger_lock() because the latter one is a no-op
4063         unless running in the debugger.
4064
4065 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4066
4067         * class.c (class_compute_field_layout): Classes with auto-layout or
4068         reference fields are not blittable.
4069         
4070 2004-09-01  Dick Porter  <dick@ximian.com>
4071
4072         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
4073         mono_image_get_filename() to get the assembly location.
4074
4075         * icall.c:
4076         * metadata.h: Fix compile warnings
4077
4078 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4079
4080         * class.c (class_compute_field_layout): System.Object is blittable.
4081
4082         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
4083         as in/out. Fixes #59909.
4084
4085 2004-09-01  Martin Baulig  <martin@ximian.com>
4086
4087         * metadata.h (MONO_TYPE_ISREFERENCE): Call
4088         mono_metadata_generic_inst_is_valuetype() if we're a generic
4089         instance to check whether our underlying type is a reference type.
4090
4091 2004-09-01  Martin Baulig  <martin@ximian.com>
4092
4093         * metadata.c (mono_type_size): If we're a generic instance, call
4094         mono_class_value_size() for value types.
4095
4096 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
4097
4098         * marshal.c: Implement more custom marshalling functionality. Fixes
4099         #64915.
4100
4101 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4102
4103         * mono-debug.c, debug-mono-symfile.c: add some locking love.
4104
4105 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
4106
4107         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
4108
4109         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
4110
4111         * icall.c: Fix some warnings.
4112
4113         * threads.c (abort_appdomain_thread): Fix unref errors.
4114         (mono_thread_current): Fix THREAD_DEBUG define.
4115
4116 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
4117
4118         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
4119
4120         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
4121
4122 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4123
4124         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4125         string arrays.
4126
4127 2004-08-28  Martin Baulig  <martin@ximian.com>
4128
4129         * metadata.c
4130         (mono_metadata_generic_inst_is_valuetype): New public function.
4131
4132         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4133         mono_metadata_generic_inst_is_valuetype() if we're a generic
4134         instance to check whether our underlying type is a valuetype.
4135
4136 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4137
4138         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4139         #63768.
4140
4141 2004-08-25  Martin Baulig  <martin@ximian.com>
4142
4143         * loader.c (mono_get_method_from_token): Abstract methods can also
4144         be generic and thus have type parameters.
4145
4146         * metadata-internals.h
4147         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4148
4149         * reflection.c (mono_image_get_generic_param_info): Don't create a
4150         metadata row, just add an entry to the `gen_params' array.
4151         (build_compressed_metadata): Sort the `gen_params' array and then
4152         actually create the metadata.
4153
4154 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4155
4156         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4157
4158 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4159
4160         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4161
4162 2004-08-24  Martin Baulig  <martin@ximian.com>
4163
4164         * class.cs (mono_class_is_subclass_of): Like an interface, a
4165         generic instance also derives from System.Object.
4166
4167 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
4168
4169         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
4170         custom modifiers to be in any order. Fixes #61990.
4171
4172 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
4173
4174         * object.c: Register mono_object_new_fast icall.
4175         
4176         * object.c (mono_class_get_allocation_ftn): Return to calling
4177         mono_object_new_fast, since it seems faster to compute the object 
4178         size in unmanaged code than passing it as a parameter.
4179
4180         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
4181
4182         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
4183         this function with Boehm as the oom handler, so we don't have to check
4184         the result of GC_malloc.
4185
4186         * object.c: Remove checks for oom.
4187
4188         * object.h object.c (mono_class_get_allocation_ftn): New function to
4189         return the icall which can be used to allocate an instance of a given
4190         class. 
4191
4192         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
4193
4194         * class-internals.h: Add 'enabled' field.
4195
4196 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
4197
4198         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
4199
4200 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
4201         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
4202         value 0x0010.
4203
4204 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4205
4206         * appdomain.c: use the Tls function for appdomain too,
4207         at Zoltan's request. Actually return in mono_context_get
4208
4209         * appdomain.c, profiler.c, threads.c: use __thread
4210
4211 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
4212
4213         * appdomain.c threads.c: Call GC_CreateThread on windows.
4214
4215         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
4216         multiple libraries since this don't work on windows.
4217
4218 2004-08-18  Martin Baulig  <martin@ximian.com>
4219
4220         * class-internals.h
4221         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
4222         MonoMethodHeader.
4223
4224         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
4225         MonoMethodNormal since we also need it for abstract and interface
4226         methods.
4227
4228         * reflection.c
4229         (build_compressed_metadata): Sort the GenericParam table.
4230         (mono_image_create_token): Added `gboolean create_methodspec'
4231         argument; this is false when generating a MethodImpl token.
4232         (reflection_methodbuilder_to_mono_method): Abstract and interface
4233         methods may also have generic parameters.
4234
4235 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4236
4237         * appdomain.c: thread local alloc
4238
4239 2004-08-17  Martin Baulig  <martin@ximian.com>
4240
4241         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
4242
4243         * icall.c
4244         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
4245         argument.
4246
4247         * class.c (mono_type_get_full_name): New public function.
4248         (mono_type_get_name): Don't include the type arguments.
4249
4250 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
4251
4252         * Makefile.am: Build static versions of libmetadata and libmonoruntime
4253         for inclusion into the mono executable.
4254
4255 2004-08-16  Martin Baulig  <martin@ximian.com>
4256
4257         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
4258         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
4259
4260 2004-08-14  Martin Baulig  <martin@ximian.com>
4261
4262         * class.c (dup_type): Also copy the `byref' field.
4263
4264 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
4265
4266         * reflection.c (create_dynamic_mono_image): Revert the last change 
4267         since it breaks bootstrap.
4268
4269 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
4270
4271         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
4272
4273         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
4274         not free them with g_free.
4275
4276 2004-08-11  Martin Baulig  <martin@ximian.com>
4277
4278         * reflection.c (mono_reflection_setup_internal_class): Also call
4279         mono_class_setup_mono_type() if we already have a `tb->type.type'.
4280
4281 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
4282
4283         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
4284         called during default (first) AppDomain creation. Keep track of
4285         Evidence when loading assemblies.
4286
4287 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4288
4289         * opcodes.c, opcodes.h: reduce runtime relocations.
4290
4291 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
4292
4293         * culture-info.h, locales.c: fixes and chages to sue the new
4294         optimized format of the locale data.
4295         * culture-info-tables.h: regenerated.
4296
4297 2004-08-06  Geoff Norton <gnorton@customerdna.com>
4298         
4299         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
4300
4301 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
4302
4303         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
4304         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
4305         * domain-internals.h: icall declaration.
4306         * icall.c: icall registration.
4307         * object-internals.h: New fields in MonoAssembly for CAS.
4308
4309 2004-08-05  Duncan Mak  <duncan@ximian.com>
4310
4311         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
4312         CEE_LDELEM_ANY.
4313
4314 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4315
4316         * reflection.c: fix to deal with object[] arrays in custom ctors
4317         (bug #62550).
4318
4319 2004-08-05  Martin Baulig  <martin@ximian.com>
4320
4321         * class.c (mono_class_array_element_size): Added support for
4322         generic instances and correctly handle "recursive" types.
4323
4324 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
4325
4326         * assembly.c: Fix warnings.
4327
4328 2004-08-04  Martin Baulig  <martin@ximian.com>
4329
4330         * class.c
4331         (mono_type_get_name_recurse): Added `gboolean include_arity'
4332         argument specifying whether or not we should include the generic
4333         arity in the type name.
4334         (_mono_type_get_name): New static function.
4335         (mono_class_setup_vtable): If we're a generic instance, don't
4336         include the generic arity in the names of explicit method
4337         implementations.        
4338
4339 2004-08-03  Martin Baulig  <martin@ximian.com>
4340
4341         * class.c (mono_type_get_name_recurse): Enclose the generic type
4342         arguments in `<', '>'.
4343
4344 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4345
4346         * gc.c: make GC warning messages use the trace API, they are just
4347         noise to most of the users.
4348
4349 2004-08-03  Martin Baulig  <martin@ximian.com>
4350
4351         * debug-mono-symfile.c (read_string): Correctly read the string.
4352
4353 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
4354
4355         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
4356         
4357         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
4358         icalls.
4359         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
4360
4361 2004-07-30  Martin Baulig  <martin@ximian.com>
4362
4363         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
4364         Reflect latest symbol writer changes.   
4365
4366 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4367
4368         * object.c: always create an object if null is passed
4369         to Invoke() where a valuetype is expected.
4370
4371 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
4372
4373         * marshal.c (mono_marshal_init): make managed
4374         signatures match native ones better for 64bits.
4375
4376 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4377
4378         * appdomain.c: hack to build correctly the private bin path on windows.
4379         Fixes bug #61991.
4380
4381 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
4382
4383         * assembly.c: Load mscorlib from the correct framework directory
4384           (mono/<version>/mscorlib.dll).
4385         * appdomain.h: Added prototypes for new functions.
4386         * internals.h: Added some prototypes.
4387         * domain.c: When initializing the runtime, get from the executable and
4388           the configuration files the runtime version that the app supports.
4389           Added support methods for reading app.exe.config. Added list of versions
4390           supported by the JIT. Added two new methods: mono_init_from_assembly,
4391           which initializes the runtime and determines the required version from
4392           the provided exe file, and mono_init_version, which initializes
4393           the runtime using the provided version.
4394         * icall.c: Get machine.config from version-specific directory.
4395         * reflection.c: When generating an image, embed the version number
4396           of the current runtime.
4397
4398 2004-07-28  Dick Porter  <dick@ximian.com>
4399
4400         * socket-io.c
4401         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
4402         returned sockaddr size before creating the remote address object.
4403         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
4404         61608.
4405
4406 2004-07-28  Dick Porter  <dick@ximian.com>
4407
4408         * locales.c (string_invariant_compare_char): Fix invariant char
4409         compares between upper and lower cases.  Fixes bug 61458.
4410
4411 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
4412         
4413         * marshal.c: actually cache stelem.ref wrappers.
4414         
4415 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4416
4417         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
4418         sections and remove the mono_cli_rva_map () function.
4419
4420 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4421
4422         * debug-mono-symfile.c: fix one more endianess issue, from a patch
4423         by Geoff Norton (<gnorton@customerdna.com>).
4424
4425 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4426
4427         * class.c: fix class loads for pointer types (typeof(int) !=
4428         typeof(int*)).
4429
4430 2004-07-27  Martin Baulig  <martin@ximian.com>
4431
4432         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
4433         reading the debugging information from an external ".mdb" file.
4434
4435 2004-07-24  Martin Baulig  <martin@ximian.com>
4436
4437         * reflection.c (mono_image_get_type_info): Only write a class
4438         layout entry if we actually have a size or a packing size.
4439
4440 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4441
4442         * reflection.c (type_get_fully_qualified_name): 
4443         insert cast to get type checking of ?: with non-gcc compilers
4444
4445 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4446
4447         * rand.c: use g_getenv for both lookups of
4448         MONO_EGD_SOCKET
4449
4450 2004-07-17  Martin Baulig  <martin@ximian.com>
4451
4452         * reflection.c (mono_reflection_bind_generic_method_parameters):
4453         Set `gmethod->reflection_info'.
4454
4455 2004-07-17  Martin Baulig  <martin@ximian.com>
4456
4457         * class.c (mono_class_create_from_typedef): Insert the newly
4458         created class into the hash table before computing the interfaces
4459         since we could be called recursively.
4460
4461 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
4462
4463         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
4464         function to implement stelem.ref in managed code
4465         * class-internals.h, debug-helpers.c: a new wrapper type
4466         for the above.
4467
4468 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4469
4470         * gc.c: allow GC handles to work even when no GC is compiled in.
4471         Fix part of bug #61134 (GetAddrOfPinnedObject).
4472
4473 2004-07-13  Peter Williams  <peter@newton.cx>
4474  
4475         * process.c (complete_path): Make sure we don't attempt to execute
4476         directories.
4477  
4478 2004-07-12  Geoff Norton <gnorton@customerdna.com>
4479
4480         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
4481           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
4482           and will add/subtract the hour if needed
4483
4484 2004-07-12  Martin Baulig  <martin@ximian.com>
4485
4486         * reflection.c (mono_field_get_object): If we have
4487         `field->generic_info', take the attributes from
4488         `field->generic_info->generic_type'.    
4489
4490 2004-07-12  Martin Baulig  <martin@ximian.com>
4491
4492         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
4493         This function must be called before initializing the runtime.
4494         (mono_debug_init_1): New function; call this after initializing
4495         the runtime, but before loading the assembly.  It tells the
4496         debugger to load corlib and the builtin types.
4497
4498         * mono-debug-debugger.c: Did some larger changes in the debugging
4499         code; support recursive class declarations, make sure we actually
4500         add all classes.
4501
4502 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4503
4504         * debug-helpers.c: undo my previous patch and fixed the real issue in
4505         ../mini/exceptions-x86.c
4506
4507 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4508
4509         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
4510         when no HOME env. variable was set and a NullRef was thrown in a .cctor
4511         called from other .cctors.
4512
4513 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
4514
4515         * loader.c: Removed the mono_loader_wine_init hack now that we are
4516         doing a managed version of Windows.Forms.
4517
4518 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
4519
4520         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
4521         threadpool.c, threads.c: remove static data from rootset.
4522
4523 2004-07-09  Dick Porter  <dick@ximian.com>
4524
4525         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4526         Don't do any more processing if the matched length was 0.  It was
4527         increasing the size of the string before.  Fixes bug 61167.
4528
4529 2004-07-09  Dick Porter  <dick@ximian.com>
4530
4531         * socket-io.h:
4532         * socket-io.c
4533         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4534         Add support for SO_PEERCRED if its available.
4535
4536 2004-07-09  Peter Bartok <pbartok@novell.com>
4537         * loader.c: winelib.exe.so error message is now only displayed if
4538         MONO_DEBUG is set. To help us avoid questions when people are trying
4539         out the new Managed.Windows.Forms.
4540
4541 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
4542
4543         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
4544         for isinst and castclass wrappers.
4545
4546         * class-internals.h icall.c: Move registration and lookup of JIT icalls
4547         to libmetadata from the JIT, so they could be used by the marshalling
4548         code and the interpreter.
4549
4550         * marshal.c: Register marshalling related JIT icalls here instead of
4551         in mini.c. Use CEE_MONO_ICALL instead of the family of 
4552         CEE_MONO_PROC<x> opcodes to call marshalling functions.
4553
4554         * metadata.h: Remove unneeded marshalling conversions.
4555
4556         * opcodes.c: Update for new opcodes.
4557         
4558 2004-07-08  Martin Baulig  <martin@ximian.com>
4559
4560         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
4561         (mono_debug_get_domain_data): Make this function static.
4562
4563 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4564
4565         * gc.c, object.h: add nice GC handle API for embedders.
4566
4567 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
4568
4569         * reflection.c: more changes for the new api
4570
4571         * object.c: When we reflect on a field w/ a constant value, it
4572         will not have a memory location, so we must access metadata. Also,
4573         allow easier reading of strings so that we can read them from
4574         the constant data.
4575
4576         * class.c (mono_class_layout_fields): no need for literal fields here.
4577
4578         * class-internals.h: api changes for const fields
4579
4580         * icall.c (ves_icall_get_enum_info): use new apis for const fields
4581
4582 2004-07-06  Martin Baulig  <martin@ximian.com>
4583
4584         * mono-debug.h: Increment version number to 44.
4585
4586         * mono-debug.c (mono_debug_add_wrapper): The second argument is
4587         now a gpointer, rewrote this whole method.
4588
4589         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
4590         function.  Add information about the wrapper in a new "misc table".
4591
4592         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
4593         for the new misc table.
4594
4595 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
4596
4597         * metadata-internals.h image.c: Add a cache for helper signatures.
4598
4599         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
4600
4601 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
4602
4603         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
4604         delegates from a delegate. Fixes #61033.
4605         
4606         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
4607         marshalling of stringbuilder arrays. Fixes #59900.
4608
4609 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
4610
4611         * icall.c: Add EnumBuilder:setup_enum_type icall.
4612
4613 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
4614
4615         * icall.c: Added a new icall for the property version of
4616         OffsetOfStringData.
4617
4618 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
4619
4620         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
4621         it has a constant size across platforms.
4622
4623         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
4624         stack trace.
4625
4626 2004-06-29  Martin Baulig  <martin@ximian.com>
4627
4628         * mono-debug.c (mono_debug_add_method): Protect the whole function
4629         in mono_debugger_lock(), not just parts of it.
4630
4631 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4632
4633         * reflection.c: make sure padding bytes in heaps are zeroed.
4634
4635 2004-06-24  David Waite  <mass@akuma.org>
4636
4637         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
4638         image.c, loader.c, locales.c, marshal.c, metadata.c,
4639         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
4640         string-icalls.c, threads.c: change to C90-style comments from C99 /
4641         C++ -style
4642
4643 2004-06-24  Dick Porter  <dick@ximian.com>
4644
4645         * threads.c
4646         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
4647         return createdNew.  Fixes bug 60412.
4648
4649         * threads-types.h: 
4650         * icall.c: Add createdNew parameter to CreateMutex icall
4651
4652 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4653
4654         * reflection.c, object-internals.h: save default value in params.
4655
4656 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4657
4658         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
4659         no need to build a new path combining that with the application base.
4660         Fixes bug #60442.
4661
4662 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
4663
4664         * reflection.c: fixed minor standard compliance issues.
4665
4666 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4667
4668         * reflection.c: fixed issue with encoding some custom attributes
4669         (arrays in properties and fields, bug #60411).
4670
4671 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4672
4673         * reflection.c: fix start address when copying the public key token.
4674
4675 2004-06-23  Martin Baulig  <martin@ximian.com>
4676
4677         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
4678         the `exc' object in a static object to put it into the GC's root set.
4679
4680 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4681
4682         * reflection.c: make mono_reflection_setup_internal_class ()
4683         callable a second time to setup a new parent class.
4684
4685 2004-06-23  Dick Porter  <dick@ximian.com>
4686
4687         * threads.c: Check for WAIT_IO_COMPLETION return values.
4688
4689 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
4690
4691         * appdomain.c: Removed the g_free on the public key token. Now copy 
4692         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
4693         * assembly.c: Added public key token string value when loading 
4694         assemblies. Fix bug #60439.
4695         * icall.c: Added missing informations (like public key) in 
4696         GetReferencedAssemblies. Fix #60519.
4697         * image.h: Changed definition for public key token from const char*
4698         public_tok_value to guchar public_key_token [17];
4699         * reflection.c: Updated for changes to public key token.
4700
4701 2004-06-22  Lluis Sanchez Gual
4702
4703         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
4704         for the field in base classes.
4705
4706 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4707
4708         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
4709         mark headers as not supported, they are installed only for use by the
4710         debugger.
4711
4712 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
4713
4714         * *.c, *.h: avoid namespace pollution in public headers.
4715
4716 2004-06-21  Martin Baulig  <martin@ximian.com>
4717
4718         * exception.c (mono_get_exception_security): It's in
4719         "System.Security", not in "System".
4720
4721         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
4722         the exception classes.
4723
4724 2004-06-21  Martin Baulig  <martin@ximian.com>
4725
4726         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
4727         Protect the exception object from being finalized.
4728
4729 2004-06-21  Martin Baulig  <martin@ximian.com>
4730
4731         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
4732         public function.
4733
4734 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
4735
4736         * reflection.c: Load the assembly in mono_reflection_type_from_name,
4737         if it was not loaded before. Fix parts of #60439.
4738
4739 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
4740
4741         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
4742         code that was broken since Ben's change: wrappers are now
4743         dependent on the method signature only again.
4744
4745 2004-06-21  Martin Baulig  <martin@ximian.com>
4746
4747         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
4748         added interface support.
4749
4750 2004-06-21  Martin Baulig  <martin@ximian.com>
4751
4752         * class.c (mono_vtable_get_static_field_data): New public method.
4753
4754 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
4755
4756         * filewatcher.c : Windows build fix to be compliant with API changes.
4757
4758 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4759
4760         * class.h, class.c: more accessors.
4761         * metadata.h, metadata.c: prepare for hiding MonoType and
4762         MonoMethodSignature: people should use the accessors from now on
4763         outside of the tree.
4764
4765 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4766
4767         * *.c, *.h: more API cleanups.
4768
4769 2004-06-18  Jackson Harper  <jackson@ximian.com>
4770
4771         * assembly.c: Trace loading assemblies.
4772         * loader.c: Trace loading native libraries.
4773         * mono-config.c: Trace loading config files.
4774         
4775 2004-06-18  Dick Porter  <dick@ximian.com>
4776
4777         * locales.c: Tell ICU the lengths of strings, it can cope with
4778         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
4779
4780 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
4781
4782         * image.c: swapped name/filename;
4783
4784 2004-06-18  Martin Baulig  <martin@ximian.com>
4785
4786         * mono-debug-debugger.c (write_class): Write the parent class at
4787         the end of the header.
4788
4789 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4790
4791         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
4792
4793 2004-06-17  Raja R Harinath  <rharinath@novell.com>
4794
4795         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
4796         (bundle_obj): New conditional define.
4797         (BUILT_SOURCES): Remove.
4798         ($(bundle_srcs)): Make parallel-make safe.
4799         (libmonoruntime_la_LIBADD): Make unconditional.
4800         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
4801         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
4802
4803 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
4804
4805         * culture-info-tables.h: It was inconsistent with the latest
4806           supp info files.
4807
4808 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
4809
4810         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
4811         be loaded.
4812
4813         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
4814         with gcc 2.95.
4815
4816 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4817
4818         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
4819         cleaned up public header threads.h.
4820
4821 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4822
4823         * Makefile.am, *.c, *.h: more API cleanups.
4824
4825 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4826
4827         * Makefile.am: removed monosn from compilation.
4828         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
4829         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
4830         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
4831         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
4832         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
4833         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
4834
4835 2004-06-15  Jackson Harper  <jackson@ximian.com>
4836
4837         * assembly.c: Make locales lower case when searching the GAC for
4838         assemblies. gacutil will always make locales lowercase when
4839         installing so this effectively makes them case insensitive.
4840         
4841 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
4842
4843         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
4844         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
4845           parameter which allows to choose whether the wait can be interrupted or 
4846           not. Also added the method mono_monitor_enter(), which locks the monitor
4847           using an infinite wait and without allowing interruption.
4848           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
4849           interrupted.
4850         * object.h: Added new fields in MonoThread. suspend_event holds the event
4851           used to susped/resume the thread. synch_lock is the lock object to use for
4852           modifying the thread state.
4853         * threads.c: Use the new synch_lock object for locking, instead of "this",
4854           which can generate deadlocks.
4855           Moved thread state change in Thread.Sleep and Thread.Join from managed
4856           to unmanaged code. This avoids a deadlock when the thread was suspended
4857           just after acquiring the thread lock.
4858           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
4859           Implemented Thread.Suspend using an event instead of ThreadSuspend,
4860           which is not fully implemented in the io-layer.
4861         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
4862
4863 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
4864
4865         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
4866         threads-types.h: more API cleanups.
4867
4868 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4869
4870         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
4871         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
4872         threadpool.c, threads.c: first pass at the exported API cleanup.
4873
4874 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4875
4876         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
4877
4878 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4879
4880         * icall.c: added internalGetHome.
4881
4882 2004-06-14  Dick Porter  <dick@ximian.com>
4883
4884         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
4885         possible to return successfully when '.' or '..' were the only
4886         entries in a directory, but were skipped.  The MonoIOStat was not
4887         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
4888         Fixes bug 59574.
4889
4890 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4891
4892         * reflection.c: make binaries run on .Net 1.1 by default.
4893
4894 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
4895
4896         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
4897
4898 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
4899
4900         * marshal.c: keep track of struct size with explicit layout
4901         (bug #59979).
4902
4903 2004-06-12  Martin Baulig  <martin@ximian.com>
4904
4905         * mono-debug-debugger.c: Comment out a debugging g_message().
4906
4907 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4908
4909         * reflection.c, reflection.h: do not free custom attrs that are cached.
4910         * icall.c: use braces to make code clearer.
4911
4912 2004-06-11  Martin Baulig  <martin@ximian.com>
4913
4914         * class.h (MonoInflatedField): New type.
4915         (MonoClassField): Replaced `MonoType *generic_type' with
4916         `MonoInflatedField *generic_info'.
4917
4918         * icall.c
4919         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
4920
4921 2004-06-11  Martin Baulig  <martin@ximian.com>
4922
4923         * reflection.c (mono_image_create_method_token): Correctly encode
4924         varargs methods.
4925
4926 2004-06-11  Martin Baulig  <martin@ximian.com>
4927
4928         * metadata.c (mono_metadata_parse_method_signature): When parsing
4929         a MethodDef which has VarArgs, also set sentinelpos if we don't
4930         have any parameters.
4931
4932 2004-06-11  Martin Baulig  <martin@ximian.com>
4933
4934         * verify.c (mono_method_verify): In CEE_CALL, use
4935         mono_method_get_signature() to get the method's signature, unless
4936         we're a PInvoke method.
4937
4938 2004-06-10  Jackson Harper  <jackson@ximian.com>
4939
4940         * assembly.c: Use <path>/lib/mono/gac for the extra paths
4941         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
4942         logical name as the supplied path is just a prefix to the gac not
4943         the direct path to it.
4944         
4945 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
4946
4947         * reflection.c: make the token for a created method match
4948         the token of the MethodBuilder it was created from
4949         (IKVM requires this behaviour now).
4950
4951 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
4952
4953         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
4954         reflection.c, socket-io.c: leak fixes.
4955
4956 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
4957
4958         * icall.c: handle sentinel pos in vararg methods in position different
4959         from 0.
4960
4961 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4962
4963         * culture-info-tables.h: freshly generated.
4964
4965 2004-06-09  Martin Baulig  <martin@ximian.com>
4966
4967         * loader.c (mono_get_method_constrained): Call `mono_class_init
4968         (constrained_class)'.   
4969
4970 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
4971
4972         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
4973         any methods. Fixes #59629.
4974
4975 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
4976
4977         * culture-info-tables.h: reflecting locale-builder updates.
4978
4979 2004-06-08  Dick Porter  <dick@ximian.com>
4980
4981         * object.h:
4982         * locales.c: Fixed compile warnings, including a real bug in
4983         CompareInfo_internal_compare.
4984         
4985 2004-06-08  Dick Porter  <dick@ximian.com>
4986
4987         * locales.c
4988         (ves_icall_System_Globalization_CompareInfo_internal_index):
4989         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4990         Double-check the resuls of usearches, because ICU currently
4991         ignores most of the collator settings here.  Fixes bug 59720.
4992         
4993 2004-06-08  Dick Porter  <dick@ximian.com>
4994
4995         * locales.c
4996         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
4997         Fix memory leak and segfault-causing typo.  No idea how this one
4998         lasted so long without being noticed.
4999
5000 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
5001
5002         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
5003         any methods. Fixes #59629.
5004
5005 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5006
5007         * assembly.c:
5008         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
5009         own the critical section before). Removed dead code (that's done
5010         in the preload hook).
5011
5012         (mono_assembly_load_with_partial_name): call the preload hook.
5013
5014 2004-06-08  Martin Baulig  <martin@ximian.com>
5015
5016         * metadata.c (mono_metadata_signature_alloc): Default
5017         `sentinelpos' to -1.
5018
5019         * reflection.c (mono_image_get_array_token): Likewise.
5020
5021 2004-06-08  Martin Baulig  <martin@ximian.com>
5022
5023         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
5024
5025         * metadata.c (mono_metadata_parse_method_signature): When parsing
5026         a MethodDef which has VarArgs, set sentinelpos.
5027
5028         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
5029         `gint16' since we're using -1 for non-varargs methods.
5030
5031         * reflection.c
5032         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
5033         (method_encode_signature): Added varargs support.
5034         (method_builder_encode_signature): Likewise.
5035         (mono_image_get_varargs_method_token): New static method.
5036         (mono_image_create_method_token): New public method; this is
5037         called via an icall instead of mono_image_create_token() when
5038         calling a varargs method.       
5039
5040 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
5041
5042         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
5043
5044 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5045
5046         * culture-info-tables.h : Reflecting the latest locale-builder that
5047           fixed empty array representation ({} to {0}).
5048
5049 2004-06-07  Jackson Harper  <jackson@ximian.com>
5050
5051         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
5052         looking up extra gac paths. This allows MONO_GAC_PATH to act
5053         exactly like a prefix.
5054         
5055 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5056
5057         * reflection.c (mono_reflection_type_from_name): Make a copy of the
5058         type name before modifying it. Fixes #59405.
5059
5060 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5061
5062         * culture-info.h: added fields for "all datetime patterns".
5063         * locales.c: (  ves_icall_System_Globalization_CultureInfo
5064           _construct_datetime_format ()): fill xxx_patterns fields.
5065         * object.h: added fields for "all datetime patterns" to
5066           MonoDateTimeFormatInfo.
5067         * culture-info-tables.h: reflecting locale-builder updates.
5068
5069 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5070
5071         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
5072         the event has no add and remove methods. Fixes #59629.
5073
5074 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
5075
5076         * object.c: Fixed possible integer overflow when allocating large
5077         strings.
5078
5079 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5080
5081         * culture-info-tables.h: reflecting locale-builder updates.
5082
5083 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5084
5085         * culture-info-tables.h: reflecting locale-builder updates.
5086
5087 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
5088
5089         * culture-info-tables.h: reflecting locale-builder updates.
5090
5091 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
5092
5093         * threads.c: Made Thread.Sleep abortable.
5094
5095 2004-06-02  Martin Baulig  <martin@ximian.com>
5096
5097         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
5098
5099         * debug-mono-symfile.h: Bumped symbol file version number to 37.
5100
5101 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
5102
5103         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
5104
5105 2004-05-30  Jackson Harper  <jackson@ximian.com>
5106
5107         * reflection.c: Do not hardcode assembly versions or public key
5108         tokens anymore. All of this except the corlib section was dead
5109         code anyways.
5110         
5111 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
5112
5113         * object.c (mono_runtime_invoke_array): Automatically create boxed
5114         objects for byref valuetypes if needed. Fixes #59300.
5115         
5116         * object.c (mono_method_return_message_restore): Handle 
5117         MONO_TYPE_OBJECT as well.
5118
5119 2004-05-28  Jackson Harper  <jackson@ximian.com>
5120
5121         * reflection.c: The modified type encoding was causing build
5122         problems. Reverted for now.
5123         
5124 2004-05-28  Jackson Harper  <jackson@ximian.com>
5125
5126         * reflection.c/h: Take an assembly ref so that we dont create
5127         fully qualified names when encoding types in the same assembly as
5128         the custom attribute being emitted.
5129         * appdomain.c: Increment version number.
5130         
5131 2004-05-26  Duncan Mak  <duncan@ximian.com>
5132
5133         * icall.c
5134         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5135         Set the full version number (major, minor, build, revision).
5136
5137 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5138
5139         * marshal.c (emit_struct_conv): increment src/dst after blit
5140         (mono_marshal_get_managed_wrapper,
5141         mono_marshal_get_native_wrapper): make sure we have marshalling
5142         info before marshalling params (info computation affects
5143         blittable)
5144
5145         * class.c (class_compute_field_layout): correctly deal with
5146         blittable
5147         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5148         value types (as per what windows dows by default)
5149         (mono_class_setup_mono_type): System.ValueType is blittable
5150         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5151         blittable
5152
5153         * marshal.c (mono_marshal_load_type_info): flag types  as
5154         non-blittable if the native layout doesn't match the managed
5155         layout
5156
5157 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5158
5159         * appdomain.c: don't add stuff in the private search path that is
5160         above the application base. If application base is not set, there's
5161         no private search path.
5162
5163 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
5164
5165         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
5166         byref struct arguments in native->managed marshalling.
5167
5168 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
5169
5170         * marshal.c (mono_marshal_get_runtime_invoke): correctly
5171         cache methods using signature (special case for methods
5172         that are value type or string class)
5173         
5174         * image.c (mono_image_close): clean up allocated GSList's
5175         in runtime_invoke_cache.
5176
5177 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5178
5179         * mono-config.c: set the correct path for mono_cfg_dir on windows when
5180         there's no MONO_CFG_DIR environment variable defined.
5181
5182 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5183
5184         * threads.c: windows version must be >= 0x0500 to include OpenThread.
5185
5186 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
5187
5188         * threadpool.c: Really wait for 500ms after the async call, even if the wait
5189           is interrumped.
5190         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
5191           before waiting for it, and call CloseHandle after the wait to unref it.
5192           This will make sure that handles are not disposed too early.
5193
5194 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5195
5196         * appdomain.c:
5197         * appdomain.h:
5198         * icall.c: removed
5199         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
5200         needed now.
5201
5202         * object.c: se the application_base only for the domain that runs
5203         Main. Fixes bug #59216,
5204
5205 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5206
5207         * appdomain.c:
5208         * object.c: only the domain in which Main is run have
5209         SetupInformation.ConfigurationFile set, so moved a few lines from
5210         appdomain.c to object.c.
5211
5212 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5213
5214         * appdomain.c: we tried to load [name].(dll|exe), but according
5215         to bug #57710, we must also try [culture]/[name].(dll|exe) and
5216         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
5217         There's a test case attached to bug #58922.
5218
5219 2004-05-27  Dick Porter  <dick@ximian.com>
5220
5221         * icall.c:
5222         * file-io.c: Implemented icalls for locking and unlocking regions
5223         in a file.
5224         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
5225         FALSE on error (fixes both compiler warning and real bug.)
5226
5227 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
5228
5229         * culture-info-tables.h: reflecting locale-builder updates.
5230
5231           (Added missing ChangeLog entry for 05/26)
5232
5233 2004-05-27  Jackson Harper  <jackson@ximian.com>
5234
5235         * locales.c: Fix some cut and paste errors.
5236         
5237 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5238
5239         * mono-config.c: set the correct path for config. directory on windows.
5240
5241 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5242
5243         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
5244           on win32.
5245
5246 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5247
5248         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
5249         from pinvoke functions.
5250         
5251         * marshal.c (mono_ftnptr_to_delegate): Implement this.
5252
5253 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5254
5255         * culture-info-tables.h: reflecting locale-builder updates.
5256
5257 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5258
5259         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
5260         #59086.
5261
5262 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
5263
5264         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
5265         * icall.c: Modified icalls for RNG.
5266         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
5267         Windows (CryptoAPI).
5268
5269 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5270
5271         * locales.c: Fix build.
5272
5273 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5274
5275         * culture-info-tables.h: reflecting locale-builder updates.
5276
5277 2004-05-25  Jackson Harper  <jackson@ximian.com>
5278
5279         * locales.c: When creating the current culture use the $LANGs
5280         specific culture. So DateTimeFormat and NumberFormat entries are created.
5281         
5282 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5283
5284         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
5285         a char array as parameter.
5286
5287 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
5288
5289         * image.c: In mono_image_open(), always use an absolute path name to
5290           look for already loaded images.
5291
5292 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
5293
5294         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
5295         missing in the windows build (like older cygwin include files).
5296
5297 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
5298
5299         * icall.c: Fixed check for possible integer overflow in Buffer_
5300         BlockCopy icall. Replaced comments style // by /* */.
5301
5302 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
5303
5304         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
5305         
5306         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
5307         check after MONO_VTADDR. Fixes pinvoke2.exe.
5308
5309         * marshal.h marshal.c metadata.h: Add beginnings of support for
5310         ftnptr -> delegate marshalling.
5311
5312 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
5313
5314         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
5315         * threads.c: Fix warnings.
5316
5317 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
5318
5319         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5320         * icall.c: Registered icalls for Suspend and Resume.
5321         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5322           Thread.Abort.
5323         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5324         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5325         * process.c: Use WaitForSingleObjectEx.
5326         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
5327           checkpoints.
5328         * threads.c, threads.h: Make use of new Ex wait methods. Improved
5329           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
5330           for Suspend and Resume. Added new mono_thread_stop, used for stoping
5331           background threads. Added basic support for Abort in Windows.
5332           Start new threads using a managed delegate invoke wrapper. This wrapper
5333           has an interruption checkpoint that is needed since an interruption
5334           can be requested before the thread leaves the unmanaged code that starts 
5335           the thread.
5336         * marshal.c: Added interruption checkpoint after every native call, and
5337           also before managed calls for wrappers called from unmanaged code to
5338           go into managed code.
5339         * object.h: Added new field in MonoThread to keep track of interruption
5340           requests.
5341
5342 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
5343
5344         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
5345         calls.
5346
5347 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5348
5349         * appdomain.c:
5350         * assembly.c:
5351         * gc.c:
5352         * locales.c:
5353         * mono-config.c:
5354         * rand.c: getenv -> g_getenv (windows!)
5355
5356         * process.c: complete_path is also used on non-windows platforms.
5357
5358 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5359
5360         * icall.c: new signature for Process_Start.
5361
5362         * process.[ch]: new signature for Process_Start. If we're on windows
5363         and UseShellExecute is false, we have to search for the program by
5364         ourselves if we don't get a full path.
5365
5366 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
5367
5368         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
5369         marshalling and call CleanUpNativeData if needed. Fixes #58646.
5370
5371 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5372
5373         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
5374         Fixes bug #58373.
5375
5376 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5377
5378         * process.c: use double quotes to quote program name and arguments on
5379         windows. Fixes bug #58575.
5380
5381 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5382
5383         * file-io.c: don't return "." and ".." when using windows Find*File.
5384
5385 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
5386
5387         * marshal.c: Don't pass wrappers to message init because method 
5388         addressed used to lookup metadata. part of remoting[2|3] fix.
5389
5390 2004-05-15  Jackson Harper  <jackson@ximian.com>
5391
5392         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
5393         path is essentially the same as MONO_PATH except that it points to
5394         GACs instead of lib directories.
5395         * loader.h: The user gac is gone so we dont need function to
5396         enable/disable it.
5397         * mono-config.c: user gac option is now gone.
5398         
5399 2004-05-15  Jackson Harper  <jackson@ximian.com>
5400
5401         * culture-info.h: Make defines more consistent, add calendar data
5402         to the culture info table.
5403         * culture-info-tables.h: Add basic calendar data. Basically
5404         everyone gets default gregorian until all the data is
5405         updated.
5406         * locales.c: Use the new consistent defines. Set calendar data for
5407         culture info objects.
5408         * object.h: add a field for calendar data to CultureInfo
5409         
5410 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
5411
5412         * image.c: image->runtime_invoke_cache is keyed on signatures now.
5413         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
5414         a signature.
5415         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
5416         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
5417         an extra param that is the pointer of the method to invoke. The IL for
5418         the invoke method is no longer specific to the method, but to the
5419         signature of the method. Thus, we can share the same code for multiple
5420         methods. This reduces the number of methods that have to be compiled.
5421
5422 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
5423
5424         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
5425
5426         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5427
5428         * icall.c: Optimize Buffer.BlockCopy.
5429
5430 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5431
5432         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
5433         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
5434         quote). Changed them to "MMMM yyyy".
5435
5436 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
5437
5438         * rand.c
5439         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
5440
5441 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
5442
5443         * reflection.h: Updated after changes to managed structures.
5444
5445         * appdomain.c: Bump corlib version.
5446
5447 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5448
5449         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
5450         windows.
5451
5452 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5453
5454         * Makefile.am: link to ../os/libmonoos.la on windows.
5455
5456         * assembly.c:
5457                 -If MONO_DEBUG, warn about non-existing directories in
5458                 MONO_PATH.
5459                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
5460                 compile time variable.
5461                 -Removed init_default_path and call mono_set_rootdir from
5462                 libmonoos.a instead (windows only).
5463
5464         * assembly.h: declare mono_assembly_getrootdir().
5465
5466         * domain.c:
5467         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
5468
5469         * loader.c: s/getenv/g_getenv/
5470
5471 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
5472
5473         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
5474
5475         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
5476
5477         * metadata.h: Add new marshalling conversions.
5478
5479         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
5480         function.
5481
5482         * reflection.c (mono_reflection_get_type): Lookup the type in all
5483         modules of a multi-module assembly. Fixes #58291.
5484
5485 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
5486
5487         * threads.c: Before aborting a background, set the StopRequested
5488         state.  This avoids throwing the Abort exception.
5489         In mono_thread_manage, don't continue with the shutdown until all
5490         aborted threads have actually stopped.
5491
5492 2004-05-10  Jackson Harper  <jackson@ximian.com>
5493
5494         * locales.c: Remove the modifier from culture names.
5495         
5496 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5497
5498         * Makefile.am: monosn is not installed any more. It has been deprecated
5499         in favor of sn.
5500
5501 2004-05-07  Jackson Harper  <jackson@ximian.com>
5502
5503         * locales.c
5504         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
5505         Fix array construction, add bailout if the length is 0.
5506
5507 2004-05-07  Dick Porter  <dick@ximian.com>
5508
5509         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
5510         machine doesn't have a DNS entry.  Patch by Urs Muff
5511         (umuff@quark.com), fixes bug 57928.
5512
5513 2004-05-06  Jackson Harper  <jackson@ximian.com>
5514
5515         * reflection.c: Handle null PublicTokens properly. alloc mem for
5516         assembly names culture so we dont crash when freeing it.
5517         
5518 2004-05-06  Jackson Harper  <jackson@ximian.com>
5519
5520         * assembly.c: Check the usergac when loading with partial names.
5521         
5522 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5523
5524         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
5525         does nothing for now (not required for Linux/Windows) but the class
5526         library can call it (and a newer or modified runtime could need it).
5527         * icall.c: Registred icall.
5528
5529 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5530
5531         * loader.c: prints a message on module loading error we set MONO_DEBUG
5532         environment variable.
5533
5534 2004-05-05  Jackson Harper  <jackson@ximian.com>
5535
5536         * appdomain.c: Handle PublicKeyToken=null properly.
5537         
5538 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5539
5540         * environment.c|h: Added icall ves_icall_System_Environment_
5541         GetOSVersionString to get the current OS version as a string.
5542         * icall.c: Registred icall.
5543
5544 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
5545
5546         * object.c: in mono_object_get_virtual_method(), take into account that
5547         non-virtual methods don't have a slot in the vtable. Check needed when
5548         the object is a proxy.
5549
5550 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
5551
5552         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
5553         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
5554
5555         * object.c (mono_class_compute_gc_descriptor): Fix warning.
5556
5557         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
5558         passed when a valuetype is expected.
5559
5560         * object.c (mono_unhandled_exception): Only set the exit code if the
5561         exception happens in the main thread. Fixes thread5.exe.
5562
5563         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
5564         invalid names. Fixes #58047.
5565
5566 2004-05-03  Jackson Harper  <jackson@ximian.com>
5567
5568         * assembly.c: This line was committed accidently and is unneeded.
5569         
5570 2004-05-03  Jackson Harper  <jackson@ximian.com>
5571
5572         * icall.c: Add new icall for Assembly::LoadWithPartialName
5573         * assembly.c/.h: new function that probes the GAC to load partial
5574         assembly names by Paolo Molaro.
5575         
5576 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5577
5578         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
5579         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
5580         (type_get_fully_qualified_name): Added PublicKeyToken when building a
5581         full type name.
5582
5583 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5584
5585         * appdomain.c: fixed check for 'neutral' culture and removed warning.
5586         * reflection.c: fix bug when parsing a full type name and Version is not
5587         the last thing in the string.
5588
5589 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
5590
5591         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
5592         crashes when it is freed.
5593
5594 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5595
5596         * assembly.c: print the compat warning to stderr.
5597
5598 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
5599
5600         * assembly.c (mono_assembly_load_references): Add a compatibility
5601         hack to run old applications that might be still referencing the
5602         3300-based assemblies, only do this for System.xxx.
5603
5604 2004-05-01  Jackson Harper  <jackson@ximian.com>
5605
5606         * appdomain.c: If the culture is neutral we set it to "".
5607         
5608 2004-04-29  Jackson Harper  <jackson@ximian.com>
5609
5610         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
5611
5612 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
5613  
5614         * string-icalls.c: added low overhead function for copying chars
5615         * icall.c: added needed icall for the above function
5616  
5617 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5618
5619         * icall.c: fix return value of get_global_assembly_cache.  Implemented
5620         Environment.GetLogicalDrives.
5621
5622 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
5623
5624         * rand.c: try and talk to egd or prngd
5625         for random bytes if opening devices fail.
5626
5627 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
5628
5629         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
5630         alignment for the type using the native alignment of its members 
5631         instead of using klass->min_align.
5632
5633         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
5634
5635 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5636
5637         * file-io.c:
5638         * socket-io.c: added check for sys/aio.h.
5639
5640 2004-04-28  Dick Porter  <dick@ximian.com>
5641
5642         * threads.c: Don't abort a thread thats already aborting, when
5643         terminating everything.
5644
5645 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5646
5647         * icall.c: added 2 new async calls for Socket.
5648
5649         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
5650         IO on *nix systems.
5651
5652         * threadpool.c: removed unused variable.
5653
5654 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
5655
5656         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
5657
5658 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5659
5660         * locales.c: put back string_invariant_tolower () and
5661         string_invariant_toupper ().
5662
5663 2004-04-26 David Waite <mass@akuma.org>
5664
5665         * file-io.h:
5666         * socket-io.h:
5667         * threads.h:
5668         * unicode.h: remove comma from end of enumeration declarations
5669
5670 2004-04-26 David Waite <mass@akuma.org>
5671
5672         * debug-mono-symfile.h:
5673         * decimal.c:
5674         * mono_debug.h:
5675         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
5676
5677
5678 2004-04-26  Jackson Harper  <jackson@ximian.com>
5679
5680         * appdomain.c: Increment version number.
5681         
5682 2004-04-26  Jackson Harper  <jackson@ximian.com>
5683
5684         * appdomain.c: Set assembly references public token value when
5685         PublicKeyToken is specified, not the hash_value. Free public token
5686         values when free assembly name data. Previously the public key
5687         token was hex decoded, however we are using hex encoded public key
5688         tokens, so this is not neccasary.
5689         * assembly.c: Lookup assemblies in the gac if their public token
5690         value is set. Add function to allow enabling user gac
5691         lookups. Specify whether or not the assembly was loaded from the
5692         GAC. Compare full assembly names when checking the cache for
5693         assemblies (Temporarily disabled see comment in code). Remove
5694         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
5695         specifies trace-loader they get extra info to stdout on the
5696         loading of assemblies.
5697         * image.h: Add a field for an assembly references public token
5698         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
5699         whether an assembly has been loaded from the GAC.
5700         * image.c: Remove a corlib -> mscorlib name mapping.
5701         * loader.h: Add function to enable/disable the user gac.
5702         * mono-config.c: Check if the usergac is enabled in the config
5703         file.
5704         * icall.c: New icall to determine whether or not an assembly has
5705         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
5706         * tabldefs.h: Add constant for assemblyref flag that specifies a
5707         full public key is used instead of a public token.
5708         * reflection.c: Remove mscorlib -> corlib mappings. Set
5709         PublicTokenValue instead of hash value. This value is a hex
5710         string so it does not need to be expanded.
5711
5712 2004-04-26  Martin Baulig  <martin@ximian.com>
5713
5714         * mono-debug-debugger.c (mono_debugger_initialize): Set
5715         `mono_debugger_initialized' before calling mono_debug_lock().
5716
5717 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
5718
5719         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
5720           InternalToUpper/InternalToLower.
5721         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
5722           removed invariant culture shortcut.  This is now done in managed code.
5723         * locales.c: (string_invariant_toupper/tolower) removed.
5724
5725 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5726
5727         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
5728         Added Poll internal call.
5729
5730         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
5731         call for Poll. Select was too heavy for polling a single socket.
5732
5733         * threadpool.[ch]: added mono_threadpool_cleanup.
5734         * threads.c: use it. Don't use Thread_Abort on windows.
5735
5736 2004-04-23  Martin Baulig  <martin@ximian.com>
5737
5738         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
5739
5740 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
5741
5742         * icall.c: Registred new icalls for key pair protection and added an
5743         icall for Environment.GetFolderPath on Windows.
5744         * security.c|h: Added new icalls for key pair protection.
5745
5746 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5747
5748         * socket-io.c: don't display the non-supported family warning for known
5749         families. Now this is not displayed on windows when checking support
5750         for IPv4/IPv6.
5751
5752 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5753
5754         * class.c: don't display the layout warning for static fields.
5755
5756 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
5757
5758         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
5759         * locales.c, locales.h: Added new icalls for culture-specific
5760         Char.ToLower and Char.ToUpper.
5761
5762 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5763
5764         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
5765         by David Waite.
5766
5767 2004-04-20  Martin Baulig  <martin@ximian.com>
5768
5769         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
5770         of the type name before passing it to mono_reflection_type_from_name().
5771
5772 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
5773
5774         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
5775         encodings here. Fixes #56965.
5776
5777 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
5778
5779         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5780         fix test on strstr result not that I can see anything that
5781         relies on the result.
5782
5783 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
5784
5785         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
5786         Fixes #57081.
5787
5788         * marshal.c (mono_marshal_get_string_encoding): New helper function.
5789
5790         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
5791         function to determine which marshalling to use for strings. Fixes
5792         #56965.
5793
5794         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
5795
5796         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
5797
5798 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
5799
5800         * icall.c: #include mono-config.h
5801
5802 2004-04-15  Jackson Harper  <jackson@ximian.com>
5803
5804         * culture-info-tables.h: Fix date formats for en-US culture.
5805         
5806 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
5807
5808         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
5809         ThreadPool.SetMinThreads.
5810         * threadpool.c: Implemented ThreadPool.GetMinThreads and
5811         ThreadPool.SetMinThreads.
5812
5813 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5814
5815         * mono-config.c: also load the .config file in the directory
5816         where the assembly was found.
5817
5818 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
5819
5820         * assembly.c: load per-assembly config files.
5821         * icall.c: decrapified code to get the config dir and moved to
5822         mono-config.c.
5823         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
5824         per-assembly config files. When doing a dll map lookup give precedence
5825         to the per-assembly data.
5826
5827 2004-04-14  Martin Baulig  <martin@ximian.com>
5828
5829         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
5830         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
5831         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
5832
5833         * mono-debugger-debugger.c: While the debugger is locked, remember
5834         whether the symbol tables have changes and send one single
5835         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
5836
5837 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
5838
5839         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
5840
5841         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
5842         function.
5843
5844         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
5845         account when marshalling string arrays. Fixes #56965.
5846
5847 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
5848
5849         * icall.c: Add new icalls mapping for security.
5850         * security.c|h: Add internal calls for WindowsIdentity,
5851         WindowsImpersonationContext and WindowsPrincipal.
5852
5853 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
5854
5855         * class.c: Added comment to ensure the System.MonoDummy class
5856         is removed when no longer necessary
5857
5858 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
5859
5860         * appdomain.c: Pass arguments to the bootstraping exceptions to
5861         minimize JITed methods at boot
5862
5863         * metadata.c (mono_exception_from_name_two_strings): Allow for the
5864         second string to be null.
5865
5866         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5867         Change the protocol to minimize the JIT methods at startup.  Now
5868         it Returns the internal codepage, if the value of "int_code_page"
5869         is 1 at entry, and we can not compute a suitable code page
5870         number, returns the code page as a string.
5871
5872 2004-04-13  Jackson Harper  <jackson@ximian.com>
5873
5874         * culture-info-tables.h: Fix number of decimal digits for all
5875         english locales.
5876
5877 2004-04-13  Jackson Harper  <jackson@ximian.com>
5878
5879         * icall.c: Clairfy out of sync error message. It is not always
5880         your corlib that is out of sync.
5881
5882 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
5883
5884         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
5885         properties when only the set accessor is overriden. Fixes #55874.
5886
5887 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
5888
5889         * assembly.c (mono_assembly_load_references): Make this thread safe.
5890         Fixes #56327.
5891
5892 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
5893
5894         * monosn.c: Add missing initialization calls.
5895
5896 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
5897
5898         * locales.c:
5899         ves_icall_System_Globalization_CultureInfo_construct_number_format
5900         Fix g_assert so it compiles on fussier compilers re int/ptr
5901         mismatch
5902
5903 2004-04-08  Dick Porter  <dick@ximian.com>
5904
5905         * socket-io.h:
5906         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
5907         53992.  Also rearrange the code so that the internal calls return
5908         an error value and exceptions are thrown from managed code.
5909
5910         * icall.c: Add type info to the socket icalls.
5911
5912 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5913
5914         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
5915         owes me a beer.
5916
5917 2004-04-07  Martin Baulig  <martin@ximian.com>
5918
5919         * class.c (mono_class_from_generic_parameter): Don't default
5920         `klass->parent' to `mono_defaults.object_type'.
5921
5922 2004-04-07  Martin Baulig  <martin@ximian.com>
5923
5924         * reflection.c (mono_reflection_initialize_generic_parameter): Set
5925         `param->pklass->reflection_info'.       
5926
5927 2004-04-07  Jackson Harper  <jackson@ximian.com>
5928
5929         * culture-info-tables.h: Fix date separator symbol.
5930         
5931 2004-04-07  Martin Baulig  <martin@ximian.com>
5932
5933         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
5934         from System.Type to System.MonoType.
5935
5936 2004-04-07  Martin Baulig  <martin@ximian.com>
5937
5938         * reflection.h
5939         (MonoReflectionGenericParam): Added `has_reference_type' and
5940         `has_value_type' fields.
5941
5942         * reflection.c (mono_image_get_generic_param_info): Encode the
5943         correct flags if we have the `class' or `struct' constraint.
5944
5945 2004-04-07  Martin Baulig  <martin@ximian.com>
5946
5947         * reflection.h
5948         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
5949
5950 2004-04-07  Jackson Harper  <jackson@ximian.com>
5951
5952         * appdomain.c: Revert extra patches, just wanted to bump the
5953         version number.
5954         
5955 2004-04-07  Jackson Harper  <jackson@ximian.com>
5956
5957         * Makefile.am: Add culture-info private headers.
5958         * icall.c: Add new icalls for contructing locales.
5959         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
5960         * locales.h: Declare new culture info construction methods.
5961         * object.h: Add new fields used to avoid the CultureMap to
5962         MonoCultureInfo.
5963         * culture-info.h: Definition of structs used in the culture info
5964         tables.
5965         * culture-info-tables.h: Autogenerated tables that contain culture
5966         info data. This file was generated with the locale-builder tool.
5967         * appdomain.c: Incement corlib version number.
5968         
5969 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
5970
5971         * appdomain.c: (mono_runtime_init) move mono_thread_init
5972         to before mono_object_new calls so critical sections
5973         are initialized before use.
5974
5975 2004-04-07  Martin Baulig  <martin@ximian.com>
5976
5977         * icall.c
5978         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
5979         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
5980         (ves_icall_MonoGenericParam_initialize): Removed.
5981         (monogenericparam_icalls): Removed.
5982         (generictypeparambuilder_icalls): Added new table for
5983         System.Reflection.Emit.GenericTypeParameterBuilder.
5984
5985         * reflection.c
5986         (mono_reflection_define_generic_parameter): Removed.
5987         (mono_reflection_initialize_generic_parameter): This is now called
5988         from GenericTypeParameterBuilder's .ctor.
5989
5990 2004-04-06  Martin Baulig  <martin@ximian.com>
5991
5992         * class.c (mono_class_init): Don't inflate nested classes in a
5993         generic instance.
5994         (mono_type_get_name_recurse): Include the generic arguments for
5995         generic instances and generic type declarations.
5996         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
5997         (_mono_class_get_instantiation_name): Removed.
5998         (mono_class_create_generic): Always use `gklass->name' as our name.
5999
6000         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
6001
6002         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
6003         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
6004         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
6005         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
6006         closed generic methods here.
6007
6008         * reflection.c
6009         (mono_reflection_generic_inst_get_nested_types): Removed.
6010         (inflate_mono_method): Copy the generic parameters from the
6011         MonoMethodHeader into out MonoGenericMethod.
6012
6013 2004-04-06  Martin Baulig  <martin@ximian.com>
6014
6015         * row-indexes.h
6016         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
6017
6018         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
6019
6020         * reflection.c (build_compressed_metadata): If we have any entries
6021         in the GenericParam, MethodSpec or GenericParamConstraint tables,
6022         set the header version to 1.1.
6023
6024 2004-04-06  Martin Baulig  <martin@ximian.com>
6025
6026         * class.c (mono_class_init): If we're a generic instance,
6027         initialize our nested classes, too.
6028         (_mono_class_get_instantiation_name): Deal with the new `!%d'
6029         suffix. 
6030
6031 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6032
6033         * process.c: quote the argument passed to the shell on windows.
6034
6035 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
6036
6037         * threads.c (mono_alloc_special_static_data): Allow this to be
6038         called during startup.
6039
6040 2004-04-02  Martin Baulig  <martin@ximian.com>
6041
6042         * icall.c
6043         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
6044
6045 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
6046
6047         * icall.c: Fix build.
6048
6049 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
6050
6051         * Makefile.am: Added security.c|h.
6052         * icall.c: Added icall for get_UserName;
6053         * security.c: New file for security related icalls. Added function
6054         get_UserName for System.Environment (fix #56144).
6055         * security.h: New. Header file for security.c
6056
6057 2004-04-02  Dick Porter  <dick@ximian.com>
6058
6059         * icall.c: Deleted the icalls that were obsoleted some time ago
6060         by the ICU string code, and which were mixed into the icall
6061         rearranging.  Fixes bug 55969.
6062
6063         * string-icalls.h: 
6064         * string-icalls.c: Deleted the code that those icalls reference.
6065
6066 2004-04-01  Martin Baulig  <martin@ximian.com>
6067
6068         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
6069
6070         * class.c (mono_class_from_generic_parameter): Don't set 
6071         TYPE_ATTRIBUTE_INTERFACE.
6072         (my_mono_class_from_generic_parameter): Likewise.
6073
6074 2004-04-01  Martin Baulig  <martin@ximian.com>
6075
6076         * loader.c (find_method): Added an optional `MonoClass *ic'
6077         argument to search in a specific interface.
6078         (mono_get_method_constrained): New public function.
6079
6080 2004-04-01  Martin Baulig  <martin@ximian.com>
6081
6082         * reflection.c (mono_image_get_generic_field_token): Use the
6083         `handleref' cache here.
6084
6085 2004-04-01  Martin Baulig  <martin@ximian.com>
6086
6087         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
6088
6089         * reflection.c (create_generic_typespec): Use the `typespec' hash
6090         here, not the `typeref' one.    
6091
6092 2004-04-01  Martin Baulig  <martin@ximian.com>
6093
6094         * class.c (mono_class_inflate_generic_type): Moved the
6095         functionality into a new static inflate_generic_type() which
6096         returns NULL if it didn't do anything.  Only increment the
6097         `mono_stats.inflated_type_count' if we actually inflated
6098         something.
6099         (mono_class_get_full): Check the classes type to see whether we
6100         need to inflate it; also inflate MONO_TYPE_(M)VAR.
6101
6102 2004-04-01  Jackson Harper  <jackson@ximian.com>
6103
6104         * reflection.c: Set culture for assembly references.
6105         
6106 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
6107
6108         * reflection.[ch], icall.[ch], Fix support for pinning variables.
6109
6110 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6111
6112         * assembly.c:
6113         (do_mono_assembly_open): the critical section also covers
6114         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
6115
6116 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6117
6118         * threads.c:
6119         (mono_manage_threads): abort the background threads when finishing.
6120         Fixes bug #47232.
6121
6122 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6123
6124         * gc.c: only close the done_event handle if there was no timeout.
6125         C-ified comments.
6126
6127 2004-03-30  Martin Baulig  <martin@ximian.com>
6128
6129         * icall.c (icall_entries): It's called "System.Activator", not
6130         "System.Activation".    
6131
6132 2004-03-30  Martin Baulig  <martin@ximian.com>
6133
6134         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6135         (mono_class_create_from_typespec): Likewise.
6136
6137 2004-03-30  Martin Baulig  <martin@ximian.com>
6138
6139         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6140         `has_ctor_constraint' and `initialized'.
6141
6142 2004-03-30  Martin Baulig  <martin@ximian.com>
6143
6144         * reflection.c (encode_new_constraint): New static function to add
6145         the constructor constraint attribute to a type parameter.
6146         (encode_constraints): Call encode_new_constraint() if necessary.
6147
6148         * reflection.h
6149         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6150
6151         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6152         
6153 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6154
6155         * reflection.c, icall.c: add support for pinning variables. 
6156
6157 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6158
6159         * marshal.c (mono_marshal_get_managed_wrapper):
6160         init bool local with zero rather than null.
6161
6162 2004-03-29  Martin Baulig  <martin@ximian.com>
6163
6164         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
6165         the "official" behavior here.
6166         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
6167
6168 2004-03-29  Martin Baulig  <martin@ximian.com>
6169
6170         * icall.c: Reflect latest API changes.
6171
6172 2004-03-29  Martin Baulig  <martin@ximian.com>
6173
6174         * loader.c (mono_get_method_from_token): Also call
6175         mono_metadata_load_generic_params () for abstract and interface
6176         methods; replace the type arguments in the method signature with
6177         the ones which are loaded from the metadata.
6178
6179 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
6180
6181         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
6182         of the lock is not the current thread. MS.NET don't do it, in spite of
6183         what the documentation says. See bug #56157.
6184
6185 2004-03-28  Martin Baulig  <martin@ximian.com>
6186
6187         * class.c (mono_class_init): Don't call init_properties() and
6188         init_events() for generic instances; set `prop->parent' when
6189         inflating properties.
6190
6191         * reflection.c (mono_generic_inst_get_object): Call
6192         `mono_class_init (ginst->klass)'.
6193         (mono_type_get_object): Only create a MonoGenericInst if your
6194         generic type is a TypeBuilder.
6195         (do_mono_reflection_bind_generic_parameters): Only set
6196         `ginst->is_dynamic' if our generic type is a TypeBuilder.
6197
6198 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
6199
6200         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
6201         Fixes #56091.
6202
6203 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6204
6205         * icall.c: added Kill_internal icall.
6206         * process.[ch]: added Kill_internal icall.
6207
6208 2004-03-25  Martin Baulig  <martin@ximian.com>
6209
6210         * class.h (MonoStats): Added `generic_instance_count',
6211         `inflated_method_count', `inflated_type_count' and
6212         `generics_metadata_size'.       
6213
6214 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6215
6216         * reflection.c: no warnings now.
6217
6218 2004-03-25  Martin Baulig  <martin@ximian.com>
6219
6220         * class.c (mono_class_get_full): New public function; does a
6221         mono_class_get(), but also takes a `MonoGenericContext *'.
6222
6223         * loader.c (mono_field_from_memberref): Renamed to
6224         `field_from_memberref', made static and added `MonoGenericContext *'
6225         argument.
6226         (mono_field_from_token): Added `MonoGenericInst *' argument.
6227         (method_from_memberef): Likewise.
6228         (mono_get_method_from_token): Likewise.
6229         (mono_get_method_full): New public function; does a
6230         mono_get_method(), but also takes a `MonoGenericContext *'.
6231
6232         * verify.c (mono_method_verify): Get the method's generic context
6233         and pass it to mono_field_from_token(), mono_get_method_full() and
6234         mono_class_get_full().
6235
6236 2004-03-25  Martin Baulig  <martin@ximian.com>
6237
6238         * class.c (mono_class_inflate_generic_type): Take a
6239         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
6240         `MonoGenericMethod *'.
6241
6242 2004-03-25  Martin Baulig  <martin@ximian.com>
6243
6244         * loader.h (MonoMethodInflated): Store the MonoGenericContext
6245         instead of the MonoGenericMethod here.
6246
6247 2004-03-25  Martin Baulig  <martin@ximian.com>
6248
6249         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
6250         each time we create a new MonoGenericInst, we also create a new
6251         context which points back to us.
6252
6253         * class.c (inflate_method): Use `ginst->context' instead of
6254         creating a new context.
6255
6256         * loader.c (method_from_memberref): Use
6257         `klass->generic_inst->context' instead of creating a new context.
6258
6259 2004-03-25  Martin Baulig  <martin@ximian.com>
6260
6261         * class.h (MonoGenericContext): New struct.
6262         (MonoGenericMethod): Removed `generic_inst'.
6263
6264         * class.c (mono_class_inflate_generic_method): Take a
6265         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
6266
6267 2004-03-25  Martin Baulig  <martin@ximian.com>
6268
6269         * loader.h (MonoMethodInflated): New typedef.
6270
6271         * metadata.h (MonoMethodSignature): Removed `gen_method', make
6272         `generic_param_count' consume just 30 bits, added `is_inflated'
6273         and `has_type_parameters' flags (one bit each).
6274
6275         * class.c (mono_class_inflate_generic_method): Create a
6276         MonoMethodInflated instead of a MonoMethodNormal and set
6277         `is_inflated' in the method signature.
6278
6279         * class.h (MonoGenericMethod): Removed `generic_method'.
6280
6281 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
6282
6283         * image.c: Make sure the name of a MonoImage is always an absolute path.
6284           This fixes bug #54415.
6285
6286 2004-03-24  Martin Baulig  <martin@ximian.com>
6287
6288         * class.c (mono_class_setup_vtable): If we're a generic instance,
6289         use our generic type's vtable size.
6290
6291 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
6292
6293         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
6294         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
6295         problems.
6296
6297 2004-03-23  Martin Baulig  <martin@ximian.com>
6298
6299         * class.h (MonoDynamicGenericInst): Added `int count_events' and
6300         `MonoEvent *events'.
6301
6302         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
6303         (typebuilder_icalls): Added "get_event_info"; calls
6304         mono_reflection_event_builder_get_event_info(). 
6305
6306         * reflection.c (mono_reflection_generic_inst_initialize): Added
6307         `MonoArray *events'.
6308         (mono_reflection_event_builder_get_event_info): New function.
6309
6310 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
6311
6312         * object.h: add mono_type_initialization_init
6313
6314         * object.c (mono_runtime_class_init): 
6315         implement class constructor synchronization rules
6316         to cope with threading issues.  
6317         add mono_type_initialization_init
6318
6319         * appdomain.c (mono_runtime_init): call 
6320         mono_type_initialization_init
6321
6322         * class.h: removing initializing field from MonoVTable
6323
6324 2004-03-23  Martin Baulig  <martin@ximian.com>
6325
6326         * class.c (my_mono_class_from_generic_parameter): Use
6327         `param->name' if it's not NULL. 
6328
6329 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
6330
6331         * class.c: do not insert non-virtual methods in the vtable.
6332         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
6333         that means the method is non-virtual. This never would have
6334         happened before.
6335
6336 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
6337
6338         * profiler.c: Added lock for accessing coverage_hash.
6339
6340 2004-03-22  Martin Baulig  <martin@ximian.com>
6341
6342         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
6343         `method->method->signature->generic_param_count != 0' to make it
6344         work for interface methods.
6345
6346 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6347
6348         * process.c: quote the string passed to the shell using g_shell_quote.
6349
6350 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6351
6352         * threads.c:
6353         (mono_threads_manage): don't remove the finalizer thread and self
6354         from the threads hash table so that mono_thread_manage can be called
6355         more than once.
6356
6357 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6358
6359         * process.c: quote the arguments when UseShellExecute is true. Fixes
6360         bug #55790.
6361
6362 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6363
6364         * threads.c: set mono_thread_detach as a cleanup routine for every
6365         thread. This way it's always executed upon thread termination, either
6366         aborted or finished normally. No more xsp hangs!
6367
6368 2004-03-17  Martin Baulig  <martin@ximian.com>
6369
6370         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
6371         `int count_nested' and a `MonoType **nested'.
6372
6373         * reflection.c (mono_reflection_bind_generic_parameters): Moved
6374         most of the functionality into a new static
6375         do_mono_reflection_bind_generic_parameters() and don't take a
6376         `MonoType *nested_in' argument any more.  Don't compute nested
6377         types here.
6378         (mono_reflection_generic_inst_get_nested_types): New public method
6379         to get nested types.
6380
6381         * class.c (mono_class_create_generic): Set `klass->nested_in' if
6382         we're a nested class.
6383
6384         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
6385         mono_reflection_generic_inst_get_nested_types() to compute the
6386         nested types.
6387
6388 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6389
6390         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
6391         descriptive error message under windows.
6392         
6393 2004-03-17  Martin Baulig  <martin@ximian.com>
6394
6395         * class.c (dup_type): Added `const MonoType *original' argument;
6396         copy the attrs from the original type.
6397
6398 2004-03-17  Martin Baulig  <martin@ximian.com>
6399
6400         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
6401         `m->generic_inst_cache' here.
6402
6403 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6404
6405         * exception.h exception.c: Add stack_overflow_exception.
6406
6407 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6408
6409         * threadpool.c:
6410         (overlapped_callback): call SetEvent *after* invoking the callback.
6411         No need to call CloseHandle.
6412
6413 2004-03-16  Martin Baulig  <martin@ximian.com>
6414
6415         * reflection.c (mono_image_get_fieldref_token): Take a
6416         `MonoReflectionField *' instead of a `MonoClassField *' and a
6417         `MonoClass *'; store the `MonoReflectionField *' in the hash.
6418
6419 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6420
6421         * appdomain.c: don't add the culture to the filename we're looking for
6422         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
6423
6424 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6425
6426         * locales.c: don't ignore symbols when doing case insensitive compares.
6427         Thanks Dick! Fixes bug #54046.
6428
6429         * threads.c: surround 'threads' usage with enter/leave in
6430         mono_thread_manage.
6431
6432 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
6433
6434         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
6435         implicitly marshalled as [Out]. Fixes #55450.
6436
6437         (mono_marshal_get_runtime_invoke): Zero out the result if there is
6438         an exception.
6439
6440 2004-03-16  Martin Baulig  <martin@ximian.com>
6441
6442         * class.c (mono_class_from_generic_parameter): Use the actual
6443         parameter name. 
6444
6445 2004-03-16  Martin Baulig  <martin@ximian.com>
6446
6447         * reflection.c (type_get_signature_size): New static function.
6448         Compues the size of the type in a method signature.
6449         (method_get_signature_size): New static function; calls
6450         type_get_signature_size() to compute the actual size of the
6451         method's signature.
6452         (method_encode_signature): Use method_get_signature_size() to get
6453         the signature's size rather than using `nparams * 10'.
6454
6455 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6456
6457         * file-io.h: define here WapiOverlapped on windows. I don't want the
6458         regular OVERLAPPED one.
6459
6460         * file-io.c:
6461         * threadpool.c: somehow, BindIoCompletionCallback is not found.
6462         Disabling AIO on windows.
6463
6464 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6465
6466         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
6467         bug #55385.
6468
6469 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6470
6471         * appdomain.c: upgraded corlib version.
6472
6473         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
6474         and BeginWrite. Allow opening files for asynchrnous operations.
6475
6476         * file-io.h: new struct that maps FileStreamAsyncResult.
6477         * icall.c: added new icalls.
6478         * process.[ch]: support setting child process environment variables
6479         and use the SHELL or COMSPEC when UseShellExecute is true.
6480
6481         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
6482         callback for async. IO is here and also BindHandle.
6483
6484         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
6485         from here.
6486
6487 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
6488
6489         * reflection.c (create_custom_attr): Allow len == 0.
6490
6491         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
6492         computation on big-endian machines.
6493
6494 2004-03-13  Martin Baulig  <martin@ximian.com>
6495
6496         * class.h (MonoGenericInst): Added `int count_ifaces'.
6497
6498         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
6499         `ginst->count_ifaces' instead `klass->interface_count' since we
6500         may get called before the vtable is created.
6501
6502         * loader.c (mono_method_get_param_names): If we're a generic
6503         instance, return and don't initialize the class.
6504
6505         * reflection.c (mono_reflection_setup_generic_class): Don't call
6506         ensure_runtime_vtable().
6507         (mono_reflection_bind_generic_parameters): Set
6508         `ginst->count_ifaces'.
6509
6510 2004-03-11  Jackson Harper <jackson@ximian.com>
6511
6512         * icall.c:
6513         * unicode.c:
6514         * unicode.h: Remove unused System.Char icalls.
6515         
6516 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
6517
6518         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
6519         code when we P/Invoke the first library in Windows.Forms, instead
6520         of when we first open the assembly.
6521
6522         * assembly.c: Drop the lookup from here.
6523
6524 2004-03-10  Martin Baulig  <martin@ximian.com>
6525
6526         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
6527         class for properties, fields and events.  Finally fixes #54945.
6528
6529 2004-03-10  Martin Baulig  <martin@ximian.com>
6530
6531         * metadata.c (mono_metadata_class_equal): New static function;
6532         checks whether two generic instances or two generic parameters are
6533         equal.
6534         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
6535         compare classes.        
6536
6537 2004-03-10  Martin Baulig  <martin@ximian.com>
6538
6539         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
6540
6541         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
6542         argument and write it into the `reflection_info' field.
6543
6544         * icall.c
6545         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
6546         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
6547
6548 2004-03-09  Jackson Harper  <jackson@ximian.com>
6549
6550         * char-conversions.h: use 8 bits for numeric data its all we need
6551         * icall.c: numeric data is only 8 bits now.
6552
6553 2004-03-09  Martin Baulig  <martin@ximian.com>
6554
6555         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
6556
6557         * class.c (init_properties, init_events): Initialize the new
6558         `parent' field.
6559
6560         * reflection.c (typebuilder_setup_properties): Likewise.
6561         (typebuilder_setup_events): Likewise.
6562
6563         * reflection.h (MonoEventInfo): Replaced `parent with
6564         `declaring_type' and `reflected_type'.
6565
6566         * icall.c (ves_icall_get_property_info): Distinguish between
6567         declaring and reflected type.
6568         (ves_icall_get_event_info): Likewise.
6569
6570 2004-03-09  Martin Baulig  <martin@ximian.com>
6571
6572         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
6573         (ves_icall_Type_GetField): Correctly set field->klass.
6574
6575 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
6576
6577         * loader.h: Fix warning.
6578
6579 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
6580
6581         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
6582         library routine if present.  Notice that it will still continue
6583         executing even if its missing, for those working on the Gtk#
6584         edition of Windows.Forms.
6585
6586         * assembly.c (do_mono_assembly_open): If loading the
6587         System.Windows.Forms call mono_loader_wini_init.
6588
6589 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
6590
6591         * class.h: Added MonoRemoteClass struct.
6592         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
6593         function for MonoStrings.
6594         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
6595         Added internal call for getting the proxy type.
6596         * marshal.c: Get the type of transparent proxies from its remote_class.
6597         Added methods that generate the IL for type checks and casts:
6598         mono_marshal_get_isinst, mono_marshal_get_castclass, 
6599         mono_marshal_get_proxy_cancast.
6600         * marshal.h: Declaration of the previous new methods.
6601         * object.c: Added new moethods for creating and updating MonoRemoteClass
6602         instances: mono_remote_class, mono_upgrade_remote_class, 
6603         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
6604         * verify.c: FIx transparent_proxy_fields layout.
6605         * appdomain.c: Bump corlib version.
6606
6607 2004-03-04  Jackson Harper  <jackson@ximian.com>
6608
6609         * icall.c: Add icall to access char conversion tables.
6610         * char-conversions.h: Character conversion tables.
6611         * Makefile.am: Add char-conversions.h private header file.
6612         
6613 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
6614
6615         * appdomain.c (unload_thread_main): Increase unloading timeout to
6616         10 sec as a temporary workaround for Nant problems.
6617
6618 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
6619
6620         * gc.c: Add checks for GC_enable and GC_disable.
6621
6622         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
6623         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
6624         (bug #54988).
6625         
6626 2004-02-27  Martin Baulig  <martin@ximian.com>
6627
6628         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6629         `MonoReflectionType *' instead of a `MonoType *'.
6630
6631 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
6632
6633         * gc.c (run_finalize): Avoid finalizing the object representing the
6634         finalizer thread.
6635         (finalizer_thread): Fix warning.
6636
6637 2004-02-25  Martin Baulig  <martin@ximian.com>
6638
6639         * class.c (_mono_class_get_instantiation_name): Added `int offset'
6640         argument for nested types.
6641         (mono_class_create_generic): Added support for nested generictypes.
6642
6643         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
6644         `GList *nested'.
6645
6646         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
6647
6648         * reflection.c (method_encode_signature): Increase the minimum
6649         value of `size' from 10 to 11.
6650         (mono_reflection_bind_generic_parameters): Take `int type_argc'
6651         and `MonoType **types' arguments instead of the `MonoArray
6652         *types'; added `MonoType *nested_in'.  Recursively instantiate
6653         nested classes. 
6654
6655 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
6656
6657         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
6658         stack_overflow_ex members which are used by exception handling.
6659
6660         * appdomain.c (mono_runtime_init): Initialize the new members.
6661
6662         * gc.c (mono_gc_enable): New helper function.
6663         * gc.c (mono_gc_disable): New helper function.
6664
6665 2004-02-23  Martin Baulig  <martin@ximian.com>
6666
6667         * icall.c: I must have been really stupid - make it actually work
6668         this time ;-)
6669
6670 2004-02-23  Martin Baulig  <martin@ximian.com>
6671
6672         * loader.c (method_from_memberref): Only inflate the method if
6673         it's in another klass.
6674
6675 2004-02-23  Martin Baulig  <martin@ximian.com>
6676
6677         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
6678         (mono_class_init): If we're a generic instance and an interface,
6679         compute `class->interface_id'; also create `class->interfaces'
6680         here and inflate them.
6681
6682         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
6683         `ginst->is_open'.
6684         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
6685
6686         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
6687
6688 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
6689
6690         * reflection.c (method_encode_code): Improved the error message
6691         generated by the exception.
6692
6693 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6694
6695         * icall.c: Martin did not do what he said in the ChangeLog for
6696         2004-02-18, but put back the changes for properties and events.
6697         Commenting those changes out again and adding comment to bug #54518.
6698         
6699         * process.c: removed warning.
6700
6701 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
6702
6703         * marshal.c (emit_struct_conv): Print an error message instead of
6704         asserting when a type does not have the StructLayout attribute.
6705
6706 2004-02-20  Martin Baulig  <martin@ximian.com>
6707
6708         * reflection.c (mono_type_get_object): Also use the cache for
6709         generic instances.
6710         (mono_reflection_bind_generic_parameters): Always compute
6711         `ginst->ifaces'.        
6712
6713 2004-02-20  Martin Baulig  <martin@ximian.com>
6714
6715         * class.h (MonoGenericMethod): Removed `klass'.
6716
6717         * class.c (mono_class_inflate_generic_method): Added `MonoClass
6718         *klass' argument.
6719
6720 2004-02-20  Martin Baulig  <martin@ximian.com>
6721
6722         * reflection.c (method_encode_methodspec): Actually use the
6723         uninflated signature for the memberref.
6724
6725 2004-02-20  Martin Baulig  <martin@ximian.com>
6726
6727         * class.h (MonoGenericMethod): Removed `declaring'.
6728
6729         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
6730         is NULL, compute it here.
6731
6732 2004-02-20  Martin Baulig  <martin@ximian.com>
6733
6734         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
6735
6736         * metadata.c (mono_metadata_generic_inst_hash): New method.
6737         (mono_metadata_generic_inst_equal): New method.
6738
6739         * reflection.c (mono_reflection_bind_generic_parameters): Use the
6740         `klass->image->generic_inst_cache' cache to avoid creating
6741         duplicate MonoGenericInst's.
6742
6743         * class.c (mono_class_inflate_generic_type): Use the cache.
6744
6745 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6746
6747         * object.c: fixed gc descriptor calculation for embedded valuetypes.
6748
6749 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6750
6751         * icall.c: added Socket.WSAIoctl icall.
6752
6753         * socket-io.[ch]: implemented
6754         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
6755
6756 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
6757
6758         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
6759
6760 2004-02-18  Urs C Muff  <umuff@quark.com>
6761
6762         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
6763         this work on PPC and other big-endian architectures.
6764
6765         * debug-mono-symfile.h: Prepended the names of all the `guint32'
6766         fields with an underscore to make sure they're only accessed by
6767         the read32() macro.
6768
6769 2004-02-18  Martin Baulig  <martin@ximian.com>
6770
6771         * icall.c: Put the klass->refclass changes back for methods and
6772         fields, but not for properties and events.  We're currently not
6773         distinguishing between DeclaringType and ReflectedType for
6774         properties and events, that's what caused the regressions.
6775
6776 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6777
6778         * object.c:
6779         (mono_async_result_new): the handle can be NULL.
6780
6781         * threadpool.c: Use an event instead of a semaphore, don't initialize
6782         it until needed. This saves quite a few semaphores from being created
6783         when using the threadpool.
6784
6785 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
6786
6787         * object.c (mono_string_is_interned_lookup): Fix interning of long
6788         strings. Fixes #54473.
6789
6790         * domain.c (ldstr_equal): Optimize if the two strings are equal.
6791
6792         * icall.c: Revert the klass->refclass changes since they introduce
6793         regressions (bug #54518).
6794
6795 2004-02-18  Martin Baulig  <martin@ximian.com>
6796
6797         * class.c (mono_class_init): If we're a generic instance and don't
6798         come from a TypeBuilder, inflate our members here.
6799         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
6800         (mono_class_create_generic): New public method.
6801         (mono_class_initialize_generic): Removed.
6802         (get_instantiation_name): Renamed to
6803         _mono_class_get_instantiation_name() and made it public.
6804
6805 2004-02-18  Martin Baulig  <martin@ximian.com>
6806
6807         * class.c (mono_class_inflate_generic_type): Clear the new
6808         instance's `nginst->klass' when inflating a generic instance.
6809         (mono_class_is_subclass_of): Added (basic) support for generic
6810         instances.
6811
6812 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
6813
6814         * appdomain.h, domain.c: use a MonoCodeManager instead of a
6815         MonoMempool to hold compiled native code.
6816
6817 2004-02-17  Martin Baulig  <martin@ximian.com>
6818
6819         * class.h (MonoDynamicGenericInst): Added `count_properties' and
6820         `properties'.
6821
6822         * reflection.c (mono_reflection_generic_inst_initialize): Added
6823         `MonoArray *properties' argument.
6824
6825         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
6826
6827 2004-02-17  Martin Baulig  <martin@ximian.com>
6828
6829         * icall.c (ves_icall_Type_GetFields): Renamed to
6830         ves_icall_Type_GetFields_internal() and added a
6831         `MonoReflectionType *rtype' argument; pass it to
6832         mono_field_get_object() to set the field's "reflected" type.
6833         (ves_icall_Type_GetConstructors): Likewise.
6834         (ves_icall_Type_GetEvents): Likewise.
6835         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
6836         argument; pass it to mono_method_get_object() to set the method's
6837         "reflected" type.       
6838
6839 2004-02-17  Martin Baulig  <martin@ximian.com>
6840
6841         * class.h (MonoDynamicGenericInst): New type.
6842         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
6843
6844         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
6845         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
6846         (ves_icall_MonoGenericInst_GetFields): New interncall.
6847
6848         * class.c (mono_class_from_generic): Don't call
6849         mono_class_initialize_generic() if this is a dynamic instance;
6850         ie. it's being created from a TypeBuilder.
6851         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
6852         `class->byval_arg.type'.
6853
6854         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
6855         to `inflate_method' and made static.
6856         (mono_reflection_inflate_field): Removed.
6857         (mono_reflection_generic_inst_initialize): New public method.
6858
6859         * reflection.h (MonoReflectionGenericInst): Removed `methods',
6860         `ctors' and `fields'; added `initialized'.
6861
6862 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
6863
6864         * debug-helpers.c (mono_method_full_name): Fix output for empty
6865         namespaces.
6866
6867 2004-02-12  Martin Baulig  <martin@ximian.com>
6868
6869         * class.h (MonoClassField): Added `MonoType *generic_type'.
6870
6871         * reflection.c (mono_image_get_fieldref_token): Added support for
6872         instantiated generic types.
6873         (field_encode_inflated_field): Removed.
6874         (mono_image_get_inflated_field_token): Removed.
6875         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
6876
6877         * reflection.h (MonoReflectionInflatedField): Removed.
6878
6879 2004-02-12  Martin Baulig  <martin@ximian.com>
6880
6881         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
6882         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
6883
6884         * reflection.c (mono_image_get_methodspec_token): Take a
6885         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
6886         (mono_image_create_token): Check whether we have a
6887         `method->signature->gen_method' and call
6888         mono_image_get_methodspec_token() if appropriate.
6889         (inflated_method_get_object): Removed.
6890         (mono_reflection_bind_generic_method_parameters): Return a
6891         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
6892         (mono_reflection_inflate_method_or_ctor): Likewise.
6893
6894         * reflection.h (MonoReflectionInflatedMethod): Removed.
6895
6896 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
6897
6898         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
6899         for custom valuetype marshalling.
6900
6901         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
6902
6903 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6904
6905         * icall.c: fixed WSAGetLastError_internal name.
6906
6907 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
6908
6909         * threads.c (mono_thread_attach): Allow this to be called multiple
6910         times for a thread.
6911         
6912         * threads.c (build_wait_tids): Do not wait for ourselves.
6913
6914         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
6915         appdomain list is empty.
6916
6917         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
6918         memory returned by mono_string_builder_to_utf16, since it points into
6919         managed memory. Thanks to Bernie Solomon for noticing this.
6920
6921         * icall.c: Add AppDomainSetup icalls.
6922
6923         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
6924
6925         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
6926         types.
6927
6928         * reflection.c (reflection_methodbuilder_to_mono_method): Save
6929         custom attributes to the method_aux struct. Also fix array indexes etc.
6930
6931         * loader.c (mono_method_get_param_names): Make dynamic case work again.
6932         
6933 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
6934
6935         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
6936         (both static and runtime) and reduce startup time.
6937
6938 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
6939
6940         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
6941         AsAny marshalling conversion instead of crashing.
6942
6943         * marshal.c: Fix warnings.
6944
6945 2004-02-09  Martin Baulig  <martin@ximian.com>
6946
6947         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
6948
6949         * reflection.h (MonoReflectionInflatedMethod): Removed the
6950         `declaring' field, it's now in the unmanaged MonoGenericMethod.
6951
6952         * reflection.c (method_encode_methodspec): Removed the `method'
6953         argument; we get it from `gmethod->declaring'.
6954         (inflated_method_get_object): Removed the `declaring' argument.
6955
6956 2004-02-09  Martin Baulig  <martin@ximian.com>
6957
6958         * class.h (MonoGenericMethod): New type.
6959         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
6960         `generic_method'.
6961
6962         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
6963         a `MonoGenericMethod *gen_method' one.
6964
6965         * class.c (mono_class_inflate_generic_type): Take an additional
6966         `MonoGenericMethod * argument.  This is only non-NULL if we're
6967         inflating types for a generic method.   
6968         (mono_class_inflate_generic_signature): Renamed to
6969         inflate_generic_signature() and made static; take a
6970         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6971         (inflate_generic_header): Take a `MonoGenericMethod *' argument
6972         instead of a `MonoGenericInst *' one.
6973         (mono_class_inflate_generic_method): Likewise.
6974
6975         * reflection.c (encode_generic_method_sig): Take a
6976         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
6977         (method_encode_methodspec): Likewise.
6978         (inflated_method_get_object): Likewise. 
6979
6980         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
6981         field with a `MonoGenericMethod *gmethod' one.  
6982
6983 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
6984
6985         * class.h (mono_class_has_parent): add parens to expansion
6986         so you can ! this.
6987
6988 2004-02-08  Martin Baulig  <martin@ximian.com>
6989
6990         * image.h (MonoImage): Removed `generics_cache'.
6991
6992         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
6993         instead of a `MonoType *' argument; removed the `inflate_methods'
6994         argument.  Don't inflate methods here.
6995
6996         * loader.c (find_method): If it's a generic instance, call
6997         mono_class_init() on the `sclass->generic_inst->generic_type'.
6998
6999         * metadata.c (mono_type_size): Make this work on uninitialized
7000         generic instances; call it on the `ginst->generic_type's class.
7001
7002         * reflection.c (mono_reflection_bind_generic_parameters): Call
7003         mono_class_from_generic() to create the `ginst->klass'.
7004
7005 2004-02-08  Martin Baulig  <martin@ximian.com>
7006
7007         * class.h (MonoClass): Changed type of `generic_inst' from
7008         `MonoType *' to `MonoGenericInst *'.
7009
7010 2004-02-08  Martin Baulig  <martin@ximian.com>
7011
7012         * icall.c (ves_icall_Type_BindGenericParameters): Just call
7013         mono_type_get_object(), this is now creating a `MonoGenericInst'
7014         for MONO_TYPE_GENERICINST.
7015         (ves_icall_MonoGenericInst_GetParentType): Likewise.
7016         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
7017
7018         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
7019         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
7020         (inflated_method_get_object): Added `MonoClass *refclass' argument.
7021         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
7022         and reflected type.
7023
7024         * reflection.h (MonoReflectionInflatedMethod): Removed
7025         `declaring_type' and `reflected_type'.
7026
7027 2004-02-08  Martin Baulig  <martin@ximian.com>
7028
7029         * class.h (MonoGenericInst): Added `MonoType *parent' and
7030         `MonoType **ifaces'.
7031
7032         * reflection.h (MonoReflectionGenericInst): Removed `klass',
7033         `parent' and `interfaces'.
7034
7035         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7036         `MonoType *' argument and return a `MonoType *'.
7037
7038         * icall.c
7039         (ves_icall_MonoGenericInst_GetParentType): New interncall.
7040         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
7041
7042 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7043
7044         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
7045         valuetype marshalling.
7046
7047 2004-02-06  Martin Baulig  <martin@ximian.com>
7048
7049         * class.c
7050         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
7051         (my_mono_class_from_generic_parameter): Likewise.
7052
7053 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7054
7055         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
7056         contents of the symbol files lazily.
7057
7058         * object.h (MonoThread): Add 'name' and 'name_len' fields.
7059
7060         * threads.h threads.c icall.c: New icalls for getting and setting the
7061         threads name.
7062
7063 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
7064
7065         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
7066         Raise an exception when the domain is not found.
7067
7068 2004-02-03  Martin Baulig  <martin@ximian.com>
7069
7070         * reflection.c (mono_image_get_methodspec_token): Use the
7071         uninflated signature; fixes gen-33.
7072
7073 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
7074
7075         * gc.c threads.c: Make the finalizer thread a normal managed thread so
7076         the finalizer code can use thread functionality.
7077
7078         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
7079         the finalizer thread.
7080
7081         * threads.c: Make some functions more robust.
7082
7083         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
7084
7085         * metadata.h: Add new marshalling conventions.
7086
7087         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
7088         stringbuilder marshalling. Fixes #53700.
7089
7090         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
7091
7092         * reflection.c (mono_image_get_type_info): Save declarative security
7093         info.
7094
7095         * reflection.c (mono_image_get_field_info): Handle uninitialized 
7096         unmanaged fields as well.
7097
7098         * appdomain.c: Bump corlib version.
7099
7100 2004-02-01  Martin Baulig  <martin@ximian.com>
7101
7102         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
7103         method type arguments.  
7104
7105 2004-01-30  Duncan Mak  <duncan@ximian.com>
7106
7107         * marshal.h: Add prototype for
7108         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
7109         and
7110         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
7111         fix the build.
7112
7113 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
7114
7115         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
7116         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
7117
7118 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7119
7120         * marshal.c (mono_marshal_get_native_wrapper): Add support for
7121         custom marshalling of valuetypes.
7122
7123         * marshal.c: Fix some warnings.
7124
7125 2004-01-29  Martin Baulig  <martin@ximian.com>
7126
7127         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7128         for generic method parameters.
7129
7130         * reflection.c (method_encode_methodspec): Write the uninflated
7131         signature into the methodspec table.
7132         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7133         is always the uninflated method.
7134         (reflection_methodbuilder_to_mono_method): Copy the generic
7135         parameters from the MethodBuilder into `header->gen_params'.
7136
7137 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7138
7139         * class.c (mono_class_from_generic_parameter): Fix warning.
7140
7141 2004-01-27  Martin Baulig  <martin@ximian.com>
7142
7143         * class.c (mono_class_from_generic_parameter): Don't create
7144         `klass->methods' here.  
7145
7146 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7147
7148         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7149         extension since it does not work with libraries named lib<FOO>.dll.so.
7150
7151 2004-01-25  Martin Baulig  <martin@ximian.com>
7152
7153         * class.c (mono_class_inflate_generic_type): Added support for
7154         MONO_TYPE_GENERICINST.
7155
7156         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7157         inflate methods on open constructed types.      
7158
7159 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7160
7161         * object.c: fire ProcessExit event in the root AppDomain after running
7162         Main. Fixes bug #53299.
7163
7164 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
7165
7166         * socket-io.c: include the new socket-wrappers.h header.
7167         Use the wrappers instead of the unix socket functions to make the code
7168         more clear.
7169
7170 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
7171
7172         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
7173
7174         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7175         Fixes #22532.
7176
7177 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
7178
7179         * reflection.c (mono_image_create_pefile): Handle the case when the
7180         entry point is not a MethodBuilder.
7181
7182         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7183         field to ReflectionMethod since it is not allways a builder.
7184
7185         * reflection.c (type_get_fully_qualified_name): New helper function to
7186         return the fully qualified name of a type.
7187
7188         * reflection.c (encode_marshal_blob): Always emit the fully qualified
7189         type name for custom marshallers.
7190
7191         * reflection.c (mono_marshal_spec_from_builder): Ditto.
7192
7193         * class.c (mono_class_setup_vtable): If a parent class already 
7194         implements an interface, use the implementing methods from that class.
7195         Fixes #53148.
7196
7197 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7198
7199         * threadpool.c: just return instead of ExitThread to allow for thread
7200         clean up earlier.
7201
7202 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
7203
7204         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
7205         when closing resource modules.
7206
7207         * reflection.c (mono_image_create_pefile): Handle the case when the
7208         entry point is not a MethodBuilder.
7209
7210         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7211         field to ReflectionMethod since it is not allways a builder.
7212
7213 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7214
7215         * marshal.c (mono_marshal_get_managed_wrapper): 
7216         mono_marshal_alloc takes native int so CONV_I
7217         the arg for 64bits.
7218
7219 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
7220
7221         * reflection.c (fixup_cattrs): New function to fixup the methoddef
7222         tokens in the cattr table. Fixes #53108.
7223
7224 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7225
7226         * loader.c: don't trim ".dll" before looking up in the config file.
7227         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
7228
7229 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
7230
7231         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
7232         Return the module which contains the resource as well.
7233         (ves_icall_System_Reflection_Module_Close): New icall.
7234
7235         * appdomain.c: Bump corlib version number.
7236
7237         * image.c (mono_image_addref): New public function.
7238
7239         * assembly.c: Call mono_image_addref.
7240
7241         * reflection.c (mono_module_get_object): Increase reference count of 
7242         the image.
7243
7244         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7245         Fixes #22532.
7246
7247         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
7248         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
7249         proper exceptions on DllImport problems.
7250
7251 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
7252
7253         * class.c, metadata.c: eliminate CSIZE macro.
7254
7255 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
7256
7257         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
7258         * object.h: Added async_callback field in MonoAsyncResult.
7259         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
7260         * verify.c: Added async_callback in MonoAsyncResult layout.
7261
7262 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
7263
7264         * reflection.c (mono_reflection_get_custom_attrs): Add support
7265         for Modules.
7266
7267 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7268
7269         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
7270         marshalling.
7271         (mono_marshal_method_from_wrapper): Add null pointer check.
7272
7273 2004-01-16  Martin Baulig  <martin@ximian.com>
7274
7275         * debug-mono-symfile.h: Set version number to 36 and reflect
7276         latest symbol writer changes.
7277
7278 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7279
7280         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
7281         multi-dimensional arrays.
7282         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
7283         (mono_class_from_mono_type): Use bounded_array_class_get.
7284         
7285         * class.c (mono_bounded_array_class_get): New function which takes
7286         a 'bounded' bool argument to distinguish vectors from one dimensional
7287         arrays.
7288
7289         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
7290         bounded_array_class_get if the array has bounds.
7291
7292         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7293         Search modules loaded using AssemblyBuilder:AddModule as well.
7294
7295 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7296
7297         * appdomain.c: increased corlib version.
7298         * filewatcher.c: removed g_print.
7299         * icall.c:
7300         (get_property_info): only allocate what is actually requested.
7301         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
7302
7303 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7304
7305         * Makefile.am: added filewatcher.[ch]
7306         * filewatcher.[ch]: FileSystemWatcher runtime support.
7307         * icall.c: added new FSW icalls.
7308
7309 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
7310
7311         * string-icalls.c: fix stringbuilder regression as suggested by
7312         Iain McCoy <iain@mccoy.id.au>.
7313
7314 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
7315
7316         * process.c (process_read_stringtable_block): Recognize '007f' as
7317         a language neutral stringtable block.
7318
7319 2004-01-12  Patrik Torstensson
7320
7321         * object.h (MonoStringBuilder) : Changed layout to support our
7322         new stringbuilder class.
7323         * marshal.c: Change marshalling to support the new layout of 
7324         string builder.
7325         * appdomain.c: increased version number because new layout of
7326         string builder.
7327
7328 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
7329
7330         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
7331         assembly name as an string instead of an AssemblyName, since it is
7332         easier to extract info from it.
7333
7334         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
7335         the culture subdirectories too. Fixes #52231.
7336
7337 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7338
7339         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
7340         It takes 2 new parameters with an optional name for the method to look
7341         for and case ignoring info.
7342
7343         * threadpool.c: removed unused variable.
7344
7345 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7346
7347         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
7348         It takes 2 new parameters with an optional name for the property to look
7349         for and case ignoring info.
7350         Fixes bug #52753.
7351
7352 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
7353
7354         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
7355         Fix #52451.
7356
7357 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7358
7359         * appdomain.c:
7360         * assembly.c: escape the uri before passing it to g_filename_from_uri.
7361         Fixes bug #52630.
7362
7363 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
7364
7365         * reflection.c: Add support for more than one unmanaged resource.
7366
7367         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
7368         in field->def_value, as done in all other cases.
7369
7370         * reflection.c (mono_reflection_get_custom_attrs): Add support for
7371         TypeBuilders.
7372
7373         * reflection.c (mono_reflection_create_runtime_class): Remove 
7374         errorneous assignment to klass->element_class, since it is already
7375         done in mono_reflection_setup_internal_class.
7376
7377 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7378
7379         * gc.c: added missing LeaveCriticalSection.
7380         * icall.c: indented a couple of lines.
7381         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
7382         if we call EndInvoke inside a callback. Fixes bug #52601.
7383
7384 2004-01-07  Martin Baulig  <martin@ximian.com>
7385
7386         * mono-debug-debugger.h
7387         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
7388
7389 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
7390
7391         * appdomain.c: Use messages in NotImplementedException.
7392
7393         * exception.c (mono_get_exception_not_implemented): Now this takes
7394         a message argument.
7395
7396         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
7397         exception instead of g_asserting an aborting when something is not
7398         implemented.
7399
7400         Add some inline docs.
7401
7402 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
7403
7404         * reflection.h: Update after changes to object layout.
7405
7406         * reflection.c: Implement saving of unmanaged aka win32 resources.
7407
7408         * appdomain.c: Bump version number.
7409
7410         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
7411         Handle missing domains gracefully.
7412
7413 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
7414
7415         * file-io.c : On Windows, there are much more invalid_path_chars.
7416
7417 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
7418
7419         * class.h, object.c: prepare for GetType () speedup.
7420
7421 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
7422
7423         * profiler.c: workaround for --profile null reference exception on
7424           cygwin. Patch by Patrik Torstensson.
7425
7426 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
7427
7428         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
7429         make work for unaligned access.
7430
7431 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
7432
7433         * class.c: small cleanup (class->fields [i] -> field).
7434         * image.c: check address of metadata is valid.
7435
7436 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
7437
7438         * assembly.h assembly.c (mono_assembly_loaded): New public function to
7439         search the list of loaded assemblies.
7440
7441         * reflection.c (mono_reflection_type_from_name): Use 
7442         mono_assembly_loaded instead of mono_image_loaded.
7443
7444         * reflection.c: Fix warnings.
7445
7446 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
7447
7448         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
7449         is dynamic. This is needed since an assembly can contain both dynamic and
7450         non-dynamic images.
7451
7452         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
7453         assembly->dynamic.
7454
7455         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
7456
7457         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
7458         to store modules loaded using AddModule.
7459
7460         * reflection.c (mono_image_fill_file_table): Generalize this so it works
7461         on Modules.
7462
7463         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
7464
7465         * reflection.c (mono_image_fill_export_table_from_module): New function to
7466         fill out the EXPORTEDTYPES table from a module.
7467
7468         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
7469         into a separate function. Also handle loaded non-dynamic modules.
7470
7471         * reflection.c (mono_image_basic_init): Fix memory allocation.
7472
7473         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7474
7475         * assembly.c (mono_assembly_load_references): Make this public.
7476
7477 2003-12-19  Martin Baulig  <martin@ximian.com>
7478
7479         * class.c (mono_class_initialize_generic): Made this static, take
7480         a `MonoGenericInst *' instead of a `MonoClass *'.
7481         (mono_class_from_generic): Call mono_class_initialize_generic()
7482         unless we're already initialized or being called from
7483         do_mono_metadata_parse_generic_inst().
7484
7485         * class.h (MonoGenericInst): Added `initialized' and
7486         `init_pending' flags.
7487
7488         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
7489         `mono_class_init (gklass)' or mono_class_initialize_generic()
7490         here; set `generic_inst->init_pending' while parsing the
7491         `type_argv'.
7492
7493 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
7494
7495         * locales.c: include string.h for memxxx prototypes
7496
7497 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
7498
7499         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
7500         constructor when accessing literal fields.
7501
7502 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
7503
7504         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7505
7506         * reflection.c (assembly_add_resource_manifest): New function to fill
7507         the MANIFESTRESOURCE table.
7508
7509         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
7510
7511         * reflection.h: Update to changes in class layout.
7512
7513         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
7514         Reenable call to mono_runtime_is_shutting_down ().
7515
7516         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
7517         determine if the runtime is shutting down.
7518
7519 2003-12-16  Jackson Harper <jackson@ximian.com>
7520
7521         * icall.c: comment out call to mono_runtime_is_shutting_down to
7522         fix build.
7523         
7524 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
7525
7526         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
7527         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
7528
7529 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
7530
7531         * reflection.c: move definition of swap_with_size
7532         to before its first call
7533
7534 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
7535
7536         * appdomain.c (mono_runtime_is_shutting_down): New public function.
7537
7538         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
7539         icall.
7540
7541         * object.c: Fix warnings.
7542
7543         * icall.c (ves_icall_Type_Get...): Only consider inherited static
7544         members if FlattenHierarchy is set.
7545
7546         * reflection.c (mono_image_add_decl_security): New function to emit
7547         declarative security.
7548
7549         * reflection.h reflection.c: Add support for declarative security.
7550
7551         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7552         
7553 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
7554
7555         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7556         
7557         * appdomain.c verify.c: Moved corlib version checking into its own
7558         function in appdomain.c since it needs to create vtables etc.
7559
7560 2003-12-13  Patrik Torstensson <p@rxc.se>
7561
7562         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
7563         instead of unwrapped server.
7564
7565 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
7566
7567         * verify.c (check_corlib): Fix field index.
7568
7569 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
7570
7571         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
7572         GetGacPath icall.
7573
7574 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
7575
7576         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
7577         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
7578         cope with sizeof(size_t) != sizeof(guint32).
7579
7580 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7581
7582         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
7583         in case of failure.
7584
7585 2003-12-10  Mark Crichton <crichton@gimp.org>
7586
7587         * icall.c: removed the GetNonZeroBytes.  We now handle this case
7588         in managed code.
7589
7590         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
7591
7592 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
7593
7594         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
7595         marked as deleted.
7596
7597 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
7598
7599         * verify.c (check_corlib): Handle the case when the version field is 
7600         initialized by a static constructor.
7601
7602 2003-12-08  Patrik Torstensson  <p@rxc.se>
7603
7604     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
7605
7606 2003-12-08  Martin Baulig  <martin@ximian.com>
7607
7608         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
7609         a MonoReflectionGenericParameter, also take the parameter index
7610         and name as arguments.
7611         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
7612         (ves_icall_MonoGenericParam_initialize): New interncall.
7613         (ves_icall_Type_make_byref_type): New interncall.
7614
7615         * reflection.h (MonoReflectionGenericParam): Derive from
7616         MonoReflectionType, not just from MonoObject.  Added `refobj' and
7617         `index' fields.
7618
7619         * reflection.c (mono_reflection_define_generic_parameter): Create
7620         and return a new MonoReflectionGenericParam; don't initialize the
7621         constraints here.
7622         (mono_reflection_initialize_generic_parameter): New public method;
7623         initializes the constraints and creates the `param->pklass'.
7624
7625 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         * reflection.h reflection.c: Use the new fields 'num_types', 
7628         'num_fields' and 'num_methods' to track the number of types etc.
7629
7630         * verify.c (check_corlib): Check corlib version number.
7631
7632 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
7633
7634         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
7635         function works on all methods.
7636
7637 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
7638
7639         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
7640         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
7641         the custom_type_info flag of the transparent proxy.
7642         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
7643         objects that supports IRemotingTypeInfo.
7644         * object.h: Added custom_type_info field in transparent proxy.
7645
7646 2003-12-06  Martin Baulig  <martin@ximian.com>
7647
7648         * class.c (mono_class_create_from_generic): Removed.
7649         (mono_class_from_generic): Check `ginst->klass' before doing
7650         anything else.  This is important to fully support "recursive"
7651         generic types.
7652
7653         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
7654         empty `generic_inst->klass' before doing anything else.
7655
7656 2003-12-06  Dick Porter  <dick@ximian.com>
7657
7658         * verify.c: 
7659         * object.h:
7660         * icall.c:
7661         * locales.c: Use C structs to access class fields.  Don't do a
7662         conversion between MonoString and UChar because both are
7663         platform-endian UTF-16.  Compare now takes startindex and count
7664         parameters.  Add a char overload for IndexOf.  Speed up the
7665         invariant string IndexOf.
7666
7667 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
7668
7669         * Makefile.am (monosn_LDADD): Fix parallel build.
7670
7671 2003-12-04  Martin Baulig  <martin@ximian.com>
7672
7673         * icall.c
7674         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7675         (ves_icall_Type_make_array_type): New interncall.       
7676
7677 2003-12-04  Martin Baulig  <martin@ximian.com>
7678
7679         * locales.c: also change it in the !HAVE_ICU case.
7680
7681 2003-12-04  Dick Porter  <dick@ximian.com>
7682
7683         * icall.c:
7684         * locales.c: construct_compareinfo is now in CompareInfo, not
7685         CultureInfo.
7686
7687 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
7688
7689         * image.c (mono_image_load_file_for_image): Cache loaded images in the
7690         image->files array.
7691
7692         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
7693         table as well.
7694
7695         * assembly.c (mono_assembly_load_references): Only load references
7696         once.
7697
7698         * class.c (mono_class_from_name): Avoid linear search of the 
7699         EXPORTEDTYPE table.
7700
7701         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
7702
7703 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
7704
7705         * image.h (MonoImage): Add 'field_cache' field.
7706
7707         * loader.c (mono_field_from_token): Cache field lookups.
7708         
7709         * reflection.c (mono_module_get_object): Fix name property.
7710
7711         * icall.c (ves_icall_get_enum_info): Update after changes to 
7712         mono_metadata_get_constant_index ().
7713
7714         * icall.c: Get rid of get_type_info icall, use a separate icall for
7715         each type property to avoid needless memory allocations. Fixes #51514.
7716
7717         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
7718         to avoid needless binary searches.
7719
7720         * class.c (class_compute_field_layout): Move the initialization of
7721         field->def_value to mono_class_vtable ().
7722
7723         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
7724         non-corlib types.
7725
7726         * object.c (mono_object_allocate): Make it inline.
7727
7728         * object.c (mono_object_allocate_spec): Make it inline.
7729         
7730 2003-12-02  Dick Porter  <dick@ximian.com>
7731
7732         * locales.c (create_NumberFormat): NumberFormatInfo construction.
7733         Patch by Mohammad DAMT (mdamt@cdl2000.com).
7734
7735 2003-12-01  Dick Porter  <dick@ximian.com>
7736
7737         * threads.c: Fix signature and call in CreateMutex and
7738         CreateEvent.
7739
7740 2003-12-01  Dick Porter  <dick@ximian.com>
7741
7742         * icall.c: 
7743         * locales.c: Implement string compares and searching
7744
7745         * object.h: Add extra Thread field
7746
7747 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
7748
7749         * reflection.c (fixup_method): Add support for MonoCMethod.
7750
7751 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
7752
7753         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
7754
7755         * reflection.c (assembly_name_to_aname): Allow extra characters in
7756         assembly names. Fixes #51468.
7757
7758 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
7759
7760         * exception.c (mono_exception_from_name_domain): New helper function.
7761
7762         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
7763         exception object in the correct domain.
7764
7765         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
7766         formatting + make a copy a the input data.
7767
7768         * loader.c (mono_get_method_from_token): Methods which contain
7769         native code do not have entries in the ImplMap.
7770
7771         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
7772         Thanks to Gonzalo for spotting this.
7773         
7774         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
7775         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
7776
7777         * assembly.h (mono_assembly_load_from): Split the second part of 
7778         assembly loading into a new public function.
7779
7780         * exception.h (mono_get_exception_bad_image_format): New function.
7781
7782 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
7783
7784         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7785         Enumerate all modules inside a dynamic assembly. Fixes #51293.
7786         
7787         * icall.c: Add new icall for creating dynamic methods.
7788
7789         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
7790
7791         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
7792
7793         * reflection.c (mono_reflection_create_dynamic_method): New icall to
7794         create a dynamic method.
7795
7796         * reflection.c (resolve_object): New helper function.
7797
7798         * reflection.c: Generalize ReflectionMethodBuilder and the functions
7799         which manipulate it so they can also work on dynamic methods.
7800
7801         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
7802         creating the MonoReflectionMethodAux structure if it is not needed.
7803         
7804         * reflection.h verify.c: Update after changes to object layout.
7805
7806         * reflection.c (method_builder_encode_signature): Fix compilation on
7807         gcc 2.95.x.
7808
7809 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
7810
7811         * appdomain.h: Added support for context static fields. Added static_data
7812           field to MonoAppContext and renamed thread_static_fields to a more
7813           generic special_static_fields in MonoAppDomain, since it can now contain
7814           context static fields.
7815         * domain.c: Updated hashtable name.
7816         * object.c: Replaced field_is_thread_static() for a more generic
7817           field_is_special_static() which also checks for context static attribute.
7818           In mono_class_vtable(), added support for static context fields.
7819         * threads.c: Changed methods that manage thread static fields to more
7820           generic methods so they can be reused both for thread and context static
7821           data.
7822         * threads.h: Declared some new methods.
7823
7824 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
7825
7826         * reflection.h: Update after changes to the managed types.
7827
7828         * reflection.c (encode_custom_modifiers): New helper function.
7829
7830         * reflection.c (method_encode_signature): Emit custom modifiers.
7831
7832         * reflection.c (field_encode_signature): Emit custom modifiers.
7833
7834 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
7835
7836         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
7837
7838         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
7839         implementation.
7840
7841         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
7842         icall.
7843
7844         * object.c (mono_field_get_value_object): New function.
7845
7846         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
7847         specific.
7848
7849 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
7850
7851         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
7852         return a preallocated out-of-memory exception instance.
7853
7854         * object.c (out_of_memory): Use the new function.
7855
7856         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
7857         flag is before the custom modifiers. Fixes #49802.
7858
7859 2003-11-16  Martin Baulig  <martin@ximian.com>
7860
7861         * class.c (mono_class_is_open_constructed_type): Implemented the
7862         MONO_TYPE_GENERICINST case.
7863
7864 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
7865
7866         * assembly.c (mono_assembly_fill_assembly_name): New function to
7867         fill out the MonoAssemblyName structure.
7868         (mono_assembly_open): Use the new function.
7869
7870         * icall.c (fill_reflection_assembly_name): New helper function.
7871
7872         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
7873         new function.
7874
7875         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
7876
7877 2003-11-15  Martin Baulig  <martin@ximian.com>
7878
7879         * class.c (mono_class_is_open_constructed_type): New public
7880         function; checks whether a type is an open constructed type,
7881         ie. whether it still contains type parameters.
7882         (mono_class_inflate_generic_type): If we're a type parameter and
7883         the inflated type is also a MONO_TYPE_(M)VAR, return the original
7884         type.
7885
7886         * class.h (MonoGenericInst): Added `guint32 is_open'.
7887
7888         * loader.c (method_from_methodspec): Check whether we're an open
7889         or closed constructed type and set `ginst->is_open'.
7890
7891         * reflection.c (mono_reflection_bind_generic_parameters): Check
7892         whether we're an open or closed constructed type and set
7893         `ginst->is_open'.
7894         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
7895         from open constructed types.
7896
7897 2003-11-15  Martin Baulig  <martin@ximian.com>
7898
7899         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7900         a generic instance (instead of a generic type declaration) with
7901         unbound generic parameters, bind them to our actual types.
7902
7903 2003-11-14  Martin Baulig  <martin@ximian.com>
7904
7905         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
7906
7907         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7908         an interface type, populate `res->interfaces' with instantiated
7909         versions of all the interfaces we inherit.
7910
7911 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
7912
7913         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
7914         when MONO_PATH is set but doesn't contain the install dir.
7915
7916 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7917
7918         * icall.c:
7919         (ves_icall_Type_GetInterfaces): don't return an interface twice when
7920         it's also implemented in base classes. Fixes bug #50927.
7921
7922 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
7923
7924         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
7925         if this method is called from a finalizer. Fixes #50913.
7926
7927 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
7928
7929         * threads.c: Implement VolatileRead/VolatileWrite
7930
7931         * icall.c: Add new icalls for VolatileRead/VolatileWrite
7932
7933 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7934
7935         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
7936         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
7937         2.95.3.
7938
7939         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
7940         from Peter Ross (pro@missioncriticalit.com).
7941         
7942 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
7943
7944         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
7945
7946 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7947
7948         * assembly.c (mono_assembly_load_references): Disable check because it
7949         triggers on older corlibs which lots of people have.
7950
7951 2003-11-12  Jackson Harper  <jackson@ximian.com>
7952
7953         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
7954         load corlib.dll if mscorlib.dll is not found.
7955         * assembly.h: Remove corlib name define.
7956         * class.c:
7957         * domain.c:
7958         * image.c: Change corlib name to mscorlib.
7959         
7960 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
7961
7962         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
7963
7964 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
7965
7966         * appdomain.h: Added loader_optimization here to sync with the C#
7967         code, and add disallow_binding_redirects field.
7968
7969 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
7970
7971         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
7972
7973         * reflection.c (mono_image_build_metadata): Fix crash on modules
7974         with no types.
7975
7976         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
7977
7978         * icall.c (ves_icall_get_method_info): Return callingConvention as
7979         well.
7980
7981         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
7982         namespaces from the EXPORTEDTYPE table as well.
7983
7984         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
7985         from all modules inside the assembly.
7986         
7987 2003-11-11  Martin Baulig  <martin@ximian.com>
7988
7989         * reflection.c (mono_reflection_bind_generic_parameters): Make
7990         this work for interfaces.
7991
7992 2003-11-11  Martin Baulig  <martin@ximian.com>
7993
7994         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
7995
7996 2003-11-11  Martin Baulig  <martin@ximian.com>
7997
7998         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
7999         "MonoInflatedMethod" and "MonoInflatedCtor".
8000
8001 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8002
8003         * reflection.c (resolution_scope_from_image): Use the assembly table
8004         from the manifest module, since other modules don't have it.
8005
8006         * debug-helpers.c (mono_type_full_name): New helper function.
8007
8008         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
8009
8010         * image.c (mono_image_load_file_for_image): New public function which
8011         is a replacement for the load_file_for_image in class.c.
8012
8013         * assembly.c (mono_assembly_load_module): A wrapper for the function
8014         above which does assembly association and reference loading too.
8015
8016         * class.c (mono_class_from_name): Call mono_assembly_load_module.
8017
8018 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8019
8020         * appdomain.c: not all of the attributes for the full assembly name
8021         are required and the order doesn't matter. Fixes bug #50787.
8022
8023 2003-11-10  Dick Porter  <dick@ximian.com>
8024
8025         * locales.c: Use platform-endian UTF16
8026
8027 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8028
8029         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8030         
8031 2003-11-10  Martin Baulig  <martin@ximian.com>
8032
8033         * metadata.c
8034         (mono_metadata_load_generic_params): Make this actually work.
8035
8036         * reflection.c (mono_reflection_bind_generic_parameters): If our
8037         parent is a generic instance, pass all the `types' to it, no
8038         matter whether it has the same number of type parameters or not.
8039
8040 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8041
8042         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8043
8044         * assembly.c (mono_assembly_load_references): Move the image<->assembly
8045         assignment code to this function so it gets called recursively for all
8046         modules.
8047
8048         * image.c (load_modules): Remove the assembly assignment since it is
8049         now done by mono_assembly_load_references.
8050         
8051         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8052         Add 'module' argument.
8053         (mono_module_get_types): New helper function.
8054         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
8055
8056 2003-11-08  Martin Baulig  <martin@ximian.com>
8057
8058         * class.c (mono_class_inflate_generic_method): Interface method
8059         don't have a header.
8060
8061         * reflection.c (mono_image_get_methodspec_token): Take an
8062         additional `MonoGenericInst *' argument instead of reading it from
8063         the header; this is necessary to support interfaces.
8064         (mono_image_create_token): Pass the `MonoGenericInst *' from the
8065         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
8066         (inflated_method_get_object): Take an additional `MonoGenericInst *'
8067         argument.
8068
8069         * reflection.h (MonoReflectionInflatedMethod): Added
8070         `MonoGenericInst *ginst'.
8071
8072 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
8073
8074         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
8075
8076 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
8077
8078         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
8079
8080 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8081
8082         * reflection.c 
8083         (reflection_methodbuilder_from_method_builder):
8084         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
8085         initialize a ReflectionMethodBuilder structure.
8086         (mono_image_get_methodbuilder_token):
8087         (mono_image_get_ctorbuilder_token): New functions to emit memberref
8088         tokens which point to types in another module inside the same assembly.
8089
8090         * reflection.c: Use the new helper functions.
8091         
8092         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
8093
8094         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
8095         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
8096
8097         * reflection.c (resolution_scope_from_image): Emit a moduleref if
8098         neccesary.
8099
8100         * reflection.c (mono_image_build_metadata): Emit metadata only for the
8101         current module. Emit the manifest only for the main module.
8102
8103         * reflection.c (mono_image_create_token): Add assertion when a 
8104         memberref needs to be created.
8105
8106         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
8107
8108         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
8109         larger buffer for the custom attribute blob. Fixes #50637.
8110         
8111 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8112
8113         * threadpool.c: notify listener on async processing handles after
8114         invoking the async callback. Thanks to Zoltan.
8115
8116 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8117
8118         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
8119         avoid code duplication.
8120
8121         * reflection.h (MonoDynamicImage): New type which is currently unused,
8122         but will be used through the ref.emit code in place of 
8123         MonoDynamicAssembly.
8124
8125         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8126         object layout.
8127
8128         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8129         a MonoDynamicImage instead of just a MonoImage.
8130         
8131         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8132         icalls to ModuleBuilder but keep their semantics, so they will work
8133         with moduleb->assemblyb. This will change later.
8134         
8135 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8136
8137         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8138         object layout.
8139
8140         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8141         main module, since it is now done by the managed code.
8142
8143 2003-11-03  Martin Baulig  <martin@ximian.com>
8144
8145         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8146         `ginst->klass' here.
8147         (method_encode_methodspec): Don't use the `ginst->generic_method's
8148         klass if it's a generic instance, use `ginst->klass' in this case.
8149
8150 2003-11-03  Martin Baulig  <martin@ximian.com>
8151
8152         * reflection.c (mono_image_get_generic_method_param_info):
8153         Removed, use mono_image_get_generic_param_info() instead.
8154         (mono_image_get_type_info): Write the GenericParam table before
8155         the Method table.  This is neccessary because in the GenericParam
8156         table, type parameters of the class (ie. '!0' etc.) must come
8157         before the ones from its generic methods (ie. '!!0' etc).
8158
8159 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8160
8161         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
8162
8163 2003-11-02  Martin Baulig  <martin@ximian.com>
8164
8165         * reflection.c (create_generic_typespec): Take a
8166         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
8167         the generic parameters from it.
8168
8169 2003-11-02  Martin Baulig  <martin@ximian.com>
8170
8171         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
8172         instead of a `MonoClassField *' since we just need the type.
8173         (create_generic_typespec): New static function.  Creates a
8174         TypeSpec token for a generic type declaration.
8175         (mono_image_get_generic_field_token): New static function.
8176         (mono_image_create_token): If we're a FieldBuilder in a generic
8177         type declaration, call mono_image_get_generic_field_token() to get
8178         the token.
8179
8180 2003-11-02  Martin Baulig  <martin@ximian.com>
8181
8182         * reflection.h
8183         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
8184         `MonoReflectionGenericInst *declaring_type' and
8185         `MonoReflectionGenericInst *reflected_type' fields.
8186
8187         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
8188         `MonoReflectionGenericInst *declaring_type' and a
8189         `MonoReflectionGenericInst *reflected_type' argument instead of a
8190         single `MonoReflectionGenericInst *type' one.  Set
8191         `res->declaring_type' and `res->reflected_type' from them.
8192         (mono_reflection_inflate_field): Likewise.      
8193
8194 2003-11-02  Martin Baulig  <martin@ximian.com>
8195
8196         * class.c (mono_class_setup_vtable): Don't store generic methods
8197         in the vtable.  
8198
8199 2003-11-02  Martin Baulig  <martin@ximian.com>
8200
8201         * reflection.h (MonoReflectionGenericInst): Added
8202         `MonoReflectionType *declaring_type'.
8203
8204         * reflection.c (mono_reflection_bind_generic_parameters): Use
8205         `if (tb->parent)' instead of `klass->parent'.
8206
8207 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
8208
8209         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
8210         with an empty ASSEMBLY table.
8211
8212         * reflection.c (mono_image_build_metadata): Avoid using the same loop
8213         variable in the inner and outer loops.
8214
8215 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8216
8217         * metadata.h (mono_metadata_make_token): Put parentheses around macro
8218         argument.
8219
8220         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
8221         
8222         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
8223         icalls. Instead, do everything in managed code. This is needed since
8224         it is hard to restore the original domain etc. in unmanaged code in the
8225         presence of undeniable exceptions.
8226
8227         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
8228         New icalls to push and pop appdomain refs.
8229
8230 2003-10-31  Martin Baulig  <martin@ximian.com>
8231
8232         * class.c (inflate_generic_type): Renamed to
8233         mono_class_inflate_generic_type() and made it public.
8234
8235         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
8236         New interncall.
8237
8238         * loader.c (mono_field_from_memberref): Also set the retklass for
8239         typespecs.
8240
8241         * fielder.c (mono_image_get_inflated_field_token): New static
8242         method; creates a metadata token for an inflated field.
8243         (mono_image_create_token, fixup_method): Added support for
8244         "MonoInflatedField".
8245         (fieldbuilder_to_mono_class_field): New static function.
8246         (mono_reflection_inflate_field): New public function.
8247
8248         * reflection.h
8249         (MonoReflectionGenericInst): Added `MonoArray *fields'.
8250         (MonoReflectionInflatedField): New typedef.     
8251
8252 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
8253
8254         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
8255         for Solaris and other platforms without s6_addr16
8256
8257 2003-10-30  Martin Baulig  <martin@ximian.com>
8258
8259         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
8260         argument instead of two.
8261         (mono_class_inflate_generic_signature): Likewise.
8262         (inflate_generic_header): Likewise.
8263         (mono_class_inflate_generic_method): Likewise.  In addition, if
8264         `ginst->klass' is set, it becomes the new `method->klass'.
8265
8266         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
8267         field.
8268
8269         * reflection.c (encode_generic_method_sig): Write a 0xa as the
8270         first byte. [FIXME]
8271         (method_encode_methodspec): If we have generic parameters, create
8272         a MethodSpec instead of a MethodRef.
8273         (fixup_method): Added support for "MonoInflatedMethod" and
8274         "MonoInflatedCtor".
8275         (mono_image_create_token): Added support for "MonoInflatedMethod"
8276         and "MonoInflatedCtor".
8277         (inflated_method_get_object): New static function; returns a
8278         managed "System.Reflection.MonoInflatedMethod" object.
8279         (mono_reflection_bind_generic_method_parameters): Return a
8280         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
8281         (mono_reflection_inflate_method_or_ctor): Likewise.
8282         (mono_image_get_generic_method_param_info): Initialize unused
8283         fields to zero.
8284         (mono_image_get_generic_param_info): Likewise.
8285
8286         * reflection.h (MonoReflectionInflatedMethod): New public
8287         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
8288         "S.R.MonoInflatedCtor" classes.
8289
8290         * loader.c (method_from_memberref): If we're a TypeSpec and it
8291         resolves to a generic instance, inflate the method.
8292
8293 2003-10-28  Dick Porter  <dick@ximian.com>
8294
8295         * object.c (mono_runtime_run_main): Convert command-line arguments
8296         into utf8, falling back to the user's locale encoding to do so.
8297
8298 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8299
8300         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
8301         at this time.
8302
8303         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
8304
8305         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
8306         up icalls at method definition time. Partially fixes #33569.
8307
8308 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
8309
8310         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
8311         marshalling of arrays. Fixes #50116.
8312
8313         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
8314
8315         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
8316         points to a vtable in the dying appdomain.
8317
8318         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8319         listeners into unmanaged code inside the lock.
8320
8321         * object.c (mono_class_vtable): Turn off typed allocation in non-root
8322         domains and add some comments.
8323
8324 2003-10-25  Martin Baulig  <martin@ximian.com>
8325
8326         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
8327
8328         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
8329
8330         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
8331         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
8332         currently parsing.  Create the generic class and store it in
8333         `generic_inst->klass' before parsing the type arguments.  This is
8334         required to support "recursive" definitions; see mcs/tests/gen-23.cs
8335         for an example.
8336         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
8337         to support recursive typespec entries.
8338
8339         * class.c (mono_class_setup_parent): If our parent is a generic
8340         instance, we may get called before it has its name set.
8341         (mono_class_from_generic): Splitted into
8342         mono_class_create_from_generic() and mono_class_initialize_generic().
8343
8344 2003-10-25  Martin Baulig  <martin@ximian.com>
8345
8346         * icall.c (ves_icall_Type_BindGenericParameters): Return a
8347         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
8348         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
8349         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
8350
8351         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
8352         (create_typespec): Likewise.
8353         (mono_reflection_bind_generic_parameters): Return a
8354         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
8355         (mono_reflection_inflate_method_or_ctor): New public function.
8356
8357         * reflection.h (MonoReflectionGenericInst): New typedef.        
8358
8359 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
8360
8361         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
8362         inside the domain lock. Fixes #49993.
8363         
8364         * object.c (mono_class_vtable): When typed allocation is used, 
8365         allocate vtables in the GC heap instead of in the mempool, since the
8366         vtables contain GC descriptors which are used by the collector even
8367         after the domain owning the mempool is unloaded.
8368
8369         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
8370
8371         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
8372         reflect what it does. Also invalidate mempools instead of freeing
8373         them if a define is set.
8374
8375         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
8376         of the appdomain.
8377         
8378         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
8379         hold the finalizable objects in this domain.
8380
8381         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
8382         appdomain.
8383
8384         * appdomain.c (mono_domain_set): New function to set the current
8385         appdomain, but only if it is not being unloaded.
8386
8387         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
8388         appdomain which is being unloaded.
8389         
8390         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
8391         unloading of the root appdomain.
8392
8393         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
8394         icall to execute a method in another appdomain. Intended as a 
8395         replacement for InternalSetDomain, which can confuse the code 
8396         generation in the JIT.
8397
8398         * appdomain.c (mono_domain_is_unloading): New function to determine
8399         whenever an appdomain is unloading.
8400
8401         * appdomain.c (mono_domain_unload): New function to correctly unload
8402         an appdomain.
8403
8404         * assembly.c (mono_assembly_load_references): Check that an assembly
8405         does not references itself.
8406
8407         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
8408         domain manually, it asks the finalizer thread to do it, then waits for
8409         the result. Also added a timeout.
8410
8411         * icall.c: Register the new icalls.
8412
8413         * threads.h threads.c: Export the mono_gc_stop_world and 
8414         mono_gc_start_world functions.
8415         
8416         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
8417         function to fill out the mempool with 0x2a.
8418
8419 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
8420
8421         * reflection.h (MonoReflectionMethodAux): New structure to store
8422         information which is rarely used, thus is not in the MonoMethod
8423         structure.
8424
8425         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
8426         store the aux info.
8427
8428         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
8429         and marshalling info into the aux structure.
8430
8431         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
8432         from the aux structure.
8433
8434         * loader.c (mono_method_get_param_names): Retrieve the param names from
8435         the aux structure.
8436         
8437 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
8438
8439         * exception.h exception.c: Add AppDomainUnloadedException && fix 
8440         warning.
8441
8442 2003-10-21  Dick Porter  <dick@ximian.com>
8443
8444         * socket-io.c
8445         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
8446         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
8447
8448 2003-10-21  Martin Baulig  <martin@ximian.com>
8449
8450         * reflection.c (mono_reflection_bind_generic_parameters):
8451         `klass->parent' is NULL for interfaces.
8452
8453 2003-10-21  Martin Baulig  <martin@ximian.com>
8454
8455         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8456
8457 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
8458
8459         * exception.c (mono_exception_from_name_msg): New helper function for
8460         creating exceptions and initializing their message field.
8461
8462         * exception.c: Simplify functions using the new helper.
8463
8464         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
8465         New function.
8466
8467         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
8468         mono_raise_exception, since otherwise gcc doesn't generate the function
8469         epilog for raise_exception, confusing the stack unwinding in the JIT.
8470         Fixes #45043.
8471
8472         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
8473         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
8474         Fixes #49499.
8475
8476 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8477
8478         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
8479         utf8.
8480
8481 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
8482
8483         * icall.c: Removed GetUninitializedObject method because
8484           AllocateUninitializedClassInstance does the same.
8485
8486 2003-10-18  Martin Baulig  <martin@ximian.com>
8487
8488         * class.c (inflate_generic_signature): Renamed to
8489         mono_class_inflate_generic_signature() and made it public.
8490         (my_mono_class_from_generic_parameter): New static function; if we
8491         don't already have the generic parameter's MonoClass, create a
8492         very simple one which is just used internally in the runtime and
8493         not passed back to managed code.
8494
8495         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
8496
8497         * metadata.h (MonoMethodSignature): Moved the
8498         `MonoGenericParam *gen_params' to the MonoMethodHeader.
8499         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
8500
8501         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
8502         ves_icall_MonoMethod_GetGenericArguments(); this is now an
8503         interncall on the MonoMethod class, not on MethodInfo.
8504         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
8505         calling mono_reflection_bind_generic_method_parameters() directly.
8506
8507         * loader.c (mono_method_get_signature): If this is a MethodSpec;
8508         return the already computed `method->signature'.
8509         (method_from_methodspec): New static function to load a method
8510         from a MethodSpec entry.
8511         (mono_get_method_from_token): Call the new method_from_methodspec()
8512         for MethodSpec tokens.  
8513         (mono_get_method_from_token): If we're a generic method, load the
8514         type parameters.
8515
8516         * reflection.c (mono_image_get_memberref_token): Allow
8517         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
8518         table.
8519         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
8520         (mono_image_create_token): First check whether it's a generic
8521         method (so we'd need to create a MethodSpec), then do the other
8522         two alternatives.
8523         (mono_reflection_bind_generic_method_parameters): Return a
8524         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
8525         called directly from the interncall.
8526
8527 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
8528
8529         * reflection.c (load_public_key): Move loading of the public key
8530         into managed code.
8531
8532         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
8533
8534         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
8535         fields.
8536
8537         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
8538         culture, hash_alg and public_key. Fixes #49555.
8539
8540 2003-10-17  Martin Baulig  <martin@ximian.com>
8541
8542         * class.h (MonoGenericInst): Moved this declaration here and added
8543         `MonoMethod *generic_method'.
8544
8545         * icall.c
8546         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
8547         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
8548
8549         * metadata.c (mono_metadata_type_equal): Two types of
8550         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
8551         index; ie. don't compare the address of the `MonoGenericParam'
8552         structure.
8553         (mono_metadata_load_generic_params): Removed the `MonoMethod
8554         *method' argument.
8555
8556         * metadata.h (MonoGenericInst): Moved declaration to class.h.
8557         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
8558
8559         * reflection.c (method_encode_signature): Encode the number of
8560         generic parameters.
8561         (encode_generic_method_sig): New static function.
8562         (method_encode_methodspec): New static function; creates an entry
8563         in the MethodSpec table for a generic method.
8564         (mono_image_get_methodspec_token): New static function.
8565         (mono_image_create_token): Call mono_image_get_methodspec_token()
8566         for generic methods.
8567         (mono_reflection_bind_generic_method_parameters): New public
8568         function.  Instantiates a generic method.
8569
8570 2003-10-16  Martin Baulig  <martin@ximian.com>
8571
8572         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
8573         *gen_params' here from MonoMethodHeader.
8574
8575         * metadata.c (mono_metadata_parse_method_signature): If we have
8576         generic parameters, initialize `method->gen_params' and then set
8577         the correct `type->data.generic_param' in all the parameters.
8578
8579 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
8580
8581         * threads.c (mono_threads_get_default_stacksize): New function to 
8582         return the default stacksize.
8583
8584         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
8585         termination of the finalizer thread, since the previous method had
8586         race conditions. Fixes #49628.
8587
8588         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
8589         as for the other managed threads.
8590
8591 2003-10-16  Martin Baulig  <martin@ximian.com>
8592
8593         * class.c (inflate_generic_signature): Copy `generic_param_count'
8594         and `gen_params'.
8595
8596         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
8597         New interncall.
8598
8599         * metadata.c (mono_metadata_parse_method_signature): Actually set
8600         the `method->generic_param_count' here.
8601         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
8602
8603 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
8604
8605         * object.h: Add a new field to TypedRef to simplify the implementation
8606         of the REFANY opcodes in the JIT.
8607
8608         * icall.c: Make use of the new field.
8609
8610         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
8611         dynamically.
8612
8613 2003-10-15  Martin Baulig  <martin@ximian.com>
8614
8615         * class.c (mono_class_from_gen_param): Renamed to
8616         mono_class_from_generic_parameter() and moved most of the
8617         functionality from mono_reflection_define_generic_parameter()
8618         here; ie. we create a "real" class here.
8619         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
8620         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
8621         previously been called.
8622
8623         * class.h (MonoGenericParam): Moved the declaration of this struct
8624         here from metadata.h and added `MonoMethod *method'.
8625
8626         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
8627         interncall.
8628
8629         * loader.c (mono_get_method_from_token): If we have any generic
8630         parameters, call mono_metadata_load_generic_params() to read them
8631         from the MONO_TABLE_GENERICPAR.
8632
8633         * metadata.c (mono_metadata_load_generic_params): Added
8634         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
8635
8636         * metadata.h (MonoMethodSignature): Replaced
8637         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
8638         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
8639
8640         * reflection.c (mono_reflection_define_generic_parameter): Moved
8641         most of the functionality into the new
8642         mono_class_from_generic_parameter(); set the `method' field if
8643         we're a method parameter.       
8644
8645 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
8646
8647         * marshal.c (emit_struct_conv): if native size is 0
8648         emit no code.
8649
8650 2003-10-14  Martin Baulig  <martin@ximian.com>
8651
8652         * icall.c: The generics API has changed in the spec since it was
8653         added to System.Type; these modifications make it match the spec
8654         again.
8655         (ves_icall_Type_GetGenericParameters): Renamed to
8656         `ves_icall_Type_GetGenericArguments'.
8657         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
8658         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
8659         `ves_icall_MonoType_get_HasGenericArguments'.
8660         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
8661         `ves_icall_MonoType_get_IsGenericParameter'.
8662         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
8663         this is no interncall anymore.
8664         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
8665         `ves_icall_TypeBuilder_get_IsGenericParameter'.
8666
8667 2003-10-14  Martin Baulig  <martin@ximian.com>
8668
8669         * reflection.c (mono_reflection_bind_generic_parameters): Also
8670         inflate generic methods if we're reading the class from IL.
8671
8672 2003-10-13  Martin Baulig  <martin@ximian.com>
8673
8674         * reflection.c (mono_reflection_define_generic_parameter): This
8675         method isn't called directly from the icall anymore; take a
8676         `MonoReflectionAssemblyBuilder *' so we can use this for type and
8677         method generic parameters.
8678         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
8679         (method_builder_encode_signature): Encode generic parameters.
8680         (mono_image_get_method_info): Write generic params to the
8681         MONO_TABLE_GENERICPARAM table.
8682
8683         * reflection.h (MonoReflectionMethodBuilder): Added
8684         `MonoArray *generic_params'.
8685
8686         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
8687
8688         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
8689         wrapper for mono_reflection_define_generic_parameter().
8690         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
8691
8692 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
8693
8694         * marshal.h: Add missing function to fix build.
8695
8696         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
8697         the SetLastError pinvoke attribute.
8698
8699         * marshal.c (mono_marshal_set_last_error): New helper function called
8700         by the generated code.
8701         
8702         * marshal.c (mono_mb_emit_branch): New helper function.
8703
8704         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
8705
8706         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8707         classes as parameters and return values of delegates. Fixes #29256. 
8708
8709 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
8710
8711         * locales.c: use gint32 in non HAVE_ICU case
8712
8713 2003-10-11  Martin Baulig  <martin@ximian.com>
8714
8715         * mono-debug.c (mono_debug_add_method): Added a workaround for
8716         bug #48591.
8717
8718 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
8719
8720         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
8721         delegates passed to native code must use the STDCALL calling 
8722         convention. Fixes #35987.
8723
8724 2003-10-10  Martin Baulig  <martin@ximian.com>
8725
8726         * class.c (inflate_generic_type): If we're inflating for a generic
8727         type instance (and not for a generic method), return
8728         MONO_TYPE_MVAR unchanged.
8729
8730 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8731
8732         * string-icalls.c: Join ignores null strings in the source array.
8733         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
8734         * threads.c: GetAvailableTheads is slightly more accurate.
8735
8736 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
8737
8738         * threads.h threads.c : add mono_threads_set_default_stacksize
8739         and pass default to CreateThread calls.
8740
8741 2003-10-09  Dick Porter  <dick@ximian.com>
8742
8743         * icall.c:
8744         * locales.h:
8745         * locales.c: Internal calls for constructing CultureInfo and
8746         related objects from libicu (if its available.)
8747
8748 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
8749
8750         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
8751
8752 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8753
8754         * threadpool.c: added an argument to async_invoke_thread that is the
8755         item to process, pass the MonoAsyncResult to the thread start function
8756         when creating a new thread. This way we don't need to acquire any lock
8757         when we're creating a new thread. Readded a semaphore for faster
8758         response times (instead of that Sleep i added).
8759
8760 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
8761
8762         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
8763         get daylight change dates better on Windows, fix handling
8764         of platforms without tm_gmtoff.
8765
8766 2003-10-06  Martin Baulig  <martin@ximian.com>
8767
8768         * class.c (inflate_generic_method): Renamed to
8769         mono_class_inflate_generic_method() and made public.
8770         (mono_class_init): Don't inflate the generic methods here.
8771         (mono_class_from_generic): Added `gboolean inflate_methods'
8772         argument.  Inflate the methods here.
8773
8774         * loader.c (mono_method_get_param_names): Ignore instances of
8775         generic types for the moment.
8776
8777         * reflection.c (fixup_method): Added support for inflated methods.
8778         (mono_image_create_token): Use mono_image_get_methodref_token()
8779         for inflated methods.
8780         (mono_custom_attrs_from_param): Ignore instances of generic types
8781         for the moment.
8782         (mono_reflection_bind_generic_parameters): New public function.
8783         Moved all the functionality from
8784         ves_icall_Type_BindGenericParameters() here and added support for
8785         dynamic types.
8786         (mono_reflection_define_generic_parameter): Initialize
8787         `klass->methods' here.
8788
8789         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
8790         functionality into mono_reflection_define_generic_parameter().
8791         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
8792         TypeBuilder, return that TypeBuilder.
8793
8794 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8795
8796         * appdomain.c: removed mono_delegate_semaphore.
8797
8798         * threadpool.c:
8799         (mono_thread_pool_add): moved hash table creation inside and the thread 
8800         creation outside of the critical region.
8801         (mono_thread_pool_finish): removed obsolete code.
8802         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
8803         continue or exit the thread depending on the queue.
8804
8805 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
8806
8807         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
8808         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
8809         handle more bool marshalling options
8810
8811 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
8812
8813         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
8814         arrays of structs. Also add a more descriptive error message when
8815         a structure member is marshalled as LPArray.
8816
8817 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
8818
8819         * marshal.c (mono_marshal_get_native_wrapper): Add support for
8820         marshalling arrays of complex types. Fixes #29098. Also remove an
8821         usused and incomplete function.
8822
8823 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
8824
8825         * gc.c: report heap_size - free_bytes as total memory allocated
8826         (bug#49362).
8827
8828 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
8829
8830         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
8831         fix timezone handling problems on Windows.
8832         
8833         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
8834         asserts when the year is outside the range handled by ms the functions.
8835
8836         * class.c (setup_interface_offsets): If the class is an interface,
8837         fill out its interface_offsets slot.
8838
8839 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8840
8841         * threadpool.c: mark threadpool threads as background.
8842
8843 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
8844
8845         * decimal.c - define DECINLINE to nothing if not using GCC
8846
8847 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
8848
8849         * assembly.c: More refcount fixes.
8850
8851 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8852
8853         * string-icalls.c: if we're not trimming, return the same string.
8854         When not splitting, don't create a new string.
8855
8856 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8857
8858         * image.c:
8859         (mono_image_open): increment the ref_count inside the critical section.
8860
8861 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
8862
8863         * image.c (mono_image_open): Fix reference counting bug.
8864
8865 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
8866
8867         * marshal.c (mono_marshal_type_size) struct alignment changed for 
8868         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
8869         64bits. Avoid leak in mono_marshal_get_native_wrapper when
8870         mono_lookup_pinvoke_call throws.        
8871
8872 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
8873
8874         * reflection.c (mono_reflection_parse_type): Fix #49114.
8875
8876         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
8877         temporary workaround for cygwin header problem.
8878
8879         * object.c (mono_object_isinst): Synchronize this with the code
8880         generated by the JIT for casts.
8881
8882 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
8883
8884         * reflection.c (encode_type): Fix #38332.
8885
8886 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
8887
8888         * marshal.c (mono_marshal_method_from_wrapper): New function to return
8889         the original method from the wrapper method.
8890
8891 2003-09-25  Martin Baulig  <martin@ximian.com>
8892
8893         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
8894         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
8895         (ves_icall_Type_get_IsGenericInstance): New interncall.
8896
8897 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
8898
8899         * object.c: fix cast warning in big endian code.
8900
8901 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
8902
8903         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
8904         
8905 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8906
8907         * assembly.c: don't call check_env from mono_assembly_load. It's
8908         already done once in mono_assemblies_init and may cause headaches when
8909         multiple threads are loading assemblies.
8910
8911 2003-09-19  Martin Baulig  <martin@ximian.com>
8912
8913         * reflection.c (mono_reflection_define_generic_parameter): Don't
8914         allocate `klass->methods', set `klass->flags' to
8915         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
8916
8917 2003-09-18  Martin Baulig  <martin@ximian.com>
8918
8919         * class.c (mono_class_init): Don't create `class->methods' if it's
8920         already initialized.
8921
8922         * metadata.c (mono_metadata_load_generic_params): Make this
8923         actually work.
8924
8925         * reflection.c (mono_reflection_define_generic_parameter): Set
8926         parent class and interfaces from the constraints.
8927
8928         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
8929         to keep this struct in sync with the declaration in TypeBuilder.cs.
8930
8931 2003-09-17  Martin Baulig  <martin@ximian.com>
8932
8933         * metadata.h (MonoType): Replaced the data's `int type_param'
8934         field with `MonoGenericParam *generic_param'.
8935         (MonoGenericParam): Added `MonoClass *klass'.
8936
8937         * class.c (mono_class_from_gen_param): Removed the
8938         `MonoImage *image' and `int type_num' arguments.
8939
8940         * metadata.c (mono_metadata_parse_generic_param): New static
8941         method; creates a MonoGenericParam which just contains the index.
8942         (do_mono_metadata_parse_type): Call
8943         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
8944         MONO_TYPE_MVAR.
8945
8946         * reflection.c (mono_image_typedef_or_ref): Generic type
8947         parameters may be in the same assembly, but never use a typedef
8948         for them.
8949         (mono_reflection_define_generic_parameter): We're now creating a
8950         "real" class for the type parameter; it's now safe to call
8951         mono_class_from_mono_type() on the class'es type, it'll do the
8952         right thing.
8953
8954 2003-09-16  Martin Baulig  <martin@ximian.com>
8955
8956         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
8957         `symfile->range_entry_size' and `symfile->class_entry_size' here;
8958         the `symfile' data structure must be fully initialized before it
8959         gets added to the table.
8960
8961 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
8962
8963         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
8964
8965         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
8966         class init trampolines.
8967
8968 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
8969
8970         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
8971         to the built-in profiler to turn off time and allocation profiling
8972         respectively.
8973
8974 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
8975
8976         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
8977         g_direct_equal.
8978
8979         * debug-helpers.c (mono_method_full_name): Print the wrapper type
8980         in human readable form.
8981
8982 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
8983
8984         * reflection.c icall.c: Fixed warnings.
8985
8986         * image.c (load_class_names): Use a temporary hash table to hold the
8987         namespaces in order to avoid doing many string comparisons.
8988
8989         * image.h: Fix typo.
8990
8991         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
8992         Pass NULL instead of g_direct_equal to the GHashTable constructor 
8993         since the NULL case is short-circuited inside g_hash_table_lookup, 
8994         leading to better performance.  
8995
8996         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
8997         obtain the first custom attribute for a given index. Depends on the
8998         CustomAttribute table being sorted by the parent field.
8999
9000         * reflection.c (mono_custom_attrs_from_index): Use the new function 
9001         for better performance.
9002
9003 2003-09-07  Martin Baulig  <martin@ximian.com>
9004
9005         * class.c (mono_class_init): If we're a generic instance, inflate
9006         all our methods instead of loading them from the image.
9007         (mono_class_from_generic): Set `class->methods = gklass->methods'.
9008
9009 2003-09-07  Martin Baulig  <martin@ximian.com>
9010
9011         * mono-debug-debugger.c: Added support for constructors.
9012
9013 2003-09-06  Martin Baulig  <martin@ximian.com>
9014
9015         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
9016         New interncall.
9017
9018         * reflection.c (mono_reflection_setup_generic_class): Call
9019         ensure_runtime_vtable() to create the vtable.
9020
9021 2003-09-05  Martin Baulig  <martin@ximian.com>
9022
9023         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
9024         MONO_TYPE_MVAR.
9025
9026 2003-09-04  Martin Baulig  <martin@ximian.com>
9027
9028         * reflection.c (mono_reflection_define_generic_parameter): Generic
9029         parameters start with zero.
9030
9031 2003-09-04  Martin Baulig  <martin@ximian.com>
9032
9033         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9034
9035         * reflection.h (MonoReflectionGenericParam): New typedef.
9036         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
9037         the generic parameters from the managed TypeBuilder.
9038
9039         * reflection.c (mono_reflection_define_generic_parameter): New function.
9040         (mono_reflection_create_runtime_class): Encode generic parameters.
9041         (mono_reflection_setup_generic_class): New function; this is
9042         called after adding adding all generic params to the TypeBuilder.
9043         (encode_type): Added MONO_TYPE_VAR.
9044
9045 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9046
9047         * class.h class.c (mono_class_needs_cctor_run): Moved this method
9048         here from the JIT.
9049
9050         * assembly.h assembly.c: Moved the AOT loading code into an assembly
9051         load hook.
9052
9053 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
9054
9055         * reflection.h reflection.c class.h class.c: Delete duplicate 
9056         definition of mono_type_get_name () from reflection.c and export the
9057         one in class.c.
9058
9059         * class.c: Class loading fixes from Bernie Solomon 
9060         (bernard@ugsolutions.com).
9061
9062         * reflection.c: Endianness fixes from Bernie Solomon 
9063         (bernard@ugsolutions.com).
9064         
9065 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
9066
9067         * assembly.h assembly.c: Define a file format version for AOT
9068         libraries.
9069         
9070         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
9071
9072         * appdomain.h (MonoJitInfo): New field to determine whenever the
9073         code is domain neutral.
9074         
9075 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
9076
9077         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
9078
9079 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9080
9081         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
9082         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
9083         Avoid caching the result since strings must be domain specific. Fixes
9084         #48050.
9085
9086 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9087
9088         * marshal.c (mono_marshal_init): Make this callable multiple times
9089         since it is hard to find a correct place to call it.
9090
9091         * object.c (mono_runtime_class_init): Execute static constructors in
9092         the correct appdomain.
9093
9094         * image.c (build_guid_table): Handle the case when multiple images have
9095         the same GUID.
9096
9097 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9098
9099         * icall.c: added a couple of icalls for System.Web.
9100
9101 2003-08-28  Martin Baulig  <martin@ximian.com>
9102
9103         * icall.c (ves_icall_Type_BindGenericParameters): Use
9104         `klass->generic_inst' instead of `&klass->byval_arg' in the
9105         mono_type_get_object() call.  The returned type must be
9106         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
9107
9108 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9109
9110         * NOTES: New file.
9111
9112         * object.c (mono_class_proxy_vtable): Make it thread safe.
9113
9114         * pedump.c: Fix warning.
9115
9116         * object.c appdomain.h: Get rid of metadata_section. 
9117         It is no longer needed and it was causing deadlocks with domain->lock.
9118
9119         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
9120
9121 2003-08-26  Martin Baulig  <martin@ximian.com>
9122
9123         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9124
9125 2003-08-26  Martin Baulig  <martin@ximian.com>
9126
9127         * pedump.c (main): Call mono_metadata_init(),
9128         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9129         and mono_loader_init().
9130
9131 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9132
9133         * loader.h: Add missing include to fix build.
9134
9135         * image.h: mono_image_load_references is no more.
9136
9137         * assembly.c: Reworked assembly loading to make it really thread safe.
9138         After these changes, the assembly returned by mono_assembly_open is
9139         fully initialized, i.e. all its references assemblies are loaded.
9140
9141         * assembly.c (mono_image_load_references): Renamed to 
9142         mono_assembly_load_references, and made private, since clients no
9143         longer need to call it.
9144
9145         * class.c: Removed calls to mono_assembly_load_references, since it was
9146         a source of deadlocks.
9147
9148         * loader.h loader.c class.h class.c: Protect data structures using a 
9149         new lock, the loader lock.
9150
9151         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9152         GPtrArrays only when needed.
9153
9154         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9155         into empty structures by mcs. Fixes pinvoke7.cs.
9156         
9157         * domain.c (mono_init): Call a new initialization function.
9158
9159         * appdomain.c (mono_runtime_init): Call the new initializer function
9160         of the marshal module.
9161
9162         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
9163         inserted into empty structures by mcs. Fixes pinvoke7.cs.
9164
9165         * marshal.h marshal.c: Added locks around the wrapper caches to make
9166         this module thread safe.
9167
9168         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
9169         this argument. Fixes pinvoke1.exe.
9170
9171 2003-08-25  Lluis Sanchez <lluis@ximian.com>
9172
9173         * object.h: Added call_type field to MonoMethodMessage and the corresponding
9174         enumeration of values. Removed fields to store remote call output values in
9175         MonoAsyncResult. Not needed any more.
9176         * object.c: Initialize call_type and async_result fields in mono_message_init.
9177         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
9178         dispatching the message.
9179         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
9180         async call to finish. To do it use a message with EndInvoke call type.
9181
9182 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9183
9184         * loader.h loader.c (mono_method_hash_marhal_info): New function which
9185         determines whenever a method has marshalling info.
9186
9187 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9188
9189         * assembly.c: fix the build on windows.
9190
9191 2003-08-22 Lluis Sanchez <lluis@ximian.com>
9192
9193         * object.cs: Fixed bug #47785.
9194
9195 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
9196
9197         * string-icalls.c (StringReplace): If their are no occurances of
9198         the old string found return a reference to the supplied
9199         string. This saves some memory and matches MS behavoir.
9200         
9201 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9202
9203         * socket-io.c: fixed compilation for systems that define AF_INET6
9204         and don't define SOL_IP/SOL_IPV6.
9205
9206 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
9207
9208         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
9209         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
9210
9211         * rawbuffer.c rawbuffer.h: Make this module thread safe.
9212
9213         * domain.c: Make this module thread safe.
9214
9215         * domain.c (mono_init): Call new initialization function.
9216
9217         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
9218         reference types too. Fixes #38812.
9219
9220         * image.c (mono_image_init): Fixed warnings.
9221
9222         * class.c (mono_class_from_typeref): Handle assembly load failure
9223         correctly.
9224
9225         * appdomain.c (add_assemblies_to_domain): Handle the case when
9226         the references of an assembly are not yet loaded.
9227
9228         * metadata.c image.c assembly.c: Moved initialization of global
9229         variables to a separate function called at startup since lazy 
9230         initialization of these variables is not thread safe.
9231         
9232         * image.c assembly.c: Made this module thread safe by adding locks in 
9233         the appropriate places.
9234
9235         * domain.c (mono_init): Call the new initialization functions of the
9236         three modules.
9237
9238 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
9239
9240         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
9241           make a direct call. It is proxy's work to make the call asynchronous.
9242           mono_delegate_end_invoke(): If the targe is a proxy, just collect
9243           the return values.
9244         * object.cs: mono_method_call_message_new(): read AsyncResult and
9245           state object from parameters list, if this info is requested.
9246         * object.h: Added fields to store remote call output values in
9247           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
9248
9249 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9250
9251         * object.h: add needed fields to MonoThread.
9252         * threads.c, threads.h: allow registering a function to cleanup data
9253         allocated per thread by the JIT.
9254
9255 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9256
9257         * loader.h: portability fix by Bernie Solomon
9258         * <bernard@ugsolutions.com>.
9259
9260 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
9261
9262         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
9263         return a MonoArray. This simplifies the code and also ensures that
9264         the cache allways contains an object reference as a value.
9265
9266         * icall.c (ves_icall_get_parameter_info): Simplified using the new
9267         function.
9268
9269 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9270
9271         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
9272         fixes a problem with byte ordering when getting the address family for
9273         a socket.
9274
9275 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
9276
9277         * .cvsignore: Added monosn.
9278
9279         * reflection.h reflection.c loader.c: Added support for parameter
9280         marshalling to dynamically created types. Fixes #47295.
9281
9282 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
9283
9284         * rand.c: remove useless warnings.
9285
9286 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9287
9288         * class.c: implemented ldtoken for methods and fieldrefs.
9289
9290 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9291
9292         * threadpool.c: when mono_async_invoke was called, no one took care of
9293         monitoring the queue. So if the method invoked took some time and we
9294         got new async invoke requests after 500 ms (the thread created waited
9295         that long in WaitForSingleObject), the new async invoke was not called
9296         until the previous one finished.
9297
9298         This is fixed now. Thanks to Totte for helping with it.
9299
9300 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9301
9302         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
9303
9304 2003-08-11  Martin Baulig  <martin@ximian.com>
9305
9306         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
9307
9308 2003-08-06  Martin Baulig  <martin@ximian.com>
9309
9310         * mono-debug-debugger.c: Added support for static fields,
9311         properties and methods.
9312
9313 2003-08-06  Martin Baulig  <martin@ximian.com>
9314
9315         * mono-debug-debugger.c: Don't store the MonoString's vtable to
9316         make this work for applications with multiple application domains.
9317
9318 2003-08-04  Martin Baulig  <martin@ximian.com>
9319
9320         * mono-debug-debugger.c: Completely reworked the type support; the
9321         most important thing is that we're now just using one single
9322         `MonoType' instance per type.
9323
9324 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9325
9326         * mono-endian.h, mono-endian.c, icall.c: Added icall
9327         ves_icall_System_Double_AssertEndianity to assert double word endianity
9328         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
9329
9330 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9331
9332         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
9333         support, icalls and fixes.
9334
9335 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
9336
9337         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
9338         classes that are a punctuation character in .NET is not the same a
9339         g_unichar_ispunct.
9340
9341 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9342
9343         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
9344
9345 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
9346
9347         * icall.c: Add new MemCopy internalcall.
9348         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
9349         Simplified code; It is not necessary to handle all the cases here,
9350         as the C# code takes care of it.  Only handle the case of the name
9351         resource embedded into the assembly.
9352
9353         Changed signature to return the data pointer and the size of the
9354         data. 
9355
9356 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
9357
9358         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
9359         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
9360
9361 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9362
9363         * socket-io.c: ignore EINTR error in select.
9364
9365 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9366
9367         * class.h, class.c: removed unused subclasses field in MonoClass.
9368
9369 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9370
9371         * icall.c: improve fix of get_base_definition(). If the parent class
9372           doesn't have the mehod, look at the parent of the parent.
9373         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
9374           to check if a parameter is an in or out parameter
9375           (PARAM_ATTRIBUTE_IN is not set by default).
9376           mono_method_return_message_restore(): Use mono_class_value_size to
9377           get the size of a value type. mono_type_stack_size (parameterType)
9378           does not return the correct value if parameterType is byRef.
9379           mono_load_remote_field(), mono_load_remote_field_new(),
9380           mono_store_remote_field(), mono_store_remote_field_new():
9381           raise exception if the remote call returns an exception.
9382
9383 2003-07-28  Martin Baulig  <martin@ximian.com>
9384
9385         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
9386         method.  This is a wrapper around mono_runtime_invoke() which
9387         boxes the instance object if neccessary.
9388
9389 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9390
9391         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
9392         metadata.h, row-indexes.h, verify.c: first cut of generics support.
9393
9394 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9395
9396         * icall.c: disable mcs bug workaround.
9397
9398 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
9399
9400         * object.c (mono_runtime_class_init): Take the metadata_section
9401         mutex before obtaining the domain mutex.
9402
9403         * appdomain.h: Added definition of metadata_section mutex here. 
9404
9405         * object.c: define metadata_mutex here.
9406
9407 2003-07-24  Ravi Pratap  <ravi@ximian.com>
9408
9409         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
9410         fixed.
9411
9412 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
9413
9414         * reflection.c: Fix bug #46669
9415
9416 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9417
9418         * exception.c:
9419         * exception.h:
9420         * icall.c:
9421         * object.h: fill in the type name for TypeLoadException.
9422
9423 2003-07-23  Ravi Pratap  <ravi@ximian.com>
9424
9425         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
9426         relationship between TypeBuilders while compiling corlib) and bug
9427         45993 (Array types returned from the runtime while compiling
9428         corlib were from the loaded corlib).
9429
9430 2003-07-22  Martin Baulig  <martin@ximian.com>
9431
9432         * mono-debug-debugger.c: Reworked the type support a bit more;
9433         distinguish between types and classes.
9434
9435 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
9436
9437         * icall.c: add IsArrayImpl icall.
9438
9439 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
9440
9441         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
9442         initializing real_size only once. Also fix bug #46602.
9443
9444 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
9445
9446         * object.c: Renamed mono_metadata_section to metadata_section.
9447
9448 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
9449
9450         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
9451           empty array if the type is an array. Fixed.
9452           ves_icall_MonoMethod_get_base_definition: if the base method
9453           is abstract, get the MethodInfo from the list of methods of
9454           the class.
9455         * reflection.c: ParameterInfo.PositionImpl should be zero-based
9456           and it was 1-based. Fixed in mono_param_get_objects.
9457
9458 2003-07-20  Martin Baulig  <martin@ximian.com>
9459
9460         * mono-debug.h: Set version number to 31.
9461         (mono_debug_init): Added `MonoDomain *' argument.
9462
9463         * mono-debug-debugger.c: Reworked the type support; explicitly
9464         tell the debugger about builtin types; pass the `klass' address to
9465         the debugger.
9466
9467 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
9468
9469         * image.c: Allow new metadata tables to be loaded without a
9470         warning. Also update the warning message to give the new constant value.
9471                 
9472 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9473
9474         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
9475         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
9476         array type representation changes.
9477
9478 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9479
9480         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
9481         on Environment.Exit () call.
9482
9483 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9484
9485         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
9486         requires a matching corlib.
9487
9488 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9489
9490         * Changelog: My editor decided to add a CR to each line. Sorry about that.
9491           Committed again without the CRs.
9492         
9493 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9494
9495         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
9496           getting it from the "this" socket instance. Did not work
9497           if the socket is a subclass of Socket.
9498           Also fixed bug #35371.
9499
9500 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9501
9502         * metadata.c: fixed size for TypedByRef.
9503         * loader.c: when searching for a method, consider the vararg amrker.
9504         * unicode.c, decimal.c: constify some arrays.
9505
9506 2003-07-15  Dick Porter  <dick@ximian.com>
9507
9508         * socket-io.c: Fixed compilation for gcc < 3.2.
9509
9510         Fixed compilation for machines that don't have AF_INET6 (thanks to
9511         Bernie Solomon <bernard@ugsolutions.com> for that part.)
9512
9513         Fixed compile warnings.
9514         
9515         Fixed formatting and line endings.
9516
9517 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
9518
9519         * socket-io.h:
9520         * socket-io.c: Added IPv6 support.
9521
9522 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
9523
9524         * class.c (mono_class_is_assignable_from): New function to implement
9525         the is_assignable_from logic. Used by mono_object_isinst, 
9526         Type::IsAssignableFrom () and the interpreter.
9527
9528         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
9529         Object, even interfaces.
9530         
9531         * object.c (mono_object_isinst): Implement in terms of 
9532         is_assignable_from.
9533
9534         * icall.c (ves_icall_type_is_assignable_from): New icall.
9535
9536 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
9537
9538         * domain.c (foreach_domain): fix compiler warning.
9539
9540 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
9541
9542         * image.c (load_metadata_ptrs): use g_strndup because strndup is
9543         not available on all plattforms
9544
9545 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
9546
9547         * image.h image.c: Store the metadata version string in MonoImage.
9548         * icall.c: New icall to retrieve the image version.
9549         * reflection.c (create_dynamic_image): Fill in the image version field
9550         * reflection.c (build_compressed_metadata): Use the image version
9551         from the image structure.
9552
9553 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9554
9555         * appdomain.c: modified comment.
9556         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
9557         That will be its last iteration when mono_gc_cleanup is called from
9558         mono_runtime_cleanup and before the domain is unloaded.
9559
9560         Fixes bug #45962.
9561
9562 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
9563
9564         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
9565         attributes.
9566
9567 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9568
9569         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
9570         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
9571         Bernie Solomon <bernard@ugsolutions.com>.
9572
9573 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9574
9575         * object.c, object.h: provide mono_object_new_fast() for faster
9576         allocation in some special cases.
9577
9578 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9579
9580         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
9581         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
9582
9583 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9584
9585         * threadpool.c: fix leaks.
9586
9587 2003-07-01  Dick Porter  <dick@ximian.com>
9588
9589         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
9590         using MonoGHashTables.  Fixes threadpool bug posted to list.
9591
9592 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9593
9594         * image.h, image.c: added support to load an assembly from a byte array.
9595         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
9596         assembly bundle support.
9597
9598 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
9599
9600         * threadpool.c (mono_thread_pool_add): keep a reference to the
9601         AsyncResult to prevent GC
9602
9603 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9604
9605         * class.c: leak fix.
9606
9607 2003-06-25  Dick Porter  <dick@ximian.com>
9608
9609         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
9610         for the async object, the WaitHandle object will close the handle.
9611         Fixes bug 45321.
9612
9613 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9614
9615         * class.c: in mono_array_class_get (), lookup from the hash with the
9616         same type we insert: this works around a bug in
9617         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
9618         lluis. The real fix will have to wait for after the release.
9619
9620 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9621
9622         * icall.c: fix memory leak when getting type members.
9623
9624 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9625
9626         * reflection.c: added more pubtoken special cases.
9627
9628 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9629
9630         * class.c: handle field offset correctly when class size
9631         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
9632
9633 2003-06-20  Martin Baulig  <martin@ximian.com>
9634
9635         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
9636         *image' field.
9637
9638 2003-06-20  Martin Baulig  <martin@ximian.com>
9639
9640         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
9641
9642 2003-06-20  Martin Baulig  <martin@ximian.com>
9643
9644         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
9645         just distinguish between variables in registers and variables at
9646         an offset relative to a register.
9647
9648 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9649
9650         * icall.c: #ifdef out latest changes until mcs is fixed.
9651
9652 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9653
9654         * icall.c: return members in metadata order.
9655
9656 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9657
9658         * icall.c: avoid infinite loop in GetTimeZoneData.
9659
9660 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
9661
9662         * icall.c: added Marshal.Prelink/All icalls.
9663
9664 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9665
9666         * object.c, object.h: fix warnings and do some overflow checking
9667         when creating arrays.
9668
9669 2003-06-17  Dick Porter  <dick@ximian.com>
9670
9671         * file-io.h:
9672         * file-io.c: File attributes need to be tweaked slightly when
9673         passed from the managed to the w32 world.
9674
9675 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9676         * profiler.h profiler-private.h profiler.c: Rework last patch
9677         based on suggestion by Paolo.
9678         
9679 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9680
9681         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
9682         instruction level coverage data collection.
9683         * profiler.h profiler.c (: Added new callback function which can be
9684         used by the profiler to limit which functions should have coverage
9685         instrumentation.
9686         * profiler.c (mono_profiler_load): Call g_module_build_path to
9687         generate the file name of the profiler library.
9688
9689 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9690
9691         * profiler.c, profiler.h, profiler-private.h: added basic block 
9692         coverage profiling API.
9693
9694 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
9695
9696         * reflection.c (mono_reflection_create_runtime_class): Add support
9697         for events in dynamically generated code.
9698
9699         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
9700         not allocated.
9701
9702 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9703
9704         * icall.c: when getting timezone info, return reasonable values if we
9705         can't get the actual data.
9706
9707 2003-06-14  Dick Porter  <dick@ximian.com>
9708
9709         * threads.c (start_wrapper): Remove the reference to the thread
9710         object in the TLS data, so the thread object can be finalized.
9711         This won't be reached if the thread threw an uncaught exception,
9712         so those thread handles will stay referenced :-( (This is due to
9713         missing support for scanning thread-specific data in the Boehm GC
9714         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
9715
9716 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
9717
9718         * reflection.c: ensure streams and tables are first allocated with
9719         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
9720
9721 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9722
9723         * icall.c: fixed GetElementType for byrefs (bug# 44792).
9724
9725 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
9726
9727         * reflection.c (mono_reflection_create_runtime_class): Add support for
9728         properties to dynamically created classes.
9729         * reflection.c: Fix a few places where non-MonoObjects were inserted
9730         into the tokens hashtable.
9731
9732 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9733
9734         * object.c: some support to handle out of memory exceptions.
9735
9736 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
9737
9738         * marshal.c (mono_marshal_get_native_wrapper): support reference
9739         return types
9740
9741 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9742
9743         * object.h, object.c: more portability stuff from Bernie Solomon.
9744         Unexport mono_object_allocate(). Added mono_object_unbox ().
9745         Set exitcode when an unhandled exception is thrown.
9746
9747 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
9748
9749         * marshal.c (mono_marshal_get_native_wrapper): use custom
9750         marshaler for return types.
9751
9752 2003-06-10  Dick Porter  <dick@ximian.com>
9753
9754         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
9755         ip_mreq is available
9756
9757 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
9758
9759         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
9760         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
9761         by Bernie Solomon <bernard@ugsolutions.com>.
9762
9763 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
9764
9765         * gc.c (mono_gc_init): Avoid error message on shutdown when
9766         GC_DONT_GC=1 is used.
9767
9768         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
9769         New icall to return the GUID of a module.
9770
9771 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9772
9773         * class.c: ensure instance size always includes the parent's size
9774         even whem class size is set explicitly (fixes bug#44294).
9775
9776 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9777
9778         * profiler.h, profiler.c: made the simple profiler thread-safe,
9779         get more accurate timing info. Allow the loading of an
9780         externally-developed profiler module.
9781
9782 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
9783
9784         * marshal.c (mono_marshal_get_native_wrapper): improved
9785         class/byref arguments.
9786         (mono_marshal_get_native_wrapper): better string marshaling support.
9787
9788 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9789
9790         * class.c: ensure .pack and .size are handled correctly and
9791         simplified layout of static fields.
9792
9793 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9794
9795         * appdomain.c
9796         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
9797
9798         * loader.c (mono_lookup_pinvoke_call): look for modules in the
9799         current directory (fix bug 44008)
9800
9801 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
9802
9803         * marshal.c (mono_marshal_get_native_wrapper): started support for
9804         custom marshalers.
9805         (mono_delegate_to_ftnptr): consider marshalling specifications
9806
9807 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9808
9809         * reflection.c, reflection.h: emit custom marshal info.
9810
9811 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9812
9813         * object.c: free the GError.
9814         * icall.c: added CloseEvent_internal.
9815         * threads.[ch]:
9816         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
9817         call.
9818
9819 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
9820
9821         * loader.c (mono_method_get_signature): Add support for dynamic
9822         assemblies.
9823
9824 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9825
9826         * reflection.c: fixed bug #43905.
9827
9828 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9829
9830         * class.c, domain.c, icall.c, metadata.h, object.h: support for
9831         handling TypedReference and ArgIterator.
9832         * loader.c, loader.h: added function to get signature at call site.
9833
9834 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9835
9836         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
9837         data readonly. Buglets and warning fixes. Some MethodSpec support.
9838
9839 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9840
9841         * class.h, class.c, object.c: remove relative numbering support.
9842
9843 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
9844
9845         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
9846         free the string, until we get a chance to fix Gtk#
9847
9848 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9849
9850         * marshal.c: revert last patch.
9851
9852 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9853
9854         * icall.c: updates for new mono_class_vtable() not calling
9855         the type constructor anymore.
9856
9857 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9858
9859         * object.h, object.c: separate vtable creation from type
9860         initialization. Make running the .cctor thread safe.
9861
9862 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
9863
9864         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
9865
9866 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
9867
9868         * loader.c (mono_get_method): consider calling convention
9869
9870 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
9871
9872         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
9873         to return the invisible global type for a module.
9874
9875         * reflection.c (mono_image_build_metadata): Emit global fields too.
9876
9877 2003-05-20  Peter Williams  <peterw@ximian.com>
9878
9879         * loader.c (mono_lookup_internal_call): Add a few newlines.
9880
9881 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
9882
9883         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
9884         literal strings.
9885
9886         * appdomain.c (set_domain_search_path): Recalculate search path when
9887         AppDomainSetup.PrivateBinPath changes.
9888
9889         * object.c (mono_class_compute_gc_descriptor): It turns out some
9890         parts of the class libs (like System.Thread) holds pointers to
9891         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
9892         to treat native int a pointer type here.
9893         
9894 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
9895
9896         * appdomain.h, domain.c: add hashtable for jump target resolution.
9897
9898 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
9899
9900         * reflection.h reflection.c icall.c: Added new icalls 
9901         GetManifestResourceInfoInternal, GetModulesInternal and support
9902         infrastructure.
9903
9904 2003-05-16  Dick Porter  <dick@ximian.com>
9905
9906         * icall.c:
9907         * file-io.h:
9908         * file-io.c: Implement System.IO.MonoIO::GetTempPath
9909
9910 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
9911
9912         * object.c: mono_store_remote_field: little fix to previous patch.
9913
9914 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9915
9916         * class.c: add constructors to array classes.
9917         * icall.c: special case array construction for InternalInvoke (),
9918
9919 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
9920
9921         * class.h class.c reflection.c object.c: Added support for field
9922         defaults in dynamically generated classes.
9923
9924 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9925
9926         * reflection.c: properly encode charset for ddlimport.
9927
9928 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
9929
9930         * threads.c: allow compiling without GC.
9931
9932 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9933
9934         * appdomain.h, object.c, object.h, threads.c, threads.h: added
9935         handling of thread static data.
9936
9937 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9938
9939         * reflection.h, reflection.c: added mono_custom_attrs_free ().
9940
9941 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
9942
9943         * class.c (mono_array_class_get): always set the serializable flags
9944         (mono_array_class_get): always set the SEALED attribute for array types
9945
9946 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
9947
9948         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
9949         attributes (fix for bug 42021).
9950
9951 2003-05-12  Dick Porter  <dick@ximian.com>
9952
9953         * gc.c: Don't run finalizers when the finalizer thread is
9954         finishing up, because the default domain has already been
9955         destroyed.
9956
9957 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
9958
9959         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
9960         value is null, we should throw an exception.   This is slightly
9961         different than the other conventions used for the constructor.
9962
9963 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9964
9965         * socket-io.c: fixed windows build.
9966
9967 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9968
9969         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
9970
9971 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
9972
9973         * object.c (mono_string_new_wrapper): Compatibility fix for MS
9974         compilers.
9975
9976 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
9977
9978         * class.c (mono_class_layout_fields): Add experimental GC aware
9979         auto layout facility. Requires class library changes to work correctly.
9980
9981         (mono_class_setup_vtable): Avoid overriding explicit interface
9982         method implementations. Fixes iface3.exe test.
9983
9984         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
9985         object reference.
9986         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
9987         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
9988
9989         * metadata.h: Add new type classification macro which determines
9990         whenever the type holds an object reference.
9991
9992 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
9993
9994         * marshal.c (mono_marshal_get_native_wrapper): cleanups
9995
9996 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
9997
9998         * gc.c (finalizer_thread): Work around a GC bug.
9999
10000 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
10001
10002         * marshal.c (emit_struct_conv): allow unions
10003
10004         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
10005
10006 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
10007
10008         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
10009
10010 2003-05-06  Martin Baulig  <martin@ximian.com>
10011
10012         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
10013
10014 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10015
10016         * socket-io.c:
10017         (Select_internal): allow NULLs, don't create arrays if not needed.
10018         Coupled with Socket.cs changes.
10019
10020         * threadpool.c:
10021         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
10022         register a finalizer for it that will close the semaphore handle. This
10023         fixes the leak and make Lupus' test run with > 4080 loops.
10024
10025 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
10026
10027         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
10028         Jerome Laban (bug #42287)
10029
10030 2003-05-02  Martin Baulig  <martin@ximian.com>
10031
10032         * debug-mono-symfile.h
10033         (MonoSymbolFile): Moved declaration into mono-debug.h.
10034         (MonoDebugMethodJitInfo): Likewise.
10035         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
10036         argument.
10037         (_mono_debug_address_from_il_offset): Take a
10038         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
10039
10040         * mono-debug.h
10041         (MonoDebugDomainData): New struct.
10042         (mono_debug_get_domain_data): New function.
10043         (mono_debug_add_method): Take an additional `MonoDomain *'
10044         argument.
10045         (mono_debug_source_location_from_address): Likewise.
10046         (mono_debug_il_offset_from_address): Likewise.
10047         (mono_debug_address_from_il_offset): Likewise.
10048
10049 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
10050
10051         * reflection.c: one more check for null type in custom attrs.
10052
10053 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10054
10055         * reflection.c: avoid warning (comparison is always false due to limited
10056         range of data type).
10057
10058 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10059
10060         * icall.c: throw an exception in Type.GetField if the argument 'name'
10061         is NULL.
10062
10063 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
10064
10065         * reflection.c: fixed handling of enums in named arguments to custom
10066         attributes (bug #42123).
10067
10068 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10069
10070         * reflection.c: use the right array element type and handle
10071         a null for a Type argument, too.
10072
10073 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
10074
10075         * reflection.c: handle arrays as arguments to custom attributes.
10076
10077 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10078
10079         * reflection.c: handle a string value in a custom attr
10080         ctor that takes an object.
10081
10082 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
10083
10084         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
10085         (fix bug #42063)
10086
10087 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
10088
10089         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
10090
10091 2003-04-27  Martin Baulig  <martin@ximian.com>
10092
10093         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
10094         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
10095         MONO_DEBUGGER_EVENT_BREAKPOINT.
10096         (mono_breakpoint_trampoline_code): Removed.
10097         (mono_debugger_event_handler): The last argument is now a
10098         `guint32'.
10099         (mono_debugger_insert_breakpoint_full): Removed the
10100         `use_trampoline' argument.
10101         (mono_debugger_method_has_breakpoint): Likewise.
10102         (mono_debugger_trampoline_breakpoint_callback): Renamed to
10103         mono_debugger_breakpoint_callback(); take the method and
10104         breakpoint number as arguments.
10105
10106 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
10107
10108         * metadata.c: fix off by one when loading parameters attributes.
10109
10110 2003-04-24  Martin Baulig  <martin@ximian.com>
10111
10112         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
10113
10114 2003-04-24  Martin Baulig  <martin@ximian.com>
10115
10116         * mono-debug-debugger.c: Moved all code which interacts with the
10117         Mono Debugger here.
10118
10119         * debug-mono-symfile.c: This code now just deals with the symbol
10120         file itself, the debugger code is now in mono-debug-debugger.c.
10121
10122 2003-04-23  Martin Baulig  <martin@ximian.com>
10123
10124         * mono-debug.c (mono_debug_source_location_from_il_offset):
10125         New method; like mono_debug_source_location_from_address(), but
10126         takes an IL offset instead of a machine address.
10127
10128 2003-04-23  Martin Baulig  <martin@ximian.com>
10129
10130         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10131         `line' field; this is now computed by the debugger.
10132
10133 2003-04-23  Martin Baulig  <martin@ximian.com>
10134
10135         * mono-debug.[ch]: New files.  This is the new debugging interface.
10136
10137         * mono-debug-debugger.[ch]: New files.  Moved all code which
10138         interacts with the Mono Debugger here.
10139
10140 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10141
10142         * domain.c (mono_init): initialize mono_defaults.monitor_class
10143
10144 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10145
10146         * reflection.c (method_encode_code): Add a spicy exception to help
10147         future compiler authors.
10148
10149 2003-04-21  Martin Baulig  <martin@ximian.com>
10150
10151         * icall.c
10152         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10153         Make this work with relative pathnames; g_filename_to_uri() needs
10154         an absolute filename.
10155
10156 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10157
10158         * icall.c: Track name changes in Object and ValueType.
10159
10160 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10161
10162         * metadata.c (mono_type_stack_size): size should be a multiple of
10163         sizeof (gpointer)
10164
10165 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10166
10167         * gc.c:
10168         (internal_domain_finalize): moved into mono_domain_finalize. No need
10169         to create another thread because the finalizers will be run in the
10170         finalizer thread.
10171         
10172         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
10173         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
10174         to be run (MS does this too).
10175
10176 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10177
10178         * object.c (mono_class_compute_gc_descriptor): Update comment.
10179
10180         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
10181
10182         * image.h: Add synchronized wrapper cache.
10183
10184         * image.c (do_mono_image_open): Initialize cache.
10185
10186         * reflection.c (create_dynamic_mono_image): Initialize cache.
10187
10188 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10189
10190         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
10191         ves_icall_System_Buffer_ByteLengthInternal.
10192
10193 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10194
10195         * reflection.c: setup klass->nested_in earlier. Allow
10196         a dash in the assembly name.
10197
10198 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
10199
10200         * metadata.c (mono_type_to_unmanaged): dont access
10201         type->data.klass for MONO_TYPE_OBJECT
10202         (mono_type_to_unmanaged): consider System.Delegate class
10203
10204 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
10205
10206         * class.c: just setup supertypes in the proper place instead of
10207         initializing the full element class for arrays.
10208
10209 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10210
10211         * class.c: ensure the element class of arrays is initialized.
10212         Setup the supertype info for array classes, too.
10213
10214 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
10215
10216         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
10217
10218 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10219
10220         * Makefile.am: re-added -m option when running cygpath. This way,
10221         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
10222         separator.
10223         * mono-config.c: same codepath for locating mono config file for WIN32
10224         and the rest.
10225         * assembly.c: if mono_assembly_setrootdir is called, don't override
10226         the value set.
10227
10228 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10229
10230         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
10231         MONO_ASSEMBLIES variable.
10232
10233 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
10234
10235         * icall.c: added Assembly::GetNamespaces() icall.
10236
10237 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10238
10239         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
10240
10241 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
10242
10243         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
10244         * object.c: fixed bug in the construction of vtable for proxies
10245
10246 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10247
10248         * object.c (mono_array_new): Mark mono_array_new as an icall.
10249
10250 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10251
10252         * class.c: fixed test for public method when overriding interfaces.
10253         Closes bug #40970.
10254
10255 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10256
10257         * appdomain.h, domain.c: added mono_domain_foreach() to
10258         be able to access the currently loaded appdomains.
10259         * object.c: make string interning work across sppdomains.
10260         Mark some functions for use as icalls.
10261
10262 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10263
10264         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
10265
10266         * reflection.h reflection.c: Allocate long living data using 
10267         GC_MALLOC_ATOMIC so the collector does not need to scan it.
10268
10269         * reflection.c: Double the allocation size in streams instead of
10270         increasing it, to prevent unneccesary copying on large assemblies.
10271         
10272         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
10273         creation if the assembly does not have the Run flag set.
10274
10275 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
10276
10277         * class.h: avoid the C++ keywords in header files (Jerome Laban
10278         spotted and fixed this).
10279
10280 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10281
10282         * object.c:
10283         (mono_unhandled_exception): fill in the arguments for the
10284         UnhandledException event. Only trigger that event for the default
10285         domain (as MS does).
10286
10287 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
10288
10289         * object.c: Improve typed allocation stuff based on suggestions from
10290         Paolo. Also turn it on if the GC library supports it.
10291
10292 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10293
10294         * object.c object.h class.h: Added experimental typed allocation
10295         facility using the interfaces in gc_gcj.h.
10296
10297         * os/gc_wrapper.h: Added new include files.
10298         
10299 2003-04-03  Martin Baulig  <martin@ximian.com>
10300
10301         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
10302         which is not yet enabled by default.
10303
10304         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
10305         functions.
10306         (mono_gc_lock, mono_gc_unlock): New static functions.
10307
10308         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
10309         functions; stop/start the world for the garbage collector.  This
10310         is using the windows API; we need to complete the SuspendThread()/
10311         ResumeThread() implementation in the io-layer to make this work on Unix.
10312         (mono_gc_push_all_stacks): New public function; tells the garbage
10313         collector about the stack pointers from all managed threads.
10314
10315 2003-04-03  Martin Baulig  <martin@ximian.com>
10316
10317         * object.h (MonoThread): Added `gpointer stack_ptr'.
10318
10319         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10320
10321 2003-04-03  Martin Baulig  <martin@ximian.com>
10322
10323         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10324
10325 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10326
10327         * reflection.c (typebuilder_setup_fields): Initialize field.first and
10328         field.last.
10329
10330 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
10331
10332         * loader.c (mono_lookup_internal_call): Report the corlib that is
10333         out of sync.
10334
10335 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
10336
10337         * icall.c (ves_icall_type_GetTypeCode): fixed check for
10338         System.DBNull (it's class not valuetype).
10339
10340 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10341
10342         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
10343         if the array method was already assigned a token (fixes bug#40646).
10344
10345 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
10346
10347         * reflection.c (mono_reflection_get_type): Attempt type resolve even
10348         if no assembly is given.
10349
10350 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
10351
10352         * metadata.h: Added the new tables.
10353
10354         * row-indexes.h: Added definitions for new tables.
10355
10356         * metadata.c: Add schemas for new tables, and add support for
10357         computing the sizes of them.
10358
10359         * class.c: Update for handling the new type cases.
10360
10361 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
10362
10363         * metadata.h (MONO_TYPE_IS_VOID): new macro
10364
10365 2003-03-31  Martin Baulig  <martin@ximian.com>
10366
10367         * threads.h (MonoThreadCallbacks): Added `thread_created'.
10368
10369         * threads.c (mono_thread_new_init): Call `thread_created' in the
10370         mono_thread_callbacks.
10371
10372 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
10373
10374         * loader.h: added marshalbyrefobject_class to mono_defaults
10375         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
10376         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
10377           generation of output parameters.
10378           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
10379         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
10380           contextbound and the target object belongs to the context of the caller.
10381         * object.h: added context and unwrapped_server variables in MonoRealProxy.
10382         * object.c: Implemented support for interfaces and abstract classes
10383           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
10384           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
10385
10386 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
10387
10388         * class.h class.c (mono_class_is_subclass_of): New function.
10389         
10390         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
10391         routines for most common case (calls from ArrayList::ToArray).
10392
10393         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
10394         routine so programs which call Environment::Exit() can be profiled.
10395
10396         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
10397         Added MONO_ARCH_SAVE_REGS.
10398
10399         * icall.c (ves_icall_type_is_subtype_of): Use new function.
10400
10401 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
10402
10403         * blob.h: Add a couple of new MonoType types definitions.
10404
10405         * tabledefs.h: Add a couple of new call convs.
10406
10407 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
10408
10409         * reflection.h (MonoReflectionDynamicAssembly): track changes in
10410         the layout of the class.
10411
10412         * reflection.c (alloc_table): double the size on overflow to avoid
10413         unnecessary copying.
10414
10415         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
10416         avoid filling out metadata tables and blobs. Also set mb->ilgen to
10417         null so it can be garbage collected.
10418         
10419 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
10420
10421         * reflection.c (mono_reflection_get_type): Return the resolved type
10422         only if it is in the assembly we searched.
10423
10424         * reflection.c (ensure_runtime_vtable): Initialize method slots.
10425
10426         * class.c (mono_class_setup_vtable): Set the slot of the overriding
10427         method.
10428
10429 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10430
10431         * appdomain.c:
10432         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
10433         the right one is 'file:///blah', but MS allows it.
10434         * assembly.c:
10435         (mono_assembly_open): allow 'file://blah'
10436
10437         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
10438
10439 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
10440
10441         * socket-io.c: fixes bug #40310.
10442
10443 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
10444
10445         * reflection.c (mono_reflection_parse_type): handle deeply nested
10446         types correctly.
10447
10448         * reflection.c (mono_image_create_token): Use unique token values
10449         since they will be put into a hash table.
10450
10451         * class.c (mono_class_setup_vtable): If a method occurs in more than
10452         one place in the vtable, and it gets overriden, then change the
10453         other occurances too.
10454
10455         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
10456         object as return type.
10457
10458 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10459
10460         * icall.c: Deleted "ToString" implementation for double and float
10461         because they are full implemented in managed code.
10462
10463 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10464
10465         * reflection.c, reflection.h: implemented and exported functions
10466         to retrieve info about custom attributes.
10467
10468 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10469
10470         * appdomain.c: moved Uri handling to assembly.c
10471         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
10472         work when using a file Uri in *nix and windows.
10473
10474         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
10475         GetReferencedAssemblies.
10476
10477 2003-03-18  Dick Porter  <dick@ximian.com>
10478
10479         * icall.c: Rename a couple of internal calls
10480
10481         * threads.c: Set the thread state to Stopped when a thread exits.
10482         Fixes bug 39377.
10483
10484 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
10485
10486         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10487         New icall.
10488
10489         * object.c (mono_class_vtable): fix warning.
10490
10491 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
10492
10493         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
10494
10495         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
10496         memory.
10497         (method_encode_clauses): Create exception info structures in the right
10498         order.
10499         (mono_reflection_setup_internal_class): Initialize supertypes field.
10500
10501         * class.c object.c: Handle interfaces which implement other interfaces 
10502         correctly.
10503
10504         * class.h class.c: Move the supertypes array initialization code into 
10505         a separate function so it can be used for dynamic types too. Also call
10506         it earlier, in mono_class_init(), since it can be used before the
10507         type is initialized.
10508
10509 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10510
10511         * Makefile.am:
10512         * assembly.c:
10513         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
10514
10515         * appdomain.c:
10516         * appdomain.h:
10517         * marshal.c:
10518         * object.c: remove warnings.
10519
10520 2003-03-13  Martin Baulig  <martin@ximian.com>
10521
10522         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
10523         (MonoDebugLexicalBlockEntry): New types.
10524
10525         * debug-mono-symfile.c
10526         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
10527
10528 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10529
10530         * process.c: ret can be any non-zero value accroding to MS doc.
10531
10532 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
10533
10534         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
10535         fixing a warning for a miss-used prototype, would have cause
10536         random memory corruption.
10537
10538 2003-03-07  Martin Baulig  <martin@ximian.com>
10539
10540         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
10541         getting really annoying ....
10542
10543 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
10544
10545         * reflection.c (fixup_method): added support for array methods.
10546
10547 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
10548
10549         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
10550         (pointed out by Michael Adams).
10551
10552 2003-03-04  Dick Porter  <dick@ximian.com>
10553
10554         * icall.c: Temporarily reverted the Double and Single ToString()
10555         change, because it broke nunit.
10556
10557 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
10558
10559         * object.h, threads.h: make include files compatible with C++
10560         (patch by Jerome Laban <jlaban@wanadoo.fr>).
10561
10562 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10563
10564         * icall.c: Erased ToString helper functions for Double and Single.
10565         Now, that implementations ar all in managed code (Double and Single
10566         Formatters).
10567
10568 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
10569
10570         * appdomain.c: Added method for initializing the default context of
10571         a domain. Added internal call for getting the default context.
10572         * appdomain.h: Added context variable in MonoDomain struct.
10573         * domain.c: mono_domain_set also sets the default context of the domain
10574         * icall.c: Mapped internal method InternalGetDefaultContext.
10575         * object.c: mono_object_get_virtual_method returns always a remoting
10576         wrapper if the object is a transparent proxy.
10577         mono_runtime_invoke_array: when creating an object by calling the
10578         constructor, if the created object is a proxy, then the constructor should
10579         be called using the a remoting wrapper.
10580
10581 2003-03-03  Dick Porter  <dick@ximian.com>
10582
10583         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
10584         variable so it compiles on solaris.  Problem spotted by
10585         Christopher Taylor <ct@cs.clemson.edu>
10586
10587 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10588
10589         * appdomain.c:
10590         (get_info_from_assembly_name): don't leak value.
10591
10592         * icall.c:
10593         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
10594         result.
10595
10596 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
10597
10598         * assembly.c: export mono_image_load_references ().
10599         * class.c: handle function pointers. mono_class_from_name() now
10600         supports nested type names directly.
10601
10602 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
10603
10604         * reflection.h reflection.c: Encode already created dynamic methods 
10605         and fields correctly as a DEF instead of a REF.
10606
10607         * reflection.c: Get rid of the force_ref argument to 
10608         mono_image_typedef_or_ref since it was wrong in the first place.
10609
10610         * string-icalls.c: add error checking to string constructors according
10611         to the MSDN docs.
10612
10613         * reflection.c: Emit types in the order their TypeBuilders were 
10614         created. Previously, a new table index was assigned to each type before
10615         the tables were emitted. This was wrong because the signature blob
10616         might already refer to a type by its original table index.
10617
10618 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
10619
10620         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
10621         change.
10622         
10623 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10624
10625         * Makefile.am: make assemblies dir have \ instead of / on windows.
10626
10627 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
10628
10629         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
10630         iterate over the NESTEDCLASS table using a linear search since the
10631         table is not guaranteed to be sorted by the secondary key.
10632
10633         * class.c (mono_class_create_from_typedef): fixed up call to
10634         mono_metadata_nesting_typedef.
10635         
10636 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
10637
10638         * marshal.c (mono_string_to_byvalstr): clear the memory as
10639         suggested by Jerome Laban <jlaban@wanadoo.fr>
10640
10641 2003-02-26  Dick Porter  <dick@ximian.com>
10642
10643         * process.c: Cope with padding in .rsrc blocks
10644
10645 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10646
10647         * metadata.h: reverted the filter_len change, it breaks reflection
10648         
10649 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10650
10651         * metadata.h: added a new field to store the filter_len
10652         
10653
10654 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
10655
10656         * reflection.c: handle custom attributes for types and members
10657         created with Reflection.Emit (bug#38422).
10658
10659 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
10660
10661         * reflection.c: define RTSpecialName automatically for constructors for
10662         compatibility with MS.NET.
10663
10664         * reflection.c (mono_reflection_create_runtime_class): initialize
10665         nested_in field of dynamically created classes.
10666
10667 2003-02-22  Martin Baulig  <martin@ximian.com>
10668
10669         * debug-mono-symfile.h: Incremented version number.
10670
10671 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10672
10673         * object.h icall.c process.c: fix warnings.
10674
10675 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10676
10677         * appdomain.h appdomain.c:
10678         (mono_domain_try_type_resolve): split the 
10679         name_or_tb argument into a name and a tb argument.
10680         (mono_domain_has_type_resolve): new function to check whenever the
10681         application has registered a TypeResolve event handler.
10682         
10683         * icall.c reflection.h reflection.c: move the type resolve logic into
10684         mono_reflection_get_type () so it will be invoked when 
10685         Assembly::GetType () is called.
10686
10687         * reflection.c:
10688         (mono_reflection_get_type): renamed to get_type_internal.
10689         (mono_reflection_get_type): fixed type name generation so it works 
10690         for nested types too.
10691         (mono_reflection_get_type): call has_type_resolve () to avoid the 
10692         costly type name generation if there is no resolve event handler.
10693
10694 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10695
10696         * class.c, image.c: load exported types from file references.
10697
10698 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
10699
10700         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
10701           used to cache the managed methods used to create proxies and make 
10702           remote invocation of methods.
10703         * class.h: Added in MonoVTable a flag to indicate that a class needs 
10704           to be remotely created.
10705         * object.c: Modified the method mono_class_vtable(). It now initializes 
10706           the remote flag of the vtable. Modified mono_object_new_specific(), 
10707           so now it checks the remote flag.
10708         * icall.c: Added a couple of internal methods, one for enabling instance 
10709           creation interception for a type, and one for creating objects bypassing
10710           the remote check.
10711
10712 2003-02-18  Martin Baulig  <martin@ximian.com>
10713
10714         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
10715         New interncall to get a method's metadata token.
10716
10717         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
10718         New interncall for the debugger.
10719
10720 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
10721
10722         * class.c (mono_class_setup_vtable): allocate supertype array
10723
10724 2003-02-18  Martin Baulig  <martin@ximian.com>
10725
10726         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
10727
10728 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10729
10730         * reflection.c:
10731         (assembly_name_to_aname): jump over unknown properties (i've found
10732         something like: 'type, assembly, version=xxx, custom=null, public...',
10733         so now will ignore custom=null and still get the rest of the values).
10734
10735 2003-02-17  Dick Porter  <dick@ximian.com>
10736
10737         * threads.c: Have Thread.Start() wait for a semaphore to signal
10738         that the thread has set up all its local data.  This fixes bug
10739         34323, where Abort() raced the new thread's TLS data.
10740
10741         Also removes the handle_store() call from start_wrapper, because
10742         threads are now always created suspended and there is no longer a
10743         race between the parent and child threads to store the info.
10744
10745 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
10746
10747         * image.c: explain the #- heap issue in a message, hopefully
10748         avoiding FAQs on mono-list.
10749
10750 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10751
10752         * icall.c:
10753         (GetEntryAssembly): if the domain has not invoked
10754         AppDomain.ExecuteAssembly yet, return the assembly of the default
10755         AppDomain.
10756
10757 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
10758
10759         * class.c (mono_ldtoken): make it work in dynamic assemblies.
10760
10761 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
10762
10763         * metadata.c, reflection.c: simple speedup to type hash
10764         and equals code.
10765
10766 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
10767
10768         * image.c, image.h, class.c, assembly.c: move module loading
10769         to MonoImage. When loading metadata, consider alignemnet from
10770         the start of metadata, not from the metadata address in memory.
10771
10772 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
10773
10774         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
10775         AssemblyBuilder objects. Factored out custom attribute creation into
10776         a separate function.
10777         (create_custom_attr): new function to create custom attributes.
10778
10779 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
10780
10781         * Makefile.am: Got tired of typing the full pathname to pedump.
10782         Until there is another option, am installing this.
10783
10784 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
10785
10786         * class.c (class_compute_field_layout): always set field->parent 
10787         (mono_ldtoken): use mono_defaults.fieldhandle_class;
10788
10789 2003-02-11  Dick Porter  <dick@ximian.com>
10790
10791         * threads-types.h:
10792         * monitor.c: Rewrote Monitor, making lock much faster and
10793         Pulse/Wait work as specified.  Also uses much fewer handles, and only
10794         creates them as needed.
10795
10796         * exception.c: Added SynchronizationLockException
10797
10798         * threads.c: Deleted old Monitor implementation.  The new one is
10799         in a new file.
10800
10801 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
10802
10803         * class.c: handled TypedReference type code. Set the correct size for
10804         class data. Setup interface_offsets for interface classes, too.
10805
10806 2003-02-09  Martin Baulig  <martin@ximian.com>
10807
10808         * debug-mono-symfile.h: Reflect latest symbol writer changes.
10809
10810 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
10811
10812         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
10813         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
10814         * object.c: fixed mono_object_get_virtual_method () for interfaces.
10815         * verify.c: check for code that runs after the end of the method.
10816
10817 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10818
10819         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
10820         "System.Math::Round2".
10821         * sysmath.h: Added Floor, Round and Round2 definitions.
10822         * sysmath.c: Modified certain functions that were not 100% compliant
10823         with MS.NET (math precision) and added the implementation of Floor,
10824         Round and Round2.
10825
10826 2003-02-07  Martin Baulig  <martin@ximian.com>
10827
10828         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
10829
10830 2003-02-07  Martin Baulig  <martin@ximian.com>
10831
10832         * debug-mono-symfile.c: Reflected latest symwriter changes.
10833         (mono_debug_create_mono_symbol_file): Removed.
10834         (mono_debug_open_mono_symbol_file): Take an argument which
10835         specifies whether to create a dynamic symbol file.
10836
10837 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
10838
10839         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
10840
10841 2003-02-05  Martin Baulig  <martin@ximian.com>
10842
10843         * reflection.c (mono_image_build_metadata): Make this public,
10844         protect it against being called multiple times, don't create
10845         resources and don't build the compressed metadata here.
10846         (mono_image_create_pefile): Do this here.
10847
10848         * icall.c
10849         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
10850
10851 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10852
10853         * socket-io.c: fixed bug #36322.
10854
10855 2003-02-06  Piers Haken <piersh@friskit.com>
10856
10857         * appdomain.[ch]:
10858         * class.h:
10859         * debug-mono-symfile.c:
10860         * icall.c:
10861         * loader.c:
10862         * mono-config.c:
10863         * monosn.c:
10864         * reflection.c:
10865         * socket-io.c: warning cleanups
10866
10867 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
10868
10869         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
10870         function. works like remoting invoke, but does a check for the Proxy first.
10871
10872 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
10873
10874         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
10875
10876 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
10877
10878         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
10879         array of pointers.
10880         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
10881         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
10882
10883         * object.c (mono_store_remote_field_new): used by the new jit
10884         instead of mono_store_remote_field
10885         (mono_load_remote_field_new): used by the new jit
10886         instead of mono_load_remote_field
10887
10888 2003-02-05  Patrik Torstensson
10889
10890         * appdomain.c: changed unload to take the domain id instead
10891         of domain
10892         
10893         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
10894
10895
10896 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10897
10898         * appdomain.c: don't look for assemblies in ApplicationBase if
10899         PrivateBinPathProbe is set.
10900
10901 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10902
10903         * object.c: make the first argument in main_args contain the absolute
10904         path to the assembly. Fixes bug #37511.
10905
10906 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10907
10908         * icall.c: get correct UTC offset for countries not using daylight
10909         time saving. Fixes bug #30030.
10910
10911 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10912
10913         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
10914         and 1 are the family).
10915
10916 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
10917
10918         * icall.c (ves_icall_InternalExecute): removed wrong assertion
10919
10920         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
10921
10922 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
10923
10924         * reflection.c: added support for SignatureHelper tokens, which is
10925         needed by the Calli opcode.
10926
10927         * reflection.h: track changes to SignatureHelper class.
10928
10929         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
10930
10931 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10932
10933         * appdomain.c: fixed loading assemblies from PrivateBinPath.
10934
10935 2003-02-03  Patrik Torstensson
10936         * appdomain.[c|h], domain.c : 
10937          - Added support for getting a domain via domain id
10938          - Support for setting and getting domain from System.AppDomain 
10939            (used in cross appdomain channel)
10940          - Added support for get/set for a MonoAppContext on a thread 
10941            (Context class in System.Runtime.Remoting.Contexts),
10942          - Removed hack in Get/SetData and ExecuteAssembly.
10943         
10944         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
10945         the managed world to get control when a proxy is created.
10946
10947         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
10948         
10949 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
10950
10951         * icall.c
10952         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10953         Populate the codebase field as well.
10954
10955 2003-02-02  Martin Baulig  <martin@ximian.com>
10956
10957         * debug-mono-symfile.c
10958         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
10959         (mono_debug_symfile_add_method): Allow interncalls.
10960
10961 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10962
10963         * icall.c: throw parse exception if strtod fails or the string is empty.
10964
10965 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
10966
10967         * marshal.c: handle object type separately from defined
10968         class types.
10969
10970 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
10971
10972         * marshal.c: handle NATIVE_LPSTR for strings when it's
10973         explicitly specified.
10974
10975 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
10976
10977         * reflection.c, reflection.h, icall.c: setup the reflection
10978         handle cache for ModuleBuilders and AssemblyBuilders.
10979
10980 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
10981
10982         * reflection.c (reflection_methodbuilder_to_mono_method): set
10983         pinvoke flag
10984
10985 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10986
10987         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
10988
10989 2003-01-29  Dick Porter  <dick@ximian.com>
10990
10991         * threads.c: No need for the fake_thread kludge now that Thread
10992         doesn't run a class constructor
10993         
10994 2003-01-29  Dick Porter  <dick@ximian.com>
10995
10996         * threads.c: Use g_direct_hash instead of the rather bogus
10997         g_int_hash
10998
10999 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
11000
11001         * marshal.c (mono_marshal_get_native_wrapper): add check for null
11002         (fix pinvoke12.exe)
11003         (mono_marshal_get_struct_to_ptr): generate valid IL code
11004         (mono_marshal_get_ptr_to_struct): generate valid IL code
11005         (*): correctly set sig->pinvoke, we need to memdup the signature
11006         to do that
11007
11008 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11009
11010         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
11011         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
11012
11013 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11014
11015         * profiler.c: provide more callers information.
11016
11017 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
11018
11019         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
11020
11021         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
11022
11023         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
11024
11025 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11026
11027         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
11028         exception instead of going into an infinite loop on dates which it 
11029         can't yet handle.
11030
11031         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
11032         out-of-range exception if needed.
11033
11034         * class.c (mono_class_setup_vtable): allow a virtual method to provide
11035         an implementation for an interface method and to override an inherited
11036         method at the same time. 
11037         Imagine a scenario when a virtual method is used to override a
11038         virtual abstract method in a parent class, and this same method 
11039         provides an implementation for an method inherited from an interface. 
11040         In this case, the interface resolution code will set im->slot, which 
11041         means that the virtual method override pass will skip this method 
11042         which means a pointer to the abstract method inherited from the parent
11043         will remain in the vtable of this non-abstract class.
11044
11045         * class.c: (mono_class_setup_vtable): continue search for a real 
11046         method if only an abstract method is found.     
11047
11048 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11049
11050         * reflection.c: add size to encoding for ByValStr and ByValArray
11051         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
11052
11053 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11054
11055         * class.c (mono_class_setup_vtable): pass the override info as an
11056         argument.
11057
11058         * class.c (mono_class_setup_vtable): set the slot of overriding methods
11059         correctly.
11060         
11061         * reflection.c (ensure_runtime_vtable); add support for method 
11062         overrides.
11063         
11064 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11065
11066         * reflection.c (resolution_scope_from_image): Hack to work to work with
11067         dynamic assemblies.
11068
11069         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
11070         added a 'force_ref' argument to force this function to allways return 
11071         a TypeRef. This is needed by mono_image_get_memberref_token ().
11072         
11073 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11074
11075         * reflection.c (mono_image_get_type_info): interfaces really don't have
11076         a parent.
11077
11078         * reflection.c (mono_image_basic_init): fill out missing fields of
11079         image structure.
11080
11081         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
11082         dynamic assemblies. This is required so dynamic assemblies show up in
11083         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
11084         Type::GetType() etc. This is consistent with MS behaviour.
11085
11086         * image.c image.h reflection.c: add newly created classes to the name 
11087         cache so mono_class_get () will find them.      
11088
11089 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11090
11091         First part of changes to get IKVM.NET running under mono.
11092         
11093         * appdomain.h, appdomain.c: added new function 
11094         mono_domain_try_type_resolve() which will emit TypeResolve events. 
11095         This function will call AppDomain::DoTypeResolve to do the actual work.
11096
11097         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
11098         moved existing code dealing with dynamic tokens to a new function 
11099         called mono_reflection_lookup_dynamic_token (). This function will 
11100         raise TypeResolve events when appropriate. Since reflection.c is not 
11101         part of libmetadata, a new hook function called 
11102         mono_lookup_dynamic_token() is added to class.c which will call this.
11103
11104         * assembly.h assembly.c: make the invoke_load_hook function public,
11105         so it can be called for dynamic assemblies.
11106
11107         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
11108
11109         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
11110         type isn't found.
11111
11112         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
11113         MonoGHashTable, since it contains pointers to objects which the GC 
11114         needs to track.
11115
11116         * assembly.c (search_loaded): remove unused variable.
11117         
11118 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
11119
11120         * object.c: fixed issue exposed by gcc-generated IL programs
11121         that use RVA data for pointers.
11122
11123 2003-01-25  Martin Baulig  <martin@ximian.com>
11124
11125         * threads.c (start_wrapper): Moved the initialization of
11126         `start_func' above the mono_new_thread_init() call to which we
11127         pass it as argument.
11128
11129 2003-01-24  Martin Baulig  <martin@ximian.com>
11130
11131         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11132         the MonoThread pointer.
11133
11134 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11135
11136         * icall.c: Rename `PowImpl' to Pow.
11137
11138 2003-01-23  Dick Porter  <dick@ximian.com>
11139
11140         * threads.c (start_wrapper): Create a Thread object if needed, so
11141         the Main() thread can do the class initialisation in a subthread
11142         that has been set up to allow managed code execution.
11143
11144         Pass the thread ID instead of the MonoThread pointer to the thread
11145         start and attach callbacks.  This change is required, because the
11146         jit thread start callback must be called _before_ the Thread
11147         object can be created.
11148         
11149         (mono_thread_init): Removed much object creation code that is no
11150         longer needed.  No managed code is called from here now.
11151
11152         * object.c (mono_runtime_exec_managed_code): Create a subthread
11153         for Main, and call back to the runtime to use it.
11154         Set the exit code when Main exits.
11155
11156         * gc.c: Make sure domain finalisation happens in a subthread.
11157         Re-enable threaded GC, fixing bug 31333 (again).
11158
11159         * environment.c: System.Environment internall calls (so far just
11160         ExitCode is here, the others are still in icall.c)
11161
11162         * appdomain.c (mono_runtime_cleanup): All threads running managed
11163         code should have finished before mono_runtime_cleanup() is
11164         reached, so no need to clean up threads.
11165
11166 2003-01-22  Martin Baulig  <martin@ximian.com>
11167
11168         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
11169         `gpointer func' arguments.      
11170         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
11171         but added `MonoThread *thread' argument.
11172         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
11173
11174         * threads.c (mono_new_thread_init): Added `gpointer func' argument
11175         and pass it to the mono_thread_start_cb callback.
11176         (mono_install_thread_callbacks): New public function to install a
11177         set of callbacks which are set by the debugger.
11178         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
11179
11180 2003-01-22  Martin Baulig  <martin@ximian.com>
11181
11182         * Makefile.am: Install debug-mono-symfile.h.
11183
11184 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
11185
11186         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
11187
11188 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
11189
11190         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
11191         * class.c (mono_ptr_class_get): correctly set access levels of pointers
11192         (mono_array_class_get): correctly set access levels of arrays
11193
11194 2003-01-20      Patrik Torstensson
11195         * image.h (MonoAssemblyName): changed major, minor, build, revision
11196         from signed to unsigned.
11197
11198 2003-01-20  sean kasun <skasun@azstarnet.com>
11199
11200         * reflection.c (load_cattr_value): Now this handles
11201         MONO_TYPE_SZARRAY.  Fixes bug #35629
11202
11203 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
11204
11205         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
11206         integer value
11207
11208 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11209
11210         * decimal.c: fixed bug #26056.
11211
11212 2003-01-17  Martin Baulig  <martin@ximian.com>
11213
11214         * gc.c: Raise an ExecutionEngineException instead of using g_error().
11215
11216 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11217
11218         * exception.[ch]:
11219         (mono_get_exception_type_initialization): new function.
11220
11221         * object.c: throw a TypeInitializationException when an exception is
11222         thrown invoking the class constructor.
11223
11224 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11225
11226         * reflection.c: fixed attribute reading.
11227
11228 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11229
11230         * icall.c:
11231         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
11232         provided, look for the type in the calling assembly and then in
11233         mscorlib; if the assembly name is provided, only try that one.
11234
11235 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
11236
11237         * object.c: register the vtable before there is a chance it's
11238         queried again recursively.
11239
11240 2003-01-13  Duncan Mak  <duncan@ximian.com>
11241
11242         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
11243         gc-internal.h. 
11244         
11245 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
11246
11247         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
11248
11249 2003-01-11  Martin Baulig  <martin@ximian.com>
11250
11251         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
11252         this to 20 for the release.
11253
11254 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
11255
11256         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
11257
11258         * loader.c (mono_method_get_marshal_info): bug fix
11259
11260         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
11261         structures with explicit layout
11262
11263 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11264
11265         * profiler.c: made the output more readable (and sorted). 
11266         Added caller information for the allocation profiler.
11267
11268 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
11269
11270         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
11271
11272 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11273
11274         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
11275         to get value types.
11276         
11277 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
11278
11279         * object.c, profiler.h, profiler.c, profiler-private.h:
11280         Added object allocation profiler.
11281
11282 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
11283
11284         * reflection.h, reflection.c: handle global methods.
11285         Compress blob entries.
11286
11287 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
11288
11289         * marshal.c: fix compilation.
11290
11291 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
11292
11293         * loader.c (mono_method_get_marshal_info): impl.
11294
11295         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
11296
11297 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11298
11299         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
11300         for reference types.
11301
11302 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
11303
11304         * loader.c: fixed off by one error in loaded parameter names.
11305
11306 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
11307
11308         * marshal.c (mono_marshal_get_icall_wrapper): like
11309         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
11310         instead of a MonoMethod.
11311
11312 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11313
11314         * decimal.c: fixed bug #36537.
11315
11316 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
11317
11318         * marshal.c: throw a missing method exception if a
11319         P/Invoke method is not found.
11320
11321 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11322
11323         * icall.c: allow a null this for constructors.
11324
11325 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11326
11327         * icall.c: raise the proper exceptions if the arguments to the
11328         internal Invoke are incorrect.
11329
11330 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
11331
11332         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
11333
11334 2003-01-03  Martin Baulig  <martin@ximian.com>
11335
11336         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11337
11338 2002-12-31  Martin Baulig  <martin@ximian.com>
11339
11340         * debug-mono-symfile.c: Completely rewrote the type section.
11341         Instead of using individual malloc()ed fields, we use one big
11342         continuous memory area and offsets into this area.
11343         See the comments in the source code for details.
11344
11345 2002-12-30  Martin Baulig  <martin@ximian.com>
11346
11347         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
11348
11349 2002-12-30  Martin Baulig  <martin@ximian.com>
11350
11351         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
11352         line number table in this data blob instead of using an external
11353         pointer.
11354
11355 2002-12-28  Martin Baulig  <martin@ximian.com>
11356
11357         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11358
11359 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
11360
11361         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
11362         as a boxed return type.
11363
11364 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
11365
11366         * appdomain.c
11367         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
11368         g_build_filename to properly get separators on the filename created.
11369
11370         * object.h: Small change, introduce MonoMarshalByRefObject to
11371         track the layout of that structure in the C# universe as we make
11372         changes there.
11373
11374 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
11375
11376         * object.c: removed assert to allow static fields on interfaces.
11377         * loader.c: a TypeSpec may be used for any type, not just arrays.
11378
11379 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11380
11381         * class.c, class.h: added mono_class_array_element_size ().
11382         Ignore static methods in interfaces.
11383
11384 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11385
11386         * threads.c: fixed the build under cygwin.
11387
11388 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11389
11390         * reflection.c: handle nullref constants. Allocate keys for
11391         reflection handles with the GC.
11392
11393 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11394
11395         * threads.c, threads.h: added mono_thread_get_abort_signal()
11396         to get a suitable signal for thread abort.
11397
11398 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11399
11400         * metadata.c: fix handling of ExportedType table.
11401
11402 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11403
11404         * icall.c: added WriteWindowsDebugString internal call.
11405
11406 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11407
11408         * reflection.h: added fields to match C# implementation.
11409
11410 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11411
11412         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
11413
11414 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
11415
11416         * gc.h, gc-internal.h: Rename header for GC internal calls to
11417         gc-internal.h from gc.h as to not clash with Boehm GC having its
11418         header installed as <gc.h> in outside include paths.
11419         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
11420         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
11421
11422 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11423
11424         * icall.c: assign minor, build and revision in FillName.
11425
11426 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
11427
11428         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
11429         Added support for running code generated by Reflection.Emit.
11430
11431 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11432
11433         * appdomain.c: check for NULL argument in LoadFrom.
11434
11435 2002-12-10  Dick Porter  <dick@ximian.com>
11436
11437         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
11438
11439 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11440
11441         * appdomain.c: fix buglet when building exe file name.  Handle full
11442         assembly name (needed after latest changes to AssemblyName).
11443         * image.c:
11444         (mono_image_close): free some hashtables.
11445
11446 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
11447
11448         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
11449         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
11450         on some systems (redhat 7.3) 
11451
11452 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
11453
11454         * threads.c: delete the critical section of a sync block,
11455         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
11456
11457 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
11458
11459         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
11460
11461 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11462
11463         * appdomain.[ch]: handle the assembly preload event to try loading the
11464         assemblies using the paths we have in the current domain.
11465
11466         * assembly.[ch]: created an assembly preload hook that is called to try
11467         loading the assembly by other means that the ones provided here.
11468
11469         * domain.c: initialize the domain search path.
11470
11471         From now on, assemblies (TODO: except corlib and System) are loaded
11472         according to these rules when using mono_assembly_load ():
11473
11474                 1. It tries to load the assembly from the ApplicationBase
11475                 of the current domain appending .dll and .exe (TODO: have to
11476                 try loading from name/name.dll and name/name.exe).
11477
11478                 2. It tries the search path specified in PrivateBinPath for the
11479                 current domain (if any).
11480
11481                 3. Previous behavior.
11482
11483 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
11484
11485         * icall.c: implemented GetInterfaceMap() related icall.
11486         * domain.c, loader.h: load MethodInfo in mono_defaults.
11487
11488 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11489
11490         * gc.c: disable the finalizer thread for now, untill all the issues
11491         with it are resolved.
11492
11493 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11494
11495         * string-icalls.c: handle embedded nulls in string ctor when the
11496         length is specified.
11497
11498 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11499
11500         * class.c: look for explicit interface implementation in parent
11501         classes, too.
11502
11503 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
11504
11505         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
11506
11507 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11508
11509         * gc.c: protect handles with a critical section.
11510
11511 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11512
11513         * icall.c:
11514         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
11515         parameters. If no assembly specified, try getting the type from all
11516         the assemblies in the current domain, else, load the assembly and get
11517         the type from it.
11518
11519 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11520
11521         * marshal.c: applied patch from Aleksey Demakov that fixes
11522         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
11523
11524 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11525
11526         * icall.c: fixed get_location.
11527
11528 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
11529
11530         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
11531         declarations to make it work with older gcc. 
11532
11533         * loader.c (mono_get_method): set signature->pinvoke for native calls
11534
11535 2002-11-20  Dick Porter  <dick@ximian.com>
11536
11537         * threads.c (mono_thread_init): Set the main thread's handle
11538
11539 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11540
11541         * gc.c: allow compilation without GC support. Changed to match the
11542         mono coding style.
11543
11544 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11545
11546         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
11547
11548 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
11549
11550         * reflection.c: set a public key token on the core assemblies.
11551
11552 2002-11-18  Dick Porter  <dick@ximian.com>
11553
11554         * threads.c: Split out some thread initialisation so that other
11555         files can set the start callback function.
11556
11557         * gc.c: Run finalisers in a separate thread, to avoid stack
11558         overflow.  Fixes bug 31333.
11559
11560         * appdomain.c: Set up GC finalisation thread.
11561
11562         * reflection.c: 
11563         * object.c: 
11564         * domain.c: Use gc.h macros for GC_malloc
11565         
11566 2002-11-15  Dick Porter  <dick@ximian.com>
11567
11568         * threadpool.c: 
11569         * threads.c:
11570         * appdomain.c: Removed mono_runtime_init_with_attach(),
11571         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
11572         merging the extra parameter with the existing function.  Removed
11573         unneeded code in mono_thread_attach().
11574
11575 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
11576
11577         * image.c (mono_image_loaded_by_guid): a method to get loaded
11578         images by guid. 
11579         (load_metadata_ptrs): we store the guid as string.
11580
11581 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
11582
11583         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
11584
11585         * metadata.c (mono_guid_to_string): imported method form Zoltan
11586         Varga (slightly modified)
11587
11588         * assembly.c (mono_assembly_open): load precompiled code
11589
11590         * loader.h (MonoMethod): we store the method token for use in the
11591         aot compiler. 
11592
11593 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11594
11595         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
11596         the hook function called when an assembly is loaded.
11597         
11598         * domain.c: Modified file.
11599         (mono_domain_assembly_load): removed hash table insertion of assemblies.
11600
11601         Fixes bug #33196.
11602
11603 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
11604
11605         * reflection.c: Map PEFileKind to the value expected by the WinNT
11606         image loader. 
11607
11608 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11609
11610         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
11611         Read until the buffer is filled completely.
11612
11613 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11614
11615         * icall.c: implemented MonoType.InternalGetEvent ().
11616
11617 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11618
11619         * appdomain.c: implemented InitAppDomainSetup. Delayed
11620         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
11621         the entry_assembly.
11622
11623         * assembly.c: base_dir is now an absolute path ending with
11624         G_DIR_SEPARATOR.
11625
11626         * icall.c: modified get_location according to the above changes.
11627
11628         * object.c: init AppDomain.SetupInformation for the default domain after
11629         we have the entry assembly.
11630
11631         * domain.c: when unloading a domain, setup = NULL.
11632
11633 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
11634
11635         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
11636
11637 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
11638
11639         * object.h, object.c: introduced mono_object_get_virtual_method ()
11640         to lookup the method invoked on an object when a callvirt is done on
11641         a method.
11642         * icall.c: make MethodInfo::Invoke() always do a virtual call.
11643
11644 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11645
11646         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
11647         current domain when loaded an assembly and failed to load it.
11648
11649         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
11650
11651 2002-10-31  Dick Porter  <dick@ximian.com>
11652
11653         * icall.c: 
11654         * file-io.h: 
11655         * file-io.c: Return the error status in a parameter, as the
11656         GetLastError() value has long since been blown away if we try and
11657         look it up in a subsequent internal call invocation.  Delete the
11658         GetLastError() internal call, because it's useless.
11659
11660 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
11661
11662         * class.[ch]: added cast_class to fix bug 29517
11663
11664 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
11665
11666         * marshal.c: create valid IL code in the filter clause:
11667         the new JIT is less forgiving:-)
11668
11669 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11670
11671         * icall.c: removed get_property internal call.
11672
11673 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
11674
11675         * appdomain.h domain.c: Added an ID to appdomains.
11676         
11677         * threads.c threads.h icall.c: Implement icall
11678         Thread:GetDomainID(), and remove unused icall 
11679         CurrentThreadDomain_internal.
11680
11681 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11682
11683         * icall.c: Don't recurse through the base types in GetConstructor.
11684         Fixes bug #32063. 
11685
11686 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11687
11688         * mempool.h, mempool.c: added mono_mempool_empty() and
11689         mono_mempool_stats().
11690
11691 2002-10-23  Dick Porter  <dick@ximian.com>
11692
11693         * file-io.c: 
11694         * file-io.h: 
11695         * icall.c: Added MonoIO.GetFileType internal call
11696
11697 2002-10-17  Dick Porter  <dick@ximian.com>
11698
11699         * appdomain.c (mono_runtime_cleanup): Don't signal the async
11700         delegate semaphore before waiting for all threads to finish,
11701         because new threads can also call async delegates.  Fixes bug
11702         32004.
11703
11704         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
11705         of 3 seconds, in case another async job is queued.  (This part is
11706         needed because the bug fix reintroduced the 3s exit lag.)  This
11707         makes the mono_runtime_shutdown flag superfluous.
11708
11709 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11710
11711         * reflection.c: include ehader size in method section headers.
11712         Really check for suplicated modules entries.
11713
11714 2002-10-17  Martin Baulig  <martin@gnome.org>
11715
11716         * debug-mono-symfile.c: Added back support for locals.
11717
11718 2002-10-14  Martin Baulig  <martin@gnome.org>
11719
11720         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
11721         MONO_TYPE_VOID.
11722
11723 2002-10-14  Martin Baulig  <martin@gnome.org>
11724
11725         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
11726         mono_class_get() instead of looking in the class cache. 
11727
11728 2002-10-13  Martin Baulig  <martin@gnome.org>
11729
11730         * debug-mono-symfile.c: Set version number to 28, include the
11731         signature in method names.
11732
11733 2002-10-13  Martin Baulig  <martin@gnome.org>
11734
11735         * debug-mono-symfile.h: Set version number to 27.
11736
11737 2002-10-11  Martin Baulig  <martin@gnome.org>
11738
11739         * gc.c: Don't register/unregister NULL pointers as disappearing links.
11740
11741 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11742
11743         * metadata.c, metadata.h: added helper function to allocate signatures.
11744
11745 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11746
11747         * icall.c: added internal call to get the location of machine.config.
11748
11749 2002-10-08  Martin Baulig  <martin@gnome.org>
11750
11751         * debug-mono-symfile.c: Ignore classes with a pending init for the
11752         moment.
11753
11754 2002-10-03  Dick Porter  <dick@ximian.com>
11755
11756         * threads.c: Freebsd pthread_t is a pointer
11757
11758 2002-10-03  Dick Porter  <dick@ximian.com>
11759
11760         * socket-io.c: Implemented GetHostName_internal
11761
11762 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11763
11764         * mono-config.c:
11765         (mono_config_parse_file): don't leak the text.
11766
11767 2002-10-02  Martin Baulig  <martin@gnome.org>
11768
11769         * debug-mono-symfile.c: Added support for methods.
11770
11771 2002-10-01  Martin Baulig  <martin@gnome.org>
11772
11773         * debug-mono-symfile.c: Don't emit methods and line numbers for
11774         the dynamic symbol file, just write the type table.  We can easily
11775         have an external helper program which creates a symbol file for an
11776         IL file.        
11777
11778 2002-10-01  Dick Porter  <dick@ximian.com>
11779
11780         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
11781         Only add the handle to the cleanup array when we're about to
11782         launch the thread.  Bug 31425 deadlocked when the test was run on
11783         mono under w32.
11784
11785 2002-10-01  Martin Baulig  <martin@gnome.org>
11786
11787         * debug-mono-symfile.c: Added support for properties.
11788
11789 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11790
11791         * reflection.c: unaligned store fix from Mark Crichton
11792         <crichton@gimp.org>.
11793
11794 2002-09-27  Martin Baulig  <martin@gnome.org>
11795
11796         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
11797         New interncall.
11798
11799 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11800
11801         * assembly.h, assembly.c: use a sane API to hook into the assembly
11802         loading process instead of a useless special-purpouse hack
11803         (ngen needs a hook, too, for example).
11804
11805 2002-09-27  Dick Porter  <dick@ximian.com>
11806
11807         * threads.c (mono_thread_init): Call GetCurrentProcess() so
11808         io-layer can set up some process handle info.  Not needed on w32,
11809         but doesn't hurt either.
11810
11811         * process.c: Pass the program name in the second parameter to
11812         CreateProcess, so the path is searched.  Include the working
11813         directory. Implemented process name, process enumeration, and some
11814         process detail internal calls.
11815         
11816         * icall.c: Added internal calls for process lookup, and some
11817         process details
11818
11819 2002-09-26  Martin Baulig  <martin@gnome.org>
11820
11821         * assembly.c (mono_install_open_assembly_hook): New global
11822         function to install a function to be invoked each time a new
11823         assembly is loaded.
11824         (mono_assembly_open): Run this callback function if set.
11825
11826         * debug-mono-symfile.c: Put back line numbers for the dynamic
11827         symbol file and also record the .il file as source file.  This
11828         allows us to install the temporary symbol file as `file.dbg' just
11829         like a compiler-generated one.
11830
11831 2002-09-26  Nick Zigarovich <nick@chemlab.org>
11832
11833         * Corrected typo in gc.c (BOHEM vs BOEHM).
11834
11835 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11836
11837         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
11838         GetProperties. Also avoid calling g_slist_length in GetProperties and
11839         GetMethods.
11840
11841 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11842
11843         * reflection.c: avoid unaligned stores (bug spotted by
11844         Mark Crichton  <crichton@gimp.org>).
11845
11846 2002-09-25  Martin Baulig  <martin@gnome.org>
11847
11848         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
11849         instead of guint64 for addresses and added prologue/epilogue info.
11850
11851 2002-09-25  Martin Baulig  <martin@gnome.org>
11852
11853         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
11854         store line number info.  For the dynamic symbol file, we only need
11855         to provide the JIT generated dynamic line number info for the dynamic
11856         symbol file.
11857
11858 2002-09-25  Martin Baulig  <martin@gnome.org>
11859
11860         * debug-mono-symfile.h: Incremented version number.
11861
11862 2002-09-24  Martin Baulig  <martin@gnome.org>
11863
11864         * class.c (mono_debugger_class_init_func): New global function
11865         pointer variable.
11866         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
11867         call it.
11868
11869         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
11870         function.  This is called via the mono_debugger_class_init_func
11871         hook to add all types to the dynamic type table.
11872         (ves_icall_MonoDebugger_GetType): New interncall to get a class
11873         from its metadata token.
11874
11875         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
11876         New interncall for the debugger.
11877
11878 2002-09-24  Nick Drochak <ndrochak@gol.com>
11879
11880         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
11881         before using it in case it is null.
11882         
11883 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11884
11885         * metadata.c: allow custom modifiers in local var signatures
11886         (bug spotted by Zoltan Varga).
11887
11888 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11889
11890         * class.c: deal with the <Module> class that may have a NULL vtable.
11891         Eliminate warnings.
11892
11893 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11894
11895         * image.c, image.h: more strong name helpers.
11896         * monosn.c: more work: convert pem keys to cryptoapi format.
11897
11898 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11899
11900         * string-icalls.c: speedup IndexOf.
11901
11902 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11903
11904         * icall.c: updates from Zoltan.2.Varga@nokia.com.
11905
11906 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
11907
11908         * icall.c: cleanup: use mono_object_domain ().
11909
11910 2002-09-23  Martin Baulig  <martin@gnome.org>
11911
11912         * debug-mono-symfile.c: Improved type support.
11913
11914 2002-09-22  Martin Baulig  <martin@gnome.org>
11915
11916         * debug-mono-symfile.c: Added support for reference types and strings.
11917
11918 2002-09-22  Martin Baulig  <martin@gnome.org>
11919
11920         * debug-mono-symfile.c: Started to work on the type table.
11921
11922 2002-09-21  Martin Baulig  <martin@gnome.org>
11923
11924         * debug-mono-symfile.c: Largely reworked the symbol table format.
11925         The symbol table is now incrementally updated each time a new
11926         method is added.  We're now also using our own magic and version
11927         so that you don't need to recompile all your classes if the
11928         dynamic table changes.
11929         (mono_debug_update_mono_symbol_file): Removed.
11930         (mono_debug_symfile_add_method): New function to add a method.
11931
11932 2002-09-21  Martin Baulig  <martin@gnome.org>
11933
11934         * icall.c
11935         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
11936         New interncall.
11937
11938         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
11939         New interncall to get a method from its metadata token.
11940
11941 2002-09-21  Martin Baulig  <martin@gnome.org>
11942
11943         * debug-mono-symfile.c: Create type table.
11944
11945 2002-09-20  Martin Baulig  <martin@gnome.org>
11946
11947         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
11948
11949 2002-09-20  Martin Baulig  <martin@gnome.org>
11950
11951         * debug-mono-symfile.c: Provide information about params and locals.
11952
11953 2002-09-20  Martin Baulig  <martin@gnome.org>
11954
11955         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
11956         New interncall.
11957
11958         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
11959         interncall to get a method from its metadata token.
11960
11961 2002-09-20  Martin Baulig  <martin@gnome.org>
11962
11963         * debug-mono-symfile.c: Added a few checks for method->header
11964         being non-NULL.  This should never happen, but for the moment
11965         let's use a g_warning() rather than a g_assert().
11966
11967 2002-09-19  Mark Crichton  <crichton@gimp.org>
11968
11969         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
11970         even if support for it isn't present.  Added an #ifdef to fix this.
11971
11972         * socket-io.c: Added checks back for Solaris support.
11973
11974 2002-09-19  Martin Baulig  <martin@gnome.org>
11975
11976         * debug-mono-symfile.c (read_string, write_string): Reflect latest
11977         changes in the symbol file format.
11978
11979 2002-09-18  Martin Baulig  <martin@gnome.org>
11980
11981         * debug-mono-symfile.c: Set version number to 21.
11982
11983 2002-09-18  Dick Porter  <dick@ximian.com>
11984
11985         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
11986         on netbsd.  Fixes bug 30051.
11987
11988 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11989
11990         * reflection.c:
11991         (set_version_from_string): little fix.
11992
11993 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11994
11995         * monosn.c, Makefile.am: added strong name utility.
11996         * reflection.h, reflection.c: implemented delayed signing,
11997         locale, version and hash id assembly attributes.
11998
11999 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12000
12001         * loader.c, metadata.c: load param attributes in signatures.
12002
12003 2002-09-16  Martin Baulig  <martin@gnome.org>
12004
12005         * debug-mono-symfile.c: Added string table with all method names.
12006
12007 2002-09-14  Martin Baulig  <martin@gnome.org>
12008
12009         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
12010         fast method lookup.
12011
12012 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12013
12014         * reflection.c: record the public key token of referenced assemblies.
12015
12016 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12017
12018         * image.c, image.h: added functions to get the strong name and the
12019         public key of an assembly.
12020         * pedump.c: use them.
12021
12022 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
12023
12024         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
12025
12026 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
12027
12028         * marshal.c (mono_marshal_get_managed_wrapper): Added
12029         MONO_TYPE_BOOLEAN 
12030
12031 2002-09-11  Martin Baulig  <martin@gnome.org>
12032
12033         * gc.c: Call GC_unregister_disappearing_link() on all links when
12034         finalizing them, this is necessary to aviod a crash in boehm's
12035         finalize handler.
12036
12037 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12038
12039         * gc.c: handle GetTarget for finalized objects spotted and fixed by
12040         nick@chemlab.org.
12041
12042 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12043
12044         * icall.c: implemented MonoType::Module.
12045         * reflection.c, reflection.h: mono_module_get_object () from
12046         Tomi Pakarinen <tomi.pakarinen@welho.com>.
12047
12048 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
12049
12050         * icall.c: ignore overridden methods in GetMethods ().
12051         Fix for FieldInfo::SetValue().
12052         * object.c: handle float/double in runtime invoke.
12053
12054 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12055
12056         * object.c: allow a constructor to be called again on an object.
12057
12058 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12059
12060         * class.h, class.c: move field layout code to it's own function and
12061         export it. Get an interface id earlier. Move fields in MonoClass
12062         so they are more cache friendly and align the bitfields.
12063         * loader.c: temporary handle get_param_names() for a runtime method.
12064         * reflection.c, reflection.h: more code to handle runtime creation of
12065         types.
12066
12067 2002-09-09  Martin Baulig  <martin@gnome.org>
12068
12069         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
12070         signature with the pinvoke field being set for the actual call.
12071
12072 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12073
12074         * icall.c: removed some unused icalls. Start of map of glib charsets
12075         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
12076
12077 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12078
12079         * debug-helpers.c: break infinite loop (found and fixed by
12080         Holger Arnold <harnold@gmx.de>).
12081
12082 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12083
12084         * icall.c: target may be null in create_delegate.
12085
12086 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12087
12088         * marshal.c: handle a boolean return type.
12089
12090 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12091
12092         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
12093
12094 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12095
12096         * gc.c: fix weakreferences.
12097
12098 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12099
12100         * icall.c: added icall to get default codepage.
12101
12102 2002-09-03  Dick Porter  <dick@ximian.com>
12103
12104         * threads.h: 
12105         * threads.c: Use MonoThread instead of MonoObject where
12106         apropriate.
12107
12108         Store running thread objects in a hash table, so that we have all
12109         the info to hand when waiting for them to finish
12110         (means we don't need OpenThread() any more, so mingw builds should
12111         be fully functional again.)
12112
12113         * verify.c:
12114         * object.h: Added thread ID to MonoThread
12115
12116 2002-09-03  Martin Baulig  <martin@gnome.org>
12117
12118         * icall.c (System.Reflection.Assembly::get_location): New interncall.
12119
12120 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12121
12122         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12123
12124 2002-09-03  Martin Baulig  <martin@gnome.org>
12125
12126         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12127         argument to store the end address of the disassembled instruction.
12128
12129         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12130         here from debug-symfile.h.
12131         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12132         JIT into this struct.
12133         (MonoSymbolFile): Added `char *image_file' field.
12134         (MonoDebugGetMethodFunc): Removed.
12135         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12136         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12137         (mono_debug_find_method): New method.
12138
12139         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12140         create a full symbol file.
12141         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12142         and static symbol files.
12143         (mono_debug_find_method): The symbol file keeps an internal method hash,
12144         call this to get a MonoDebugMethodInfo from a MonoMethod.
12145
12146         * debug-symfile.[ch]: Removed.
12147
12148 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12149
12150         * image.c (do_mono_image_open): Remove linker version check.
12151
12152 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12153
12154         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12155         wrappers for instance methods.
12156         
12157 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12158
12159         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12160
12161 2002-08-28  Dick Porter  <dick@ximian.com>
12162
12163         * Makefile.am: Export HOST_CC for w32 builds
12164
12165 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12166
12167         * file-io.c process.c: MonoString are null terminated, no
12168         need for mono_string_to_utf16() anymore.
12169
12170 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12171
12172         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
12173
12174 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
12175
12176         * icall.c, reflection.h: speedup System.MonoType.
12177
12178 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12179
12180         * reflection.c: allow null as the value of a string argument in
12181         custom attributes constructors.
12182
12183 2002-08-27  Martin Baulig  <martin@gnome.org>
12184
12185         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
12186         `trampoline_address' field.
12187
12188 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
12189
12190         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
12191         check (fixes bug #29486) 
12192
12193 2002-08-27  Martin Baulig  <martin@gnome.org>
12194
12195         * debug-mono-symfile.c: Changed the file format in a way that allows us
12196         open it read-only and to use a specially malloced area for all the
12197         dynamic data.  We can now also generate a symbol file on-the-fly if we're
12198         debugging IL code and there is no MCS generated symbol file for it.
12199
12200 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12201
12202         * object.c: added a define for a good string and array
12203         creation speedup (not enabled by default because we need to deal with
12204         the synch stuff).
12205
12206 2002-08-26  Martin Baulig  <martin@gnome.org>
12207
12208         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
12209         function to create a dynamic symbol file.  This is used by the
12210         debugger to create a symbol file for IL code on-the-fly.
12211
12212 2002-08-26  Martin Baulig  <martin@gnome.org>
12213
12214         * loader.c (mono_lookup_pinvoke_call): Include the error message
12215         from g_module_error() in the error message.
12216
12217 2002-08-24  Martin Baulig  <martin@gnome.org>
12218
12219         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
12220         function to update the symbol file.  The symbol file is mmap()ed
12221         writable, but private.  This allows us to install the symbol file
12222         together with the assembly.
12223
12224 2002-08-24  Martin Baulig  <martin@gnome.org>
12225
12226         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
12227         but they can read the new symbol file format which mcs is now creating.
12228
12229         * debug-symfile.c (mono_debug_find_source_location): Moved to
12230         debug-mono-symfile.c; this is now operating on the new symbol file.
12231
12232 2002-08-23  Martin Baulig  <martin@gnome.org>
12233
12234         * debug-helpers.c (mono_method_desc_from_method): New function to get
12235         a MonoMethodDesc from a MonoMethod.
12236
12237 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12238
12239         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
12240         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
12241
12242 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12243
12244         * string-icalls.[ch]: make helper methods static.
12245
12246 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12247
12248         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
12249         types to it and to SetValueInternal.
12250
12251         * object.c: Moved handle_enum label to its proper place. This was the
12252         f... bug! ;-)
12253
12254         This time i compiled mcs and gtk-sharp and they both work.
12255
12256 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12257
12258         * icall.c: reverted partially my previous patch until 
12259         object.c:set_value handles enums correcly.
12260
12261 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12262
12263         * icall.c:
12264         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
12265         (ves_icall_System_Environment_get_MachineName): removed warning when
12266         compiling under cygwin.
12267
12268 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12269
12270         * object.c: fixed field_get_value() for reference types.
12271
12272 2002-08-22  Dick Porter  <dick@ximian.com>
12273
12274         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
12275         Don't free a buffer while it's still needed.  Patch from Jonathan
12276         Liger <Jonathan.liger@wanadoo.fr>
12277
12278 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
12279
12280         * icall.c (ves_icall_System_Environment_get_Platform): Add new
12281         internal call.
12282
12283 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
12284
12285         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
12286         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
12287
12288         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
12289         we call unmanaged code which throws exceptions.
12290
12291 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12292
12293         * appdomain.h: added per-domain entry_assembly.
12294         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
12295         arguments.
12296         * icall.c: Assembly::GetEntryAssembly icall.
12297         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
12298         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
12299
12300 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12301
12302         * appdomain.h, gc.c: added mono_domain_finalize ().
12303
12304 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12305
12306         * object.c:
12307         (mono_print_unhandled_exception): changed g_warning by g_printerr
12308         because g_log has a 1024 characters limit (yeah, i got a big stack
12309         trace). Don't print exception name, that should be in ToString 
12310         returned string.
12311
12312 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12313
12314         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
12315         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
12316
12317 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12318
12319         * object.c:
12320         (mono_print_unhandled_exception): after previous commit, i realized
12321         that MS calls ToString on the exception. I changed this function to
12322         do that. This way we get stack_trace for free.
12323
12324 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12325
12326         * object.c:
12327         (mono_print_unhandled_exception): invoke Message property instead of
12328         getting 'message' field from Exception. Don't allocate memory for
12329         'trace' and 'message' if not needed.
12330
12331 2002-08-18  Dick Porter  <dick@ximian.com>
12332
12333         * unicode.c: Fix asserts to match Encoder.cs checks
12334
12335 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12336
12337         * marshal.c: fix unaligned store issue and a few wrong
12338         opcode argument types.
12339
12340 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12341
12342         * icall.c: added GetUninitializedObjectInternal internal call.
12343
12344 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
12345
12346         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
12347         to the right domain.
12348
12349 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
12350
12351         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
12352
12353         * class.c (class_compute_field_layout): set blittable to false for Strings
12354
12355         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
12356
12357 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12358
12359         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
12360         first chunk of code to create types at runtime. Code to
12361         handle ReflectedType/DeclaringType. Make reflection handles
12362         domain specific.
12363
12364 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12365
12366         * class.c: set correct name in arrays.
12367
12368 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
12369
12370         * appdomain.c (mono_domain_transfer_object): make it work with
12371         valuetypes. bug fixes.
12372
12373 2002-08-12  Dick Porter  <dick@ximian.com>
12374
12375         * object.h: Rename some parameters to avoid c++ keywords (Patch
12376         from Joseph Wenninger <kde@jowenn.at>)
12377
12378 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
12379
12380         * icall.c: added icall to implement Assembly.GetFile*.
12381
12382 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12383
12384         * reflection.h, reflection.c: code to embed managed resources.
12385
12386 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12387
12388         * class.c: move all the type size stuff into
12389         class_compute_field_layout().
12390
12391 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12392
12393         * class.c: ensure enums have always the correct instance size.
12394         * unicode.c: remove wrong assert.
12395
12396 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12397
12398         * assembly.c: fix mem corruption issue.
12399         * image.h, image.c: added mono_image_get_resource () to access
12400         managed resources.
12401         * icall.c: implemented Assembly.EntryPoint property and some
12402         Managed Resources related internalcalls.
12403
12404
12405 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12406
12407         * image.c, image.h: impemented mono_image_get_entry_point ().
12408         * appdomain.c: use mono_image_get_entry_point.
12409
12410 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12411
12412         * reflection.c: support the object type argument when loading
12413         custom attributes.
12414
12415 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
12416
12417         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
12418         String as return type.
12419
12420 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
12421
12422         * reflection.c: fix encoding of named args for custom attrs to match
12423         the ms implementation. Read them back when instantiating custom
12424         attributes.
12425
12426 2002-08-02  Radek Doulik  <rodo@ximian.com>
12427
12428         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
12429         by Dietmar as quick fix
12430         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
12431         16 as stack size, used on more places as quick fix before Dietmar
12432         will fix it properly
12433
12434 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12435
12436         * object.h, object.c: added accessors for fields and properties.
12437
12438 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12439
12440         * class.c, class.h: made mono_class_get_field_from_name ()
12441         loop on parent types.
12442         Added mono_class_get_property_from_name ().
12443
12444 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12445
12446         * class.c, class.h: move the code to setup the type vtable in its own
12447         function so that it can be reused also for types created at runtime.
12448         Eliminate the "class" identifier from the header file.
12449         * reflection.c: setup the vtable for enums so that we can create
12450         objects for use in SetConstant ().
12451
12452 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
12453
12454         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
12455         instead of the delegate itself as this pointer (bug #28383)
12456
12457 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
12458
12459         * marshal.c (mono_marshal_get_managed_wrapper): added return type
12460         conversions.
12461
12462 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12463
12464         * loader.c: don't set the pinvoke bit on icalls.
12465
12466 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
12467
12468         * debug-helpers.c (mono_method_full_name): only print a number to
12469         indicate wrapper type (so that the output is more readable in traces).
12470
12471 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
12472
12473         * class.c (mono_class_init): include method override patch from Paolo
12474
12475 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
12476
12477         * icall.c: fixed GetTypeCode().
12478
12479 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
12480
12481         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
12482         use real delegate invoke function to make it work with multicast
12483         delegates (fix bug# 28291).
12484
12485 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12486
12487         * object.c: load constant strings.
12488
12489 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12490
12491         * reflection.c: no magic numbers.
12492         * tabledefs.h: security action enum.
12493
12494 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12495
12496         * assembly.c: fix possible memory corruption.
12497
12498 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12499
12500         * reflection.h, reflection.c: added support for linking resources.
12501         * verify.c: check we have an updated corlib.
12502
12503 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
12504
12505         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
12506         string arrays.
12507         (mono_marshal_string_array): null terminate unmanaged string arrays.
12508         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
12509
12510 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12511
12512         * icall.c: Type.GetType () can now return also types from the
12513         calling assembly.
12514
12515 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12516
12517         * loader.h, loader.c: stack walking support.
12518         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
12519         GetCallingAssembly.
12520
12521 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
12522
12523         * marshal.c: added optimisations for blittable types 
12524
12525         * class.c (mono_array_class_get): do not set blittable attribute on arrays
12526         (mono_class_setup_mono_type): set blittable attribute for single
12527         and double.
12528
12529         * marshal.c (mono_string_utf8_to_builder): impl.
12530         (mono_string_builder_to_utf8): impl.
12531         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
12532
12533 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
12534
12535         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
12536         (mono_marshal_get_managed_wrapper): impl. byref types
12537
12538 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12539
12540         * icall.c:
12541         (search_method): don't display debug message. 
12542
12543 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12544
12545         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
12546
12547 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12548
12549         * appdomain.c: set the missing filename when throwing exception.
12550
12551 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12552
12553         * metadata.c (mono_type_size): code cleanup
12554         (mono_type_stack_size): removed some test code
12555
12556 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
12557
12558         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
12559         mono_get_exception_file_not_found now.
12560
12561         * exception.c (mono_exception_from_name_two_strings): New version
12562         that will call a constructor with two string arguments. 
12563         (mono_get_exception_file_not_found): New helper routine, used to
12564         report file-not-found errors.
12565
12566 2002-07-20  Dick Porter  <dick@ximian.com>
12567
12568         * process.h:
12569         * process.c: Pass file handles to CreateProcess
12570         
12571         * icall.c:
12572         * file-io.h:
12573         * file-io.c: Implemented CreatePipe
12574
12575 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12576
12577         * metadata.c (mono_get_param_info): set alignment for value types
12578
12579 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12580
12581         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
12582         Constify mono_domain_assembly_open().
12583         * loader.c: handle null namespace in icalls.
12584
12585 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12586
12587         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
12588         (emit_str_to_ptr_conv): marshal object as structs
12589
12590         * metadata.c (mono_type_to_unmanaged): marshal object as structs
12591
12592         * marshal.c (mono_marshal_get_runtime_invoke): support value types
12593
12594 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
12595
12596         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
12597         (mono_marshal_get_native_wrapper): we an now return value types
12598
12599 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12600
12601         * verify.c: more checks implemented.
12602
12603 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
12604
12605         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
12606         (fix bug #27695)
12607         (mono_marshal_get_native_wrapper): allow byref arguments
12608         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
12609         impl. PtrToStringXXX methods
12610         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
12611         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
12612         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
12613         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
12614         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
12615
12616 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12617
12618         * reflection.c: fix buglet in parsing an assembly name.
12619
12620 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12621
12622         * marshal.c (emit_ptr_to_str_conv): first impl.
12623
12624 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12625
12626         * object.c, class.h: cache the vtable in the class as suggested by
12627         vargaz@freemail.hu (Zoltan Varga).
12628
12629 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12630
12631         * class.h, loader.c: added mono_field_from_token().
12632         * verify.c: first cut of type checking code.
12633
12634 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12635
12636         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
12637
12638 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
12639
12640         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
12641         (fix bug #27782)
12642         (mono_marshal_get_remoting_invoke): impl.
12643         (mono_delegate_begin_invoke): impl.
12644         (mono_mb_emit_save_args): impl.
12645         (mono_delegate_end_invoke): impl.
12646         (mono_marshal_get_delegate_begin_invoke):
12647         (mono_marshal_get_delegate_end_invoke):
12648         (mono_marshal_get_delegate_invoke): generate a special name for
12649         those methods (including the signature) and associate them whith
12650         the delegate class. 
12651
12652 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
12653
12654         * reflection.[ch]: 
12655         (mono_reflection_type_from_name): now it has a MonoImage parameter
12656         which is used as the default image to search the type in. If the image
12657         is NULL or getting the type from it fails, it defaults to corlib.
12658
12659         * icall.c: changed 1 call to mono_reflection_type_from_name to match
12660         new parameter.
12661
12662 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12663
12664         * reflection.c: update the parameter table index.
12665
12666 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12667
12668         * domain.c: don't include the mark byte in the string hash.
12669
12670 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12671
12672         * icall.cs: icall for Type.GetTypeCode ().
12673         * verify: a couple of fixes and disabled local initialization checks.
12674
12675 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
12676
12677         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
12678
12679         * debug-helpers.c (mono_method_full_name): print the type of the
12680         runtime wrapper
12681
12682         * metadata.c (mono_signature_hash): a hash function for signatures
12683         (mono_signature_hash): better hash algorithm
12684
12685         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
12686
12687         * debug-helpers.c (mono_method_full_name): this can now generate
12688         method names with signatures
12689
12690         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
12691         method dont have this pointers.
12692
12693 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
12694
12695         * reflection.c: fixup typebuilder tokens.
12696         * image.c: fix buglet.
12697         * marshal.h: remove whitespace.
12698         * metadata.h, metadata.c: reinstate code that was removed.
12699         * verify.c: handle catch directives and fix another couple of bugs.
12700
12701 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
12702
12703         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
12704         (mono_marshal_get_native_wrapper): make it comp. with the old code
12705         (mono_marshal_get_native_wrapper): support boolean
12706         (mono_marshal_get_managed_wrapper): support more types
12707
12708 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
12709
12710         * class.c (class_compute_field_layout): compute class->blittable attribute.
12711
12712 2002-07-09  Dick Porter  <dick@ximian.com>
12713
12714         * threads.c: Make the thread cleaning up cope with threads that
12715         call ExitThread()
12716
12717 2002-07-08  Radek Doulik  <rodo@ximian.com>
12718
12719         * reflection.c (method_encode_code): use non-translated values to
12720         compute finally_start, this fixes exception handling on ppc, yay!
12721
12722         * decimal.h (struct signscale): fix endianess
12723
12724 2002-07-07  Radek Doulik  <rodo@ximian.com>
12725
12726         * reflection.c: swap box_val and not val
12727
12728 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12729
12730         * reflection.c, reflection.h: handle full assembly info in type name.
12731         Handle Type arguments when loading custom attributes.
12732         * icall.c: updated to use new mono_reflection_type_from_name () method.
12733
12734 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12735
12736         * loader.c:
12737         (method_from_memberref): also print assembly name when method not found.
12738
12739 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12740
12741         * icall.c:
12742         (ves_icall_TypeGetProperties): fixed bug #27473. 
12743
12744 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12745
12746         * reflection.c: display image name and token when cannot find the
12747         .ctor for an attribute.
12748
12749 2002-07-05  Martin Baulig  <martin@gnome.org>
12750
12751         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12752
12753 2002-07-04  Dick Porter  <dick@ximian.com>
12754
12755         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
12756         compile on mingw.  This will cause mingw builds to not wait for
12757         subthreads to terminate after the main thread does.  I've lodged a
12758         bug with the mingw developers for them to wrap OpenThread().
12759
12760 2002-07-03  Dick Porter  <dick@ximian.com>
12761
12762         * threads.c: Store thread IDs instead of handles, because
12763         GetCurrentThread() returns a pseudohandle and therefore stores
12764         useless values.  mono_thread_cleanup() continues checking the
12765         array of threads until it is empty, to cope with subthreads
12766         spawning new threads after the main thread has finished.
12767
12768         * profiler.h:
12769         * profiler.c:
12770         * profiler-private.h: Pass the thread ID to thread profiler
12771         functions, instead of a handle
12772
12773 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12774
12775         * verify.c: fixes to make it more usable.
12776         * pedump.c: added --verify code to verify IL code in an assembly.
12777
12778 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12779
12780         * reflection.c: turn errors into warnings to allow compiling corlib.
12781
12782 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12783
12784         * reflection.c: add special cases to compile corlib.
12785
12786 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12787
12788         * reflection.c: handle properties with only a set method.
12789
12790 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12791
12792         * opcodes.h: add enum with opcodes in opval order.
12793
12794 2002-07-01  Dick Porter  <dick@ximian.com>
12795         
12796         * object.h:
12797         * object.c (mono_runtime_run_main): Removed unneeded argument
12798
12799 2002-06-28  Martin Baulig  <martin@gnome.org>
12800
12801         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12802
12803 2002-06-27  Dick Porter  <dick@ximian.com>
12804
12805         * threads.c: Store the handle in both the parent thread and in the
12806         subthread, to minimise the time between starting a new thread and
12807         storing its ID.
12808
12809 2002-06-26  Dick Porter  <dick@ximian.com>
12810
12811         * appdomain.c (mono_runtime_cleanup): Close the socket library
12812         after all the threads have finished, not before
12813
12814 2002-06-26  Martin Baulig  <martin@gnome.org>
12815
12816         * debug-symfile.c (mono_debug_find_source_location): Added
12817         `guint32 *line_number' argument.  If it's not NULL, store the line number
12818         there and return the file name without the line number.
12819
12820 2002-06-25  Dick Porter  <dick@ximian.com>
12821
12822         * icall.c:
12823         * process.h:
12824         * process.c: Process forking and other support functions
12825
12826 2002-06-25  Dick Porter  <dick@ximian.com>
12827
12828         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
12829         things dont happen when the image is closed.
12830         (mono_image_lookup_resource): Walk the resource section looking
12831         for a particular entry
12832
12833         * cil-coff.h: PE resource section decoding
12834
12835 2002-06-25  Dick Porter  <dick@ximian.com>
12836         
12837         * assembly.h:
12838         * assembly.c: 
12839         (mono_assembly_foreach): Accessor functions to walk the list of
12840         loaded assemblies
12841         (mono_assembly_set_main):
12842         (mono_assembly_get_main): Process methods need to know which
12843         assembly is the "main" one
12844
12845         * object.c (mono_runtime_run_main): Record the main assembly
12846
12847         * debug-helpers.c: Fix typo
12848
12849 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
12850
12851         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
12852         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
12853
12854 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12855
12856         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
12857
12858 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
12859
12860         * image.c (do_mono_image_open): Initialize reference count,
12861         otherwise we leak the MonoImage.
12862
12863 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12864
12865         * reflection.c: small tweak to handle self-hosting.
12866
12867 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12868
12869         * reflection.c: fix type name parse code.
12870
12871 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12872
12873         * reflection.c: break out of the loop.
12874         * image.c: special case corlib.
12875
12876 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12877
12878         * reflection.c: add all the custom attrs at the end to ensure the
12879         ctors have been properly initialized when the attributes are defined
12880         in the current assembly.
12881
12882 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12883
12884         * reflection.c: handle correctly multiple-nested types.
12885
12886 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12887
12888         * row-indexes.h: fix typos.
12889         * reflection.c: adjust for typos and fix method_def_or_ref
12890         encoding in MethodImpl table.
12891
12892 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12893
12894         * reflection.c: fix entry point patching (thanks Serge!).
12895
12896 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
12897
12898         * verify.c: add check for System.Exception
12899
12900 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12901
12902         * image.c, class.c: minifix for code just c&p'ed.
12903         * reflection.c: warning fix.
12904         * object.h, loader.h, domain.c: load also StringBuilder.
12905
12906 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12907
12908         * marshal.h, marshal.c: some support code to handle complex marshaling.
12909
12910 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12911
12912         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
12913         Better signatures with vtable error dump.
12914
12915 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
12916
12917         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
12918
12919 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
12920
12921         * icall.c (ves_icall_Type_GetField): impl.
12922
12923 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12924
12925         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
12926         to retrieve a marshal description blob for a field or param.
12927
12928 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12929
12930         * reflection.h, reflection.c: change order of nested type emission
12931         to avoid table corruption. The NestedTypes table is sorted.
12932         * icall.c: change order of GetConstructor results to workaround mcs bug.
12933
12934 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12935
12936         * reflection.h, reflection.c: handle field and param marshal
12937         information.
12938
12939 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12940
12941         * icall.c, marshal.c marshal.h: more Marshal class implementation.
12942
12943 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12944
12945         * reflection.c: fix call convention.
12946
12947 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12948
12949         * reflection.h, reflection.c: mono_image_get_memberref_token()
12950         takes a type instead of a class, now. Added
12951         mono_image_get_array_token() to create tokens for the special
12952         multi-dim array methods.
12953
12954 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12955
12956         * assembly.c: handle modules (no assembly table). Split
12957         loading references in its own function.
12958         * class.c: handle moduleref resolution scope.
12959         * image.c, image.h: cache module name in image.
12960
12961 2002-06-07  Martin Baulig  <martin@gnome.org>
12962
12963         * reflection.c (mono_image_get_type_info): Only add a class layout entry
12964         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
12965
12966 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12967
12968         * icall.c: more signature fixes that used uint instead of int.
12969
12970 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12971
12972         * reflection.c: fixed signature of field refs.
12973
12974 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12975
12976         * class.c, reflection.c: handle typerefs of nested types
12977         (both on read and when writing files).
12978
12979 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12980
12981         * icall.c: fix method signatures that tried to workaround the previous
12982         typo, d'oh!
12983
12984 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12985
12986         * debug-helpers.c: fix typo.
12987
12988 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12989
12990         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
12991         rewrote the PE/COFF writing code (our programs are understood by the
12992         ms runtime, now).
12993
12994 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12995
12996         * gc.c, gc.h, icall.c: weakreference support.
12997
12998 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12999
13000         * Makefile.am, mono-config.c: use $(sysconfdir).
13001
13002 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13003
13004         * icall.c: changed default precision of Double.ToString() to 15.
13005         Fixed memory leak. Unified with Single.ToString.
13006
13007 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
13008
13009         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
13010
13011 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
13012
13013         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
13014         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
13015         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
13016         and myself.
13017
13018 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13019
13020         * debug-symfile.c, sysmath.c: yet more compilation fixes.
13021
13022 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13023
13024         * reflection.c, socket-io.c: more compilation fixes.
13025
13026 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13027
13028         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
13029         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
13030         unicode.c: warning and compiler compatibility fixes.
13031
13032 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13033
13034         * class.h, metadata.c: fixed warnings/compilation errors.
13035
13036 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13037
13038         * Makefile.am, mono-config.c, mono-config.h: configuration file
13039         support routines.
13040         * loader.c, loader.h: make Dll mapping configurable at runtime in the
13041         config file. Export methods to insert and lookup mappings.
13042
13043 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13044
13045         * reflection.c: handle types and boxed objects in custom attr
13046         constructors.
13047
13048 2002-05-30  Martin Baulig  <martin@gnome.org>
13049
13050         * debug-symfile.c
13051         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
13052
13053 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
13054
13055         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
13056         to lookup the implmap row for a P/Invoke method.
13057         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
13058         P/Invoke method from the runtime on an as needed basis.
13059
13060 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
13061
13062         * metadata.c (mono_metadata_parse_signature): impl.
13063
13064 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13065
13066         * class.c: handle .pack directive.
13067
13068 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
13069
13070         * object.c: initialize static fields with RVA data.
13071
13072 2002-05-25  Martin Baulig  <martin@gnome.org>
13073
13074         * debug-symfile.c
13075         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
13076
13077 2002-05-24  Martin Baulig  <martin@gnome.org>
13078
13079         * debug-symfile.c
13080         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
13081         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
13082         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
13083
13084 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13085
13086         * object.c: special case string ctros in invoke.
13087         * gc.c: silly whitespace changes.
13088
13089 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
13090
13091         * threadpool.[ch]: impl. a threadpool that can
13092         be used by mint and mono.
13093
13094 2002-05-22  Martin Baulig  <martin@gnome.org>
13095
13096         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
13097         The first argument is now a `MonoReflectionModuleBuilder *', the return
13098         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
13099         `methods' field to get the method builder.  The `token' argument is the
13100         unfixed token.
13101
13102         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
13103         invalid characters instead of g_assert_not_reached()ing.  This seems
13104         to be the behaviour of mscorlib.
13105
13106 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
13107
13108         * object.c (mono_runtime_invoke_array): applied patch from Rachel
13109         Hestilow to fix bug #25104
13110
13111 2002-05-21  Martin Baulig  <martin@gnome.org>
13112
13113         * debug-symfile.c (mono_debug_find_source_location): New function.
13114         Looks up an IL offset in the line number table and returns the source
13115         location as a string.
13116
13117 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13118
13119         * icall.c:
13120         (mono_double_ToStringImpl): changed %f by %g until we have something
13121         better.
13122
13123 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13124
13125         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13126         parameters first in C#.
13127
13128 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13129
13130         * icall.c, reflection.h: added icall to get info about an event.
13131
13132 2002-05-20  Radek Doulik  <rodo@ximian.com>
13133
13134         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13135         endian
13136         (mono_value_box): don't use memcpy for small sizes on
13137         architectures with unaligned access
13138
13139 2002-05-20  Martin Baulig  <martin@gnome.org>
13140
13141         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13142         if `tb->parent == NULL'.
13143         (mono_reflection_create_internal_class): New function.  This is
13144         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13145         for enum types.
13146
13147         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13148         New interncall.
13149
13150 2002-05-19  Martin Baulig  <martin@gnome.org>
13151
13152         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13153         argument to get the length, don't default to the array length.
13154
13155 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13156
13157         * assembly.c (mono_assembly_setrootdir): New function used to
13158         override the MONO_ASSEMBLIES directory.
13159
13160 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13161
13162         * icall.c: ValueType_GetHashCode() initialize local var.
13163
13164 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13165
13166         * reflection.c: sort custom attributes table.
13167
13168 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13169
13170         * reflection.c: support named args in custom attributes (write support).
13171
13172 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13173
13174         * reflection.c: fix finally position calculation.
13175
13176 2002-05-15  Radek Doulik  <rodo@ximian.com>
13177
13178         * reflection.c: fixed endianess at many places
13179
13180         * icall.c (ves_icall_InitializeArray): comment out debug msg
13181
13182 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
13183
13184         * object.c (mono_unhandled_exception): new function to handle
13185         unhandled exceptions.
13186         (mono_unhandled_exception): call the UnhandledException event.
13187         (mono_runtime_delegate_invoke): impl.
13188
13189 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
13190
13191         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
13192         returns the RVA, not the direct pointer to the data. Handle the case
13193         when the class size is fixed.
13194
13195 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13196
13197         * reflection.c: fix some endianess issues.
13198
13199 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
13200
13201         * object.c (mono_runtime_invoke): is now able to catch exceptions.
13202
13203         * threads.c (mono_thread_init): added a callback which is invoked
13204         at thread start.
13205
13206 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13207         
13208         * icall.c: make GetHashCode return non-negative values.
13209
13210 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13211
13212         * object.c, icall.c, gc.c: revert to address-based hashcode.
13213
13214 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
13215
13216         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
13217
13218 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13219
13220         * icall.c, class.c: special case <Module>.
13221
13222 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
13223
13224         * icall.c: fix bug in GetNow().
13225
13226 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
13227
13228         * object.c (mono_runtime_class_init): make sure that we call all
13229         static class constructors.
13230
13231 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13232
13233         * reflection.c: sort methodsemantics table.
13234
13235 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13236
13237         * reflection.h, reflection.c: honour init locals setting.
13238
13239 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
13240
13241         * icall.c: copied Double ToStringImpl for Single ToStringImpl
13242
13243 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13244
13245         * reflection.c: support ContructorBuilders in attribute blob creation.
13246
13247 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13248
13249         * reflection.c: some changes to build a binary that can be run
13250         directly in windows.
13251
13252 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13253
13254         * loader.c: print a big message when an icall can't be found.
13255
13256 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13257
13258         * string-icalls.c: fix bug 24248.
13259
13260 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13261
13262         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
13263         icall.c, reflection.h: separate assembly loading by pathname and by
13264         assembly name. Use the MONO_PATH env var to search for assemblies.
13265
13266 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13267
13268         * assembly.c, image.h: add some support for assemblies
13269         with multiple modules.
13270         * class.c, class.h: export mono_class_from_typeref().
13271         * loader.c: remove duplicated code and use mono_class_from_typeref(),
13272         instead.
13273
13274 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13275
13276         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13277         documentation says (the ECMA one is correct).
13278
13279 2002-05-02  Dick Porter  <dick@ximian.com>
13280
13281         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
13282         Don't name the synchronisation mutex.
13283
13284 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
13285
13286         * rand.c
13287         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
13288         Make the prototypes match.
13289         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
13290         Same.
13291
13292         * icall.c
13293         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
13294         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
13295         all systems have tm.tm_zone, so use strftime() with %Z to print
13296         the timezone abreviation into a temp string.
13297
13298         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
13299         rather than mono_array_addr() on a MonoString on Big Endian
13300         machines.
13301
13302 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
13303
13304         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
13305         fix bug 24041
13306
13307 2002-04-30  Dick Porter  <dick@ximian.com>
13308
13309         * socket-io.c: Cope with SOCKET being an integer rather than a
13310         pointer now.
13311
13312         * threads.c: Added Thread_free_internal, to deal with thread
13313         handle cleanup.  Moved calls to handle_store() and handle_remove()
13314         to start_wrapper(), so each can only be called once.  Allocate
13315         synchronisation blocks with GC_malloc(), and use GC finalisation
13316         to close the handles.
13317
13318         * icall.c: added System.Threading.Thread::Thread_free_internal
13319
13320 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13321
13322         * icall.c: support Environment.Exit, CommandLineArgs().
13323
13324 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13325
13326         * object.c, object.h: added mono_runtime_run_main () and
13327         mono_runtime_get_main_args () for use in System.Environment.
13328
13329 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13330
13331         * gc.c: fix thinko, enable actual finalization since the jit is now
13332         fixed.
13333
13334 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13335
13336         * gc.c, object.c: take into account that an object may be offset wrt the address
13337         returned by GC_malloc().
13338
13339 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
13340
13341         * image.c: handle files without entries in the assembly table (modules).
13342
13343 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
13344
13345         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
13346         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
13347         allowed to be null when it's System.Object class setup.
13348
13349 2002-04-27  Martin Baulig  <martin@gnome.org>
13350
13351         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
13352         if `tb->parent == NULL' rather than crashing.
13353
13354 2002-04-28  Nick Drochak  <ndrochak@gol.com>
13355
13356         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
13357         calling acos() where asin() should have been called.
13358
13359 2002-04-26  Martin Baulig  <martin@gnome.org>
13360
13361         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
13362         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
13363         there's a subdirectory called `System', but we don't want to read that
13364         subdirectory as an assembly.
13365
13366 2002-04-25  Martin Baulig  <martin@gnome.org>
13367
13368         * debug-symfile.c: Reflect latest MonoString changes.
13369
13370 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13371
13372         * rand.c, rand.h: instance method icalls need to have an explicit
13373         this pointer as first argument in the C implementation.
13374
13375 2002-04-25  Nick Drochak <ndrochak@gol.com>
13376
13377         * icall.c: Fix typo in map for GetNonZeroBytes
13378
13379 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13380
13381         * string-icalls.c : String does now passes unit tests without any 
13382         errors, the following changes has been made:
13383         
13384         Implemented replace methods.
13385         Renaming of methods to (try) follow the standard.
13386         Fixed compare ordinal
13387         Made all memory allocated directly to function instead of via icall function.
13388         Small performance fix in is_in_array function
13389                         
13390  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
13391
13392         c (mono_string_Internal_ctor_charp_int_int):
13393         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
13394         sindex < 0, throw ArgumentOutOfRangeException instead of
13395         ArgumentNullException.
13396
13397         Added new check for length == 0, however
13398         I need to make it return String.Empty from the C code.
13399         
13400         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
13401         that calculate the length for us here.
13402         
13403         (mono_string_Internal_ctor_sbytep_int_int): Replaced
13404         mono_string_new_utf16 with mono_string_new, since value is utf8.
13405
13406 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13407
13408         * object.c: register the object for finalization if needed.
13409         Allocate one more char in the string for the terminating 0 char.
13410
13411 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13412
13413         * class.c, class.h, image.c: check if a type implemenst a destructor.
13414         Use the proper key for array class lookups.
13415         * icall.c: register the icalls in the System.GC class.
13416         * gc.c, gc.h: GC-related functions and icalls.
13417
13418 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13419
13420         * icall.c:
13421         * socket-io.c:
13422         * unicode.c: free some strings gotten from mono_string_to_utf8 and
13423         changed a couple of free () by g_free ().
13424
13425         * decimal.c: one-liner in the comments for decimal2string ().
13426
13427 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13428
13429         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
13430
13431 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13432
13433         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
13434         * object.c (mono_runtime_invoke_array) : handle null in params
13435
13436 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13437
13438         * string-icalls.c: fixed bug in split (one off bug)
13439
13440 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13441
13442         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
13443         * icalls.c: added String::Equals as internal method
13444
13445 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13446
13447         * threads.c: fixed bug in the double interlocked functions
13448
13449 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
13450
13451         * threads.c: implemented all of the new interlocked icalls.
13452         * string-icalls.c: fix a bug in insert.
13453         * icalls.c: added the icalls for interlocked, removed old string functions.
13454         
13455 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13456
13457         * loader.c: fix off-by-one error when reading argument names.
13458
13459 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13460
13461         * profiler.c: win32 counter implementation (untested).
13462         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
13463         (the latter needs testing and more complete impl. from win32 folks).
13464
13465 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
13466
13467         * object.c: mono_array_new_full workaround mono_array_class_get
13468         problem.
13469
13470 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13471
13472         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
13473         * object.h (mono_string_chars): Changed casting type.
13474
13475 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13476
13477         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
13478                            method signatures to use gunichar2 instead of gint16.
13479
13480 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
13481
13482         * object.h, object.c: domain-specific versions of mono_object_new and
13483         mono_array_new.
13484
13485 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
13486
13487         * object.c: changed String layout
13488
13489         * string-icalls.c (mono_string_Internal_ctor_chara): added
13490         internal string constructors.
13491
13492 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
13493
13494         * threads.c: pass 'this' to the thread start routine.
13495
13496 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13497
13498         * string-icalls.c: fix IndexOf and LastIndexOf. Now
13499         InternalCompareStr don't call twice mono_string_cmp_char for the last
13500         character. Improved performance in mono_string_cmp_char.
13501
13502 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13503
13504         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
13505         code into its own library: libmonoruntime.
13506
13507 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
13508
13509         * object.h, object.c: changed array format so that szarrays do not
13510         require a bounds structure.
13511         * icall.c, appdomain.c: support for new szarray format.
13512
13513 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13514
13515         * metadata.c: compare also the retuns type when comparing signatures:
13516         we didn't do this as an optimization since really overloaded methods
13517         must differ also in the arguments, but this doesn't work with
13518         low-level IL code (or when using explicit conversion operators: see
13519         bug#23498 for an example).
13520
13521 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13522
13523         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
13524
13525 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13526
13527         * icall.c: make MonoType::GetElementType its own icall.
13528
13529 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13530
13531         * icall.c: remove MonoMethod_get_Name().
13532         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
13533         object.
13534
13535 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13536
13537         * string-icalls.c: optimized a few methods.
13538
13539 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13540
13541         * icall.c: added all new string internal calls
13542         * string-icalls.c: added, new string internal call implementation.
13543         * object.c: added mono_string_new_size for allocating a string a size
13544
13545 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
13546
13547         * object.c (mono_object_isinst): use the same code as in the
13548         optimized x86 version.
13549
13550 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13551
13552         * profiler.c: TSC-based timer code (faster and more accurate).
13553         Not hooked up in configure, yet (set USE_X86TSC to 1).
13554
13555 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
13556
13557         * profiler.c, profiler.h: track time spent compiling methods.
13558         * threads.c: track thread creation/destruction.
13559
13560 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
13561
13562         * profiler.c, profiler.h, profiler-private.h: profiling interface
13563         and sample implementation. Moved here so that it can be used also by
13564         the jit.
13565
13566 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
13567
13568         * reflection.c, reflection.h: keep types and other handles separate in
13569         the hash tables for referred tokens. Add guid for modules.
13570
13571 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13572
13573         * assembly.c: fix bugs found with valgrind.
13574         * metadata.h, metadata.c: added mono_metadata_guid_heap().
13575
13576 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
13577
13578         * threads: added icall support for getting current domain for
13579                    the thread.
13580  
13581 2002-04-13  Martin Baulig  <martin@gnome.org>
13582
13583         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
13584         (MonoDebugVarInfo): Added `index' field for register based addresses.
13585         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
13586         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
13587         `MonoDebugVarInfo *params' and `guint32 this_offset' with
13588         `MonoDebugVarInfo *this_var'.
13589
13590         * debug-symfile.c (relocate_variable): New static function to write
13591         a location description for a local variable or method parameter.
13592
13593 2002-04-12  Martin Baulig  <martin@gnome.org>
13594
13595         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
13596         stack offset and begin/end scope address of a local variable.
13597         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
13598         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
13599         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
13600
13601         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
13602         Added new relocation types for start/end scope of a local variable.
13603
13604 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13605
13606         * object.h: add mono_object_domain() macro.
13607         * reflection.c: handle typespecs.
13608         * icall.c: MonoMethod::get_Name() implementation.
13609
13610 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13611
13612         * icall.c: String::GetHashCode() icall implementation.
13613
13614 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13615
13616         * icall.c: String::IndexOfAny icall.
13617         * object.c, object.h: make array->max_length more useful.
13618         Intrduced mono_object_class() and mono_string_length() macros.
13619
13620 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13621
13622         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
13623         instead of g_unichar_isdigit.
13624
13625 2002-04-11  Nick Drochak  <ndrochak@gol.com>
13626
13627         * icall.c: Implement a simple Double.ToString().
13628
13629 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13630
13631         * appdomain.h: only io-layer.h is supposed to be included.
13632         * icall.c: explicitly import environ. Fix warning.
13633
13634 2002-04-10  Nick Drochak  <ndrochak@gol.com>
13635
13636         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
13637                 return true even if it's not Daylight Savings time.
13638                 Only return false for the case where the function isn't
13639                 implemented for a plaform (read Windows).
13640
13641 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13642
13643         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
13644         data with a mutex.
13645
13646 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
13647
13648         * mempool.c (mono_mempool_alloc): only use g_malloc when
13649         absolutely necessary.
13650
13651 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13652
13653         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
13654
13655         * class.c (mono_class_vtable): use domain mempool to allocate vtable
13656         (mono_class_proxy_vtable): use domain mempool
13657
13658 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13659
13660         * appdomain.h, appdomain.c: split initialization that requires the
13661         execution engine support into mono_runtime_init().
13662
13663 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13664
13665         * class.c (mono_class_init): don't include vtable inside MonoClass
13666         to save some memory, gather some statistics.
13667         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
13668
13669 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13670
13671         * icall.c: internalcall implementation for ValueType.Equals().
13672
13673 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
13674
13675         * object.c (mono_message_init): moved 
13676         (mono_runtime_exec_main): new arch. independent impl.
13677         (mono_runtime_invoke_array): new method - like
13678         mono_runtime_invoke, but you can pass an array of objects.
13679         (mono_remoting_invoke): new arch. independent impl.
13680         (mono_message_invoke): new arch. independent impl.
13681         (mono_runtime_class_init): new arch. independent impl.
13682         (mono_runtime_object_init): new arch. independent impl.
13683
13684 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13685
13686         * metadata.c, object.c, reflection.c: documented the exported
13687         functions.
13688
13689 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
13690
13691         * icall.c: simpler code to pass the assembly builder data to corlib.
13692         Implement GetNestedTypes() internalcall.
13693
13694 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13695
13696         * class.c: warn if a type can't be loaded.
13697
13698 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
13699
13700         * image.h: typedef MonoImageOpenStatus
13701         * types.h: removed unused file
13702         
13703 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
13704
13705         * icall.c: Enum_ToObject accepts enum value arguments.
13706
13707 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13708
13709         * class.c: move initialization of properties, events and nested
13710         classes, so that they happen for interfaces, too.
13711
13712 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13713
13714         * icall.c: cleanup some ugly casts in Array_SetValue*.
13715
13716 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13717
13718         * icall.c: the values array fro enums is of the correct type, now.
13719         Implement (correctly) getFullName instead of assQualifiedName for
13720         MonoType.
13721         * reflection.h, reflection.c: added mono_type_get_name ().
13722
13723 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13724
13725         * assembly.c, image.h: for each MonoImage, record from wich assembly
13726         it was loaded.
13727         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
13728         Make Type.Assembly work.
13729
13730 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
13731
13732         * debug-symfile.h: use char* instead of gpointer to avoid
13733         unnecessary casts.
13734
13735         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
13736
13737         * icall.c (ves_icall_InternalExecute): impl. FielSetter
13738         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
13739
13740 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
13741
13742         * icall.c (mono_message_init): impl. (code cleanup)
13743         (ves_icall_InternalExecute): impl. FieldGetter
13744
13745         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
13746         defined we call all (non-static)methods through the vtable. 
13747
13748 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
13749
13750         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
13751         finalizer even though the memory is still referenced (and the chunk of
13752         memory is not freed).
13753
13754 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
13755
13756         * assembly.c: fix brokeness.
13757
13758 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
13759
13760         * class.c: kill some warnings. Check explicit interface method
13761         implementation also without considering the namespace.
13762         Load also literal strings in static class data.
13763
13764 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
13765
13766         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
13767         (default_assembly_name_resolver): Make the resolver take the
13768         "base" directory where the assembly was originally defined, so we
13769         can load DLLs that are in the same directory as the assembly that
13770         is being referenced.
13771
13772 2002-03-28  Dick Porter  <dick@ximian.com>
13773
13774         * file-io.h: 
13775         * file-io.c:
13776         * socket-io.c: 
13777         * unicode.h: 
13778         * unicode.c: Warning cleanups
13779
13780 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
13781
13782         * object.h, reflection.h: use the correct type instead of MonoObject.
13783
13784 2002-03-28  Martin Baulig  <martin@gnome.org>
13785
13786         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
13787         (mono_debug_update_symbol_file): Initialize classes if necessary.
13788
13789 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13790
13791         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
13792         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
13793
13794 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
13795
13796         * assembly.h: fix function prototype.
13797         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
13798         * mono-endian.h: use const cast.
13799
13800 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13801
13802         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
13803
13804 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13805
13806         * loader.c: don't assert when a typeref can't be loaded, give
13807         a chance to the runtime to trow an exception instead.
13808         * loader.h: fix warning.
13809
13810 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13811
13812         * class.c (mono_class_proxy_vtable): added proxy support
13813
13814 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
13815
13816         * icall.c: removed last of PAL calls, added System.Environment
13817         * file-io.h, file-io.c: MonoIO implementation
13818         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
13819
13820 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13821
13822         * appdomain.c: do not use the byte marker in ldstr table lookup.
13823         * debug-helpers.c: allow two ':' to separate class and method name.
13824         * object.c: allocate arrays bounds with the GC, too.
13825         * verify: add a few more checks.
13826
13827 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
13828
13829         * reflection.c: output also literal strings. Allocate parameter data
13830         with GC_malloc() (thanks, Martin, for catching this!).
13831
13832 2002-03-26  Martin Baulig  <martin@gnome.org>
13833
13834         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
13835         include the `this' offset in the `param_offsets'.
13836
13837 2002-03-25  Martin Baulig  <martin@gnome.org>
13838
13839         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
13840         mono_debug_get_class() function to get the classes. Added new
13841         relocation types for arrays and strings.
13842         (mono_debug_get_class): New static function to search in all
13843         referenced assemblies for a metadata token.
13844
13845         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
13846
13847 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
13848
13849         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
13850         hold gc-allocated objects. Make the string heap a stream like the
13851         others. Removed duplicated code when writing stream info.
13852         Added asserts to catch possible buffer overflows. Set the sorted map
13853         for tables that need sorting. Added some documentation.
13854
13855 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
13856
13857         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
13858         for interned strings and vtables.
13859
13860 2002-03-24  Martin Baulig  <martin@gnome.org>
13861
13862         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
13863         it in the array since it was created with g_slist_prepend().
13864
13865 2002-03-24  Martin Baulig  <martin@gnome.org>
13866
13867         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
13868         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
13869         (mono_debug_method_from_token): Renamed to
13870         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
13871         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
13872
13873         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
13874         relocation types.
13875
13876         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
13877
13878 2002-03-24  Martin Baulig  <martin@gnome.org>
13879
13880         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
13881         (mono_debug_method_from_token): New func.
13882
13883         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
13884         New interncall, calls mono_debug_local_type_from_signature().
13885         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
13886         calls mono_debug_method_from_token().
13887
13888 2002-03-23  Martin Baulig  <martin@gnome.org>
13889
13890         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
13891         specifies the number of bytes to be converted, not the array size.
13892         Return the number of chars, not the number of bytes.
13893         (ves_icall_iconv_get_chars): The `byteCount' argument
13894         specifies the number of bytes to be converted, not the array size.
13895
13896 2002-03-23  Martin Baulig  <martin@gnome.org>
13897
13898         * reflection.h (MonoReflectionSigHelper): New type.
13899
13900         * reflection.c (mono_reflection_sighelper_get_signature_local),
13901         (mono_reflection_sighelper_get_signature_local): New functions.
13902
13903         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
13904         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
13905         interncalls.
13906
13907 2002-03-23  Martin Baulig  <martin@gnome.org>
13908
13909         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
13910         is_writeable is set.
13911         (mono_raw_buffer_update): New function to write the modified map
13912         back to disk.
13913
13914         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
13915
13916         * debug-symfile.c (mono_debug_update_symbol_file): Call
13917         mono_raw_buffer_update() when done writing.
13918
13919 2002-03-23  Martin Baulig  <martin@gnome.org>
13920
13921         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
13922
13923         * debug-symfile.c: Added support for arguments and local variables.
13924
13925 2002-03-23  Dick Porter  <dick@ximian.com>
13926
13927         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
13928         protected by ifdefs, hence breaking the w32 build.
13929
13930 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
13931
13932         * object.c: implement is_interned() the right way.
13933
13934 2002-03-21  Martin Baulig  <martin@gnome.org>
13935
13936         * debug-symfile.[ch]: New files to handle debugging information
13937         files. There's also support to dynamically update these symbol
13938         files to include machine dependent information.
13939
13940 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
13941
13942         * threads.c (mono_thread_create): new function to create thread
13943         from C
13944
13945 2002-03-20  Martin Baulig  <martin@gnome.org>
13946
13947         * icall.c (ves_icall_InternalInvoke): Create a new object if the
13948         method is a constructor.
13949         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
13950         points to ves_icall_InternalInvoke().
13951
13952 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
13953
13954         * file-io.c: Flush shouldn't throw exceptions.
13955
13956 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
13957
13958         * file-io.c: FileStream flush support; FileSetLength now
13959         restores file pointer.
13960
13961 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
13962
13963         * class.c: set image for pointer classes.
13964
13965 2002/03/19  Nick Drochak <ndrochak@gol.com>
13966
13967         * sysmath.c: Forgot one.
13968
13969 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
13970
13971         * sysmath.c: Avoid redefining existing names.
13972
13973 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
13974
13975         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
13976         handled by runtime as icall rather than dllimport from libm.so
13977         * file-io.c, file-io.h: fixed handle argument type.
13978
13979 2002-03-18  Dick Porter  <dick@ximian.com>
13980
13981         * reflection.c (mono_image_get_type_info): rename interface to
13982         iface, because of "#define interface struct" on windows.
13983
13984 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
13985
13986         * class.c, class.h: rename and export mono_ptr_class_get().
13987         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
13988         * reflection.c, reflection.h, icall.c: better/saner type name
13989         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
13990         method signatures.
13991
13992 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
13993
13994         * class.c (mono_class_init): removed hardcoded GHC_SLOT
13995
13996         * icall.c (ves_icall_InternalInvoke): impl.
13997
13998 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
13999
14000         * reflection.c: output the interface map table, too.
14001
14002 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14003
14004         * class.c (class_compute_field_layout): separate computation of 
14005         static field layout
14006
14007 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
14008
14009         * icall.c: added System.Buffer support.
14010         * file-io.c: moved file icalls from PAL to FileStream.
14011
14012 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14013
14014         * icall.c (ves_icall_System_Object_GetHashCode): impl.
14015
14016 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
14017
14018         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
14019
14020 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14021
14022         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
14023
14024 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14025
14026         * debug-helpers.{c,h}: moved here from monograph some useful functions
14027         to locate a method by name/signature in a class or image. Included
14028         also a small and flexible IL disassembler.
14029
14030 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14031
14032         * reflection.c: fixup tokens in methods with small header size, too.
14033
14034 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
14035
14036         * object.c (mono_string_to_utf8): remove assert(!error), instead
14037         print a warning. 
14038
14039 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
14040
14041         * icall.c: update to the new mono_Array_class_get interface.
14042
14043 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14044
14045         * appdomain.c, object.c: Boehm-GC enable.
14046         * icall.c: make get_data_chunk() support split data requests.
14047         Ensure a class is initialized in more cases. Return only the first
14048         property found in GetProperties() or the compiler gets confused. 
14049         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
14050         * reflection.h, reflection.c: add fixup mechanism for field and method
14051         tokens. Initialize assembly->typeref in a single place. Output
14052         properties after events. Support custom attributes for events, too.
14053         Typo fix for paramter custom attrs.
14054
14055 2002-03-07  Martin Baulig  <martin@gnome.org>
14056
14057         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
14058
14059 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
14060
14061         * class.c (mono_array_class_get): fix. for multi. dim. arrays
14062
14063 2002-03-06  Martin Baulig  <martin@gnome.org>
14064
14065         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
14066         non-zero lower bounds. See testcases #F10-#F13.
14067
14068 2002-03-05  Martin Baulig  <martin@gnome.org>
14069
14070         * exception.c (mono_get_exception_argument_out_of_range): New exception.
14071
14072         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
14073         ves_icall_System_Array_GetValue(), only calculate the absolute array position
14074         here.
14075         (ves_icall_System_Array_SetValue): Likewise.
14076         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
14077         as argument and does the actual work. This function is used when copying a
14078         multi-dimensional array.
14079         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
14080         now do all the widening conversions of value types.
14081         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
14082
14083 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14084
14085         * class.c: remove some magic numbers and use the smbolic names,
14086         instead. Added init_events() to load event info at class init time.
14087         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
14088         and mono_metadata_methods_from_event().
14089         * reflection.h, reflection.c: added support for writing out the evnets
14090         related information.
14091
14092 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14093
14094         * reflection.h, icall.c: use a different method (GetInterfaces)
14095         to gather interface info and add isbyref, isprimitive and
14096         ispointer to the ves_icall_get_type_info() return value.
14097
14098 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14099
14100         * class.h: stared adding support for events.
14101         * icall.c: split find_members implementation. Added debug icall to get
14102         the address of an object.
14103         * reflection.c: handle TypeBuilders in mono_type_get_object().
14104
14105 2002-03-01  Martin Baulig  <martin@gnome.org>
14106
14107         * icall.c (ves_icall_System_Array_GetLength): This must throw an
14108         ArgumentOutOfRangeException(), not an ArgumentException().
14109         (ves_icall_System_Array_GetLowerBound): Likewise.
14110         (ves_icall_System_Array_GetValue): Improved argument checking.
14111         (ves_icall_System_Array_SetValue): Improved argument checking.
14112
14113 2002-03-01  Martin Baulig  <martin@gnome.org>
14114
14115         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
14116         called with invalid arguments rather than just dying with g_assert().
14117         (ves_icall_System_Array_SetValue): Likewise.
14118         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
14119         raise a NotImplementedException instead.
14120         (ves_icall_System_Array_GetLength): Added argument checking.
14121         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14122
14123 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14124
14125         * object.h (mono_assert): new macros mono_assert and
14126         mono_assert_not_reached
14127
14128 2002-02-28  Martin Baulig  <martin@gnome.org>
14129
14130         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14131         and "System::String::IsInterned" to "System::String::_IsInterned".
14132
14133 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14134
14135         * icall.c: remove hacks for typebuilder. Added icall to create a
14136         modified type from a tybebuilder.
14137         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14138         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14139         to create a backing MonoClass for a TypeBuilder.
14140
14141 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14142
14143         * class.c, class.h: more refactoring of class init.
14144         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14145
14146 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14147
14148         * marshal.c, marshal.h: start of marshaling interface.
14149
14150 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14151
14152         * icall.c: fix order in assembly qualified name icall.
14153
14154 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14155
14156         * class.c: do not free str, since we store it in the hash table.
14157         * reflection.h: add label field to MonoILExceptionInfo.
14158         * reflection.c: handle references to more than one assembly. Handle
14159         case when there isn't a module created in the assembly.
14160
14161 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14162
14163         * class.c: Fix typo. Start refactoring of class init code.
14164
14165 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14166
14167         * appdomain.c: exit with 1 on error.
14168         * class.c: we already have the name in MonoClassField.
14169         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
14170         MonoStreamHeader instead of an offset of image->raw_metadata.
14171
14172 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
14173
14174         * appdomain.c (mono_init): Be even more descriptive about the error.
14175
14176 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
14177
14178         * appdomain.c: give the user an informative message when corlib can't
14179         be loaded.
14180
14181 2002-02-26  Martin Baulig  <martin@gnome.org>
14182
14183         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14184         New icall to get the time zone data.
14185
14186 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14187
14188         * reflection.c: set virtual and raw size of section correctly.
14189         * threads.c: transfer domain information to newly created threads.
14190
14191 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14192
14193         * class.c: when instancing a class in a domain, load the default
14194         vaules for static fields from the constant table. Fix System.Enum to
14195         not be an enum.
14196         * icall.c: implement Object::GetType() internalcall. Implemented
14197         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
14198         Fixed checking of binding flags in find_members().
14199         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
14200         * reflection.c: handle enumerations when writing to the constant
14201         table. Use a different object cache for types.
14202
14203
14204 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
14205
14206         * object.c (mono_object_isinst): fix for arrays
14207
14208         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
14209
14210 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14211
14212         * object.c: don't use mprotect ()  and fix intern pool hash table
14213         lookup for big endian systems.
14214
14215 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14216
14217         * icall.c: change type_is_subtype_of () signature.
14218
14219 2002-02-21  Mark Crichton  <crichton@gimp.org>
14220
14221         * rand.c, rand.h: Added random number generator for
14222         System.Security.Cryptography classes.
14223
14224         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
14225
14226         * icall.c: Added System.Security.Cryptography calls.
14227
14228 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14229
14230         * class.c, icall.c, metadata.c: better support for pointer types.
14231         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
14232         * reflection.c: Add support for getting custom attrs for properties
14233         and simplify some code.
14234
14235 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14236
14237         * icall.c: change getToken () and add custom attribute GetBlob()helper
14238         method.
14239         * reflection.h: add custom attrs array to the reflection builder structures.
14240         * reflection.c: encode and emit custom attributes for all the relevant
14241         reflection objects. Cache fieldref and methodref tokens. Change
14242         mono_image_create_token() interface to take a MonoDynamicAssembly.
14243         More complete custom attributes decoder. Load custom attributes for
14244         Assembly, Field, Method and Constructor objects, too. Make the
14245         returned array an Attribute[] one, not object[]. Added
14246         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
14247         custom attribute constructor.
14248
14249 2002-02-20  Dick Porter  <dick@ximian.com>
14250
14251         * icall.c:
14252         * rawbuffer.c:
14253         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
14254         problem code out for now).
14255
14256 2002-02-19  Radek Doulik  <rodo@ximian.com>
14257
14258         * object.c (mono_ldstr): use hash table to avoid multiple swapping
14259
14260 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
14261
14262         * icall.c: register the GetCustomAttributes method.
14263         * object.c, object.h: add mono_string_new_len ().
14264         * reflection.h, reflection.c: added mono_runtime_invoke(),
14265         mono_install_runtime_invoke(). Added
14266         mono_reflection_get_custom_attrs () to load custom attributes and
14267         create the attribute objects.
14268
14269 2002-02-19  Dick Porter  <dick@ximian.com>
14270         * threads-dummy-types.c:
14271         * threads-dummy-types.h:
14272         * threads-dummy.c:
14273         * threads-dummy.h:
14274         * threads-pthread-types.c:
14275         * threads-pthread-types.h:
14276         * threads-pthread.c:
14277         * threads-pthread.h:  Deleted obsolete files
14278
14279 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
14280
14281         * class.c (mono_class_vtable): runtime init the class when we
14282         allocate static class data.
14283
14284         * icall.c (ves_icall_System_Array_SetValue): check for null values.
14285
14286         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
14287         and String - but we will need generic marshalling support in the
14288         future. 
14289         (mono_init): set the domain name in a ms compatible way
14290
14291         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
14292         String[].
14293
14294 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
14295
14296         * object.c (mono_array_clone): use alloca() instead of g_malloc  
14297         for sizes
14298
14299         * appdomain.c (mono_domain_unload): impl.
14300
14301 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14302
14303         * appdomain.c, object.c: fix intern pool implementation.
14304         * class.c: fix alignment code.
14305
14306 2002-02-16  Radek Doulik  <rodo@ximian.com>
14307
14308         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
14309         and s2 > s1, just copy lower bytes to be compatible with little
14310         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
14311         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
14312
14313         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
14314         force big_endian to be 1 for big endian machines 
14315         (ves_icall_iconv_new_decoder): ditto
14316
14317 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
14318
14319         * socket-io.c (convert_sockopt_level_and_name): If the system
14320         doesn't define SOL_IP or SOL_TCP, get them by hand using
14321         getprotobyname() and caching the values (because this could be a
14322         slow operation).
14323         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14324         Use the appropriate struct when the system does support it. Ie,
14325         not all systems have struct ip_mreqn so use struct ip_mreq when
14326         appropriate.
14327
14328 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
14329
14330         * reflection.c: handle finally clauses.
14331
14332 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
14333
14334         * socket-io.c: use g_snprintf() instead of snprintf.
14335
14336 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14337
14338         * reflection.c (mono_param_get_objects): Cast second argument to
14339         mono_method_get_param_names to a const char** to silence the
14340         compiler warning.
14341
14342         * appdomain.c (mono_domain_assembly_open): Put parens around the
14343         truth statement in the for-loop.
14344
14345         * unicode.c (iconv_convert): Got rid of a compiler warning about
14346         int i being unused when the system has a new iconv.
14347         (iconv_get_length): Same.
14348
14349         * image.c (load_class_names): Cast the second argument to
14350         g_hash_table_insert() to char* to hush compiler warnings about the
14351         arg being a const.
14352         (mono_image_open): Same here.
14353
14354         * socket-io.c: Don't conditionally include sys/filio.h or
14355         sys/sockio.h here anymore since we now get them from
14356         io-layer/io-layer.h
14357         (inet_pton): If the system doesn't support inet_aton, implement
14358         using inet_addr and also #define INADDR_NONE if it isn't defined
14359         by the system.
14360
14361 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14362
14363         * metadata.c, metadata.h: added function to get packing and size info
14364         of a typedef.
14365         * reflection.h, reflection.c: handle field RVA data. Save info about
14366         the table layout if needed. Assign typedef indexes to all the types
14367         before dumping the info about them to avoid forward reference problems.
14368
14369 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
14370
14371         * socket-io.c (convert_sockopt_level_and_name): ifdef
14372         SO_ACCEPTCONN because it is not defined on my system (old debian)
14373
14374 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14375
14376         * opcode.c: use stddef.h to get NULL.
14377
14378 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14379
14380         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
14381         for FIONBIO, FIONREAD and SIOCATMARK.
14382         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
14383         define INADDR_NONE and besides, inet_addr() is deprecated and
14384         should not be used. Use inet_pton() instead - it also has the
14385         added bonus that it can easily handle IPv6 addresses as well.
14386         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
14387
14388 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14389
14390         * decimal.c: remove _MSC_VER conditional.
14391
14392 2002-02-13  Dick Porter  <dick@ximian.com>
14393
14394         * socket-io.c: 
14395         * icall.c: Internal calls for Blocking, Select, Shutdown,
14396         GetSocketOption and SetSocketOption
14397
14398 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14399
14400         * assembly.cs: better resolver: use it instead of some kludgy
14401         code.
14402
14403 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
14404
14405         * reflection.c: the best way to speed-up the compiler is to avoid
14406         infinite loops.
14407
14408 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
14409
14410         * class.c (mono_class_vtable): changed the object layout
14411         (obj->vtable->class). 
14412         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
14413
14414 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14415
14416         * assembly.c: look for assemblies in the assembly dir, too.
14417
14418 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14419
14420         * class.c: fix thinko in mono_class_from_type().
14421
14422 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14423
14424         * exception.h, exception.c: added TypeLoadException.
14425         * object.h, object.c: added mono_array_clone ().
14426         * icall.c: handle throwOnError in AssemblyGetType().
14427         Added Array.Clone().
14428         * opcode.h, opcode.c: use a single value for the opcode val.
14429         Compile fix for non-gcc compilers.
14430
14431 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
14432
14433         * opcodes.c, opcodes.h: export interesting info about opcodes.
14434
14435 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
14436
14437         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
14438         icalls. 
14439
14440         * class.c (class_compute_field_layout): set element_class for enums
14441         (mono_class_create_from_typedef): set element_class for normal classes
14442
14443         * icall.c (ves_icall_System_Enum_get_value): impl.
14444
14445         * class.c (mono_class_create_from_typedef): do not set valuetype
14446         flag for System.ValueType and System.Enum
14447
14448 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
14449
14450         * unicode.c (iconv_convert): fix big endian problem.
14451
14452 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14453
14454         * class.c: add asserts if we are ever going to scribble over memory.
14455         * socket-io.c: not all systems have AF_IRDA defined.
14456
14457 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
14458
14459         * class.c (class_compute_field_layout): do not consider static
14460         fields to compute alignment
14461
14462 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
14463
14464         * appdomain.c (mono_appdomain_get): impl.
14465         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
14466
14467 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14468
14469         * icall.c: ignore "file://" prefix when loading an assembly.
14470
14471 2002-01-23  Dick Porter  <dick@ximian.com>
14472
14473         * socket-io.c:
14474         * icall.c:
14475         * Makefile.am: Added socket support
14476
14477 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14478
14479         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
14480         code back.  This should return the assemblies that are loaded by
14481         the runtime on behalf of an application domain. 
14482
14483         The current implementation is still broken, it just returns every
14484         assembly loaded, but until we get real applications domain this
14485         will do.
14486
14487 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
14488
14489         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
14490         AppDomain object.
14491
14492 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14493
14494         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
14495         the mono_class_from_name lookup.
14496         (ves_icall_get_parameter_info): ditto.
14497         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
14498         method.
14499         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
14500
14501 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14502
14503         * class.c: load also nested classes on class init.
14504         System.ValueType instance methods gets passed boxed
14505         values, unless methods in derived classed that get a pointer to the
14506         data.
14507         * icall.c: use better name parsing code in GetType().
14508         * image.c, image.h: add mono_image_loaded ().
14509         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
14510         * reflection.c, reflection.h: added mono_reflection_parse_type().
14511
14512 2002-01-22  Veronica De Santis <veron78@interfree.it>
14513
14514         * icall.c : Added mapping of internal calls for Manual and Auto reset events
14515         * threads.c : Added the implementation of internal calls for events
14516         * threads.h : Added prototypes of internal calls for events
14517         
14518 2002-01-21  Radek Doulik  <rodo@ximian.com>
14519
14520         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
14521
14522 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
14523
14524         * class.c (mono_class_init): set min_align to 1 (instead of 0)
14525         (mono_class_value_size): use min_align
14526
14527 2002-01-20  Dick Porter  <dick@ximian.com>
14528
14529         * threads.h:
14530         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
14531         so it compiles on w32.
14532
14533 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
14534
14535         * metadata.c (mono_type_stack_size): impl.
14536
14537         * class.c (mono_class_get_field): impl. memberref token
14538
14539 2002-01-16 Veronica De Santis <veron78@@interfree.it>
14540
14541         * icall.h : Added the internal calls mapping for CreateMutex_internal
14542                     and ReleaseMutex_internal.
14543         * threads.h : Added the prototype of mutexes internal calls.
14544         * threads.c : Added the implementations of mutexes internal calls.
14545
14546 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14547
14548         * metaparse.h: removed unused file.
14549         * reflection.c, reflection.h: added stream_data_align () function 
14550         to align data in streams and keep stream aligned. Add support for
14551         exception support in method headers.
14552
14553 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
14554
14555         * unicode.c: make iconv_convert () return the number of bytess written
14556         in the output buffer.
14557
14558 2002-01-15  Dick Porter  <dick@ximian.com>
14559         * threads.c: Make the runtime's idea of infinite timeouts coincide
14560         with the class library's
14561
14562         Fix a particularly egregious bug in mono_thread_cleanup(). That
14563         code was so utterly bogus it must have been written on a Monday.
14564
14565 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14566
14567         * reflection.h: add subtypes field to TypeBuilder.
14568         * reflection.c: encode constants for literal fields.
14569         Handle subtypes. Fix user string token (and add a zero byte)
14570         at the end.
14571         
14572 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
14573
14574         * class.c (mono_class_init): bug fix: assign slot numbers for
14575         abstract methods.
14576
14577 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14578
14579         * reflection.c: don't try to output a code RVA for abstract methods.
14580         Small fixes for method header format. Output parameter info to the
14581         ParamDef table. Save method overriding info to MethodImpl table.
14582         Fix property support. Allow typedef.extends to be a type in the
14583         building assembly.
14584         * verify.c: fix off-by-one error.
14585
14586 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
14587
14588         * class.c: fix mono_class_from_mono_type () for szarray types.
14589         Remove unused cache check in mono_class_from_type_spec().
14590         * icall.c: *type_from_name () functions handle simple arrays and byref.
14591         * reflection.c: handle byref and szarray types. Handle methods without
14592         body (gets P/Invoke compilation working). Handle types and fields in
14593         get_token ().
14594         * reflection.h: add rank to MonoTypeInfo.
14595
14596 2002-01-10  Dick Porter  <dick@ximian.com>
14597
14598         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
14599         internal calls
14600
14601 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14602
14603         * icall.c: initialize class in type_from_handle ().
14604         Loop also in parent classes for get_method ().
14605         * reflection.c: properly encode class and valuetype types.
14606         Start on encoding TypeBuilder types. Handle fieldrefs.
14607         Use correct length when registering a user string.
14608         Handle ConstructorBuilder and MonoMethod in get_token ().
14609         Make mono_type_get_object () aware of cached types.
14610         * object.c: back out change to mono_string_new ().
14611
14612 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
14613         * object.c: mono_string_new should return a NULL when the string 
14614         passed in is NULL -- not try to deference it.
14615         
14616 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14617
14618         * icall.c: hack to make IsSubType work for TypeBuilders.
14619         * reflection.c: emit constructors before methods.
14620         Retrieve param names in mono_param_get_objects().
14621
14622 2002/01/05  Nick Drochak  <ndrochak@gol.com>
14623
14624         * Makefile.am: fix list of headers and sources so automake 1.5
14625         doesn't complain. Removed \# at end of list.
14626
14627 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14628
14629         * reflection.c: get token for a method ref. Set return type of
14630         constructor to void.
14631         * loader.c: debug message.
14632         * class.c: typo fix.
14633
14634 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
14635
14636         * icall.c: fix array init with rank > 1. FindMembers
14637         loops in parent class as well.
14638         * image.c: do not insert nested types in name cache.
14639         * reflection.c: warning fix.
14640         * reflection.h: add override method (for interface impl).
14641
14642 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
14643
14644         * metadata.c: fix customattr decoding.
14645
14646 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
14647
14648         * rawbuffer.cs: Added native Win32 implementation, avoids using
14649         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
14650
14651 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
14652
14653         * class.c: make the low-level routines handle the cache.
14654
14655 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
14656
14657         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
14658
14659 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
14660
14661         * class.c: fix mono_array_element_size() for objects.
14662         * class.h, class.c: add properties to MonoClass and load them
14663         at init time.
14664         * icall.c: check with isinst() when assigning a value to an array
14665         instead of requiring the classes to match exactly.
14666         Implemented icall for System.Type::GetType().
14667         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
14668         enums. Handle bindingflags when looking for methods and fields.
14669         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
14670         and mono_metadata_methods_from_property().
14671         * reflection.h, reflection.c: added structures for propreties,
14672         parameters and enums. Implemented mono_property_get_object() and
14673         mono_param_get_objects().
14674
14675 2001-12-18  Dick Porter  <dick@ximian.com>
14676
14677         * file-io.c: Use mono_string_to_utf16() instead of
14678         mono_string_chars()
14679
14680         * object.c: Added mono_string_to_utf16(), which copies the non
14681         NULL-terminated MonoString into a new double-null-terminated
14682         buffer.
14683
14684 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
14685
14686         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
14687
14688 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
14689
14690         * file-io.c: raise exceptions if handle is invalid.
14691
14692 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
14693
14694         * assembly.c: yet another check for mscorlib.
14695         * class.c, class.h: load nesting info for classes.
14696         * icall.c: many new functions to support the Reflection classes.
14697         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
14698         * reflection.h, reflection.c: mono_image_create_token(),
14699         mono_assembly_get_object(), mono_type_get_object(),
14700         mono_method_get_object(), mono_field_get_object(): methods to return
14701         objects that parallel the C representation of assemblies, types,
14702         methods, fields.
14703
14704 2001-12-11  Dick Porter  <dick@ximian.com>
14705
14706         * icall.c:
14707         * file-io.c: Internal calls for file IO.
14708
14709 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
14710
14711         * tabledefs.h: missing FileAttributes.
14712         * verify.h, verify.c: use is_valid_string () to simplify and check for
14713         valid strings more correctly. Fix warnings and speeling.
14714         Check more tables: Filed, File, ModuleRef, StandAloneSig.
14715         Check code: branches, maxstack, method calls.
14716
14717 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
14718
14719         * object.c (mono_object_allocate): removed static, so that the jit
14720         can allocate value types.
14721
14722         * icall.c (ves_icall_System_DateTime_GetNow): impl.
14723
14724 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14725
14726         * class.c: init enum types right away and register the
14727         token->MonoClass map in mono_class_create_from_typedef ().
14728         * verify.h, verify.c: first cut of the verifier.
14729         * pedump.c: add --verify switch to verify metadata tables.
14730         * tabledefs.h: add some missing enums.
14731
14732 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
14733
14734         * class.c (mono_install_runtime_class_init): impl.
14735         (mono_class_init): renamed mono_class_metadata_init to
14736         mono_class_init, also removed the metadata_inited flag
14737
14738         * object.c (mono_object_isinst): use faster algorithm
14739
14740 2001-11-30  Radek Doulik  <rodo@ximian.com>
14741
14742         * mono-endian.h: reverted last change
14743         added function prototypes
14744
14745         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
14746         add mono-endian.c back
14747
14748         * mono-endian.c: returned back, as Paolo pointed out, it's needed
14749         for unaligned access, I've mistaked it with endianess. I am
14750         sorry.
14751         (mono_read16): fix reverted endianess
14752         (mono_read64): ditto
14753         (mono_read32): ditto
14754
14755 2001-11-30  Dick Porter  <dick@ximian.com>
14756
14757         * exception.c: Implement mono_exception_from_name()
14758
14759 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14760
14761         * metadata.h, metadata.c: remove params_size and locals_size and their
14762         calculation from the metadata code: they are only usefult to the
14763         interp.
14764
14765 2001-11-29  Radek Doulik  <rodo@ximian.com>
14766
14767         * object.c (mono_ldstr): swap bytes here, it's probably not the
14768         best place, but works for me now, I'll redo it once I know mono
14769         better, also note that I add PROT_WRITE and don't reset back, also
14770         note that it's only affects big endians, so x86 should be OK
14771
14772         * mono-endian.h (read16): use just glib macros for both endians
14773
14774         * mono-endian.c: removed as glib macros are used in in
14775         mono-endian.h so we don't need to care about endianess for read
14776         macros as glib does that for us already
14777
14778 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
14779
14780         * class.h, class.h: take minimum alignment into consideration so
14781         that the fields of a class remain aligned also when in an array.
14782
14783 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14784
14785         * loader.h, loader.c: add mono_method_get_param_names().
14786         * class.c: 0-init class fields.
14787
14788 2001-11-26  Dick Porter  <dick@ximian.com>
14789
14790         * icall.c:
14791         * threads-types.h:
14792         * threads.c: New file that handles System.Threading on all platforms
14793
14794         * object.c: 
14795         * object.h: Remove the synchronisation struct from MonoObject,
14796         replace it with a pointer that gets initialised on demand
14797
14798         * Makefile.am: Replace all the system-specific threading code with
14799         a single file that uses the new wrapper library
14800
14801 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
14802
14803         * class.c, class.h: add mono_install_trampoline() so that the runtime
14804         can register a function to create a trampoline: removes the ugly
14805         requirement that a runtime needed to export arch_create_jit_trampoline.
14806         * object.h, object.c: added mono_install_handler() so that the runtime
14807         can install an handler for exceptions generated in C code (with
14808         mono_raise_exception()). Added C struct for System.Delegate.
14809         * pedump.c: removed arch_create_jit_trampoline.
14810         * reflection.c: some cleanups to allow registering user strings and
14811         later getting a token for methodrefs and fieldrefs before the assembly
14812         is built.
14813         * row-indexes.h: updates and fixes from the new ECMA specs.
14814
14815 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
14816
14817         * class.h, class.c: add enum_basetype field to MonoClass.
14818         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
14819         to get index in the constant table reated to a field, param or
14820         property.
14821         * reflection.h, reflection.c: handle constructors. Set public-key and
14822         version number of the built assembly to 0.
14823         * row-indexes.h: update from new ECMA spec.
14824
14825 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14826
14827         * class.h, class.c: add a max_interface_id to MonoClass.
14828         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
14829         since it's used to do that. Added mono_type_type_from_obj().
14830         Make GetType() return NULL instead of segfaulting if the type was not
14831         found. Handle simple arrays in assQualifiedName.
14832         * object.h: add a struct to represent an Exception.
14833         * reflection.c: output call convention in method signature.
14834         Add code to support P/Invoke methods and fixed offsets for fields.
14835
14836 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
14837
14838         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
14839         the value.
14840         * icall.c: use mono_array_addr instead of array->vector: fixes the
14841         reflection image writing.
14842         * reflection.c: init call convention byte to 0 in method signature.
14843         Encode the property signature. Don't output property-related methods
14844         twice. Really process the properties for a type (don't cast a field to
14845         a property, my mom always told me that).
14846         Fix 64 bit issues in pointer alignment in a different and more
14847         readable way.
14848
14849 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
14850
14851         * loader.h: Removed type class from MonoDefaults, added monotype
14852
14853         * loader.c: Loaded MonoType, removed loading of Type
14854
14855         * icall.c (my_mono_new_object): Now returns a System.MonoType,
14856         and fills in System.Type._impl with a RuntimeTypeHandle rather
14857         than the actual MonoClass *
14858
14859         (ves_icall_type_from_handle): change from type_class to
14860         monotype_class
14861
14862         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
14863         implemented
14864
14865         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
14866         implemented
14867
14868         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
14869
14870         (ves_icall_System_Reflection_Assembly_GetType): implemented
14871
14872         (ves_icall_System_MonoType_assQualifiedName): implemented
14873
14874         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
14875
14876 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
14877
14878         * assembly.c (mono_assembly_open): Implement a cache for the
14879         assemblies. 
14880
14881         (mono_assembly_close): only destroy the assembly when the last
14882         reference is gone.
14883         
14884 2001-11-09  Dick Porter  <dick@ximian.com>
14885
14886         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
14887
14888 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
14889
14890         * class.c (mono_class_metadata_init): bug fix: compute the right slot
14891
14892 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14893
14894         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
14895         from Martin Weindel.
14896         * object.h: add mono_string_chars ().
14897
14898 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
14899
14900         * reflection.c (build_compressed_metadata): Eliminates warnings
14901         and uses 64-bit clean code.
14902
14903         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
14904         (mono_type_equal): Change signature to eliminate warnings.
14905
14906 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14907
14908         * icall.c, loader.c: remove the internalcall array constructors.
14909         Changes to match the new MonoArray structure.
14910         * object.h, object.c: an array object doesn't allocate an extra
14911         vector. Add mono_array_new_full () to create jagged arrays easily.
14912
14913 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14914
14915         * metadata.h, metadata.c: add mono_metadata_field_info () to
14916         retreive all the info about a field from vairous tables.
14917         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
14918         * class.h, class.c: augment MonoClassField with more info.
14919         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
14920         policy and load a field's RVA if needed.
14921
14922 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
14923
14924         * class.c (mono_class_metadata_init): create a trampoline for all
14925         virtual functions instead of actually compiling them.
14926
14927 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
14928
14929         * class.h, class.c: include name in MonoClassField.
14930         * class.c: fix fundamental type of System.Object and System.String.
14931         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
14932         tokens in ldtoken.
14933         * icall.c: remove internalcalls for the Reflection stuff that is now
14934         done in C# code.
14935         * loader.c: mono_field_from_memberref () implementation.
14936         * mono-endian.c: thinko (s/struct/union/g).
14937         * object.c, object.h: make the mono_string_* prototypes actually use
14938         MonoString instead of MonoObject.
14939         * reflection.c, reflection.h: updates for changes in the reflection
14940         code in corlib: we use C structures that map to the actual C# classes.
14941         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
14942         fat method header if needed and use the info from the ILGenerator for
14943         methods. Handle fields in types. Misc fixes.
14944
14945 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
14946
14947         * class.c (mono_class_metadata_init): bug fix: always allocate
14948         space for static class data
14949
14950 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
14951
14952         * class.c (mono_compute_relative_numbering): use relative
14953         numbering to support fast runtime type checks.
14954
14955 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
14956
14957         * class.c (mono_class_create_from_typeref): added debugging output
14958         to print class name when MonoDummy is returned instead of real class
14959
14960 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
14961
14962         * class.c (mono_class_metadata_init): interface offset table now
14963         contains pointers into the vtable - this is more efficient for the jit
14964
14965 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
14966
14967         * class.c (mono_class_metadata_init): use a temporary vtable (the
14968         old algorithm only worked for the interpreter, but not for the jit)
14969
14970 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
14971
14972         * loader.c (method_from_memberref): use mono_class_get to get the
14973         class of an array instead of using System.Array directly.
14974         (mono_get_method): also add MEMBERREF methods to the method cache
14975         which usefull for arrays.
14976
14977 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
14978
14979         * pedump.c (arch_compile_method): added to compute vtable entry
14980
14981         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
14982         number of interfaces.
14983         
14984         * class.h: merged MonoArrayClass into MonoClass
14985
14986         * class.c (mono_class_create_from_typedef): compute the vtable size and
14987         allocate space to include the vtable inside MonoClass
14988         (mono_class_metadata_init): initialize the vtable
14989
14990 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
14991
14992         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
14993         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
14994         * image.c: endian fixes by Laurent Rioux.
14995         * object.h, object.c: rename MonoStringObject to MonoString and
14996         MonoArrayObject to MonoArray. Change some function names to conform to
14997         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
14998         guint16* as first argument, so don't use char*.
14999         Provide macros to do the interesting things on arrays in a portable way.
15000         * threads-pthread.c: updates for the API changes and #include <sched.h>
15001         (required for sched_yield()).
15002         * icall.c: updates for the API changes above.
15003         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
15004         platforms that need them.
15005
15006 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15007
15008         * class.c: set the correct type for all the fundamental
15009         type when loading the class.
15010
15011 2001-10-05  Dick Porter  <dick@ximian.com>
15012
15013         * threads-pthread.c (pthread_mutex_timedlock): Simple
15014         compatibility version for C libraries that lack this call.
15015
15016 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15017
15018         * class.c: MonoTypes stored in MonoClass are stored as
15019         fundamental MonoTypes when the class represents a
15020         fundamental type (System.Int32, ...).
15021         The TypeHandle return by ldtoken is a MonoType*.
15022         * icall.c: ves_icall_get_data_chunk () write out all the
15023         PE/COFF stuff. Implement ves_icall_define_method (),
15024         ves_icall_set_method_body (), ves_icall_type_from_handle ().
15025         * image.c: properly skip unknown streams.
15026         * loader.h, loader.c: add type_class to mono_defaults.
15027         * metadata.c, metadata.h: export compute_size () as
15028         mono_metadata_compute_size () with a better interface.
15029         Typo and C&P fixes.
15030         * pedump.c: don't try to print the entry point RVA if there is no entry point.
15031         * reflection.c, reflection.h: many cleanups, fixes, output method
15032         signatures and headers, typedef and typeref info, compress the metadata
15033         tables, output all the heap streams, cli header etc.
15034         * row-indexes.h: typo fixes.
15035
15036 2001-10-04  Dick Porter  <dick@ximian.com>
15037
15038         * object.h: Add a synchronisation mutex struct to MonoObject
15039
15040         * object.c (mono_new_object): Initialise the object
15041         synchronisation mutexes
15042
15043         * icall.c: System.Threading.Monitor internal calls
15044         
15045         * threads-pthread.h:
15046         * threads-pthread.c: System.Threading.Monitor internal calls
15047
15048         * threads-types.h: New file, includes the system-specific thread
15049         structures
15050         
15051         * threads-pthread-types.h:
15052         * threads-pthread-types.c: New files, handle pthread-specific
15053         synchronisation types
15054
15055         * threads-dummy-types.h: 
15056         * threads-dummy-types.c: New files of dummy support for
15057         thread-specific types
15058
15059         * metadata.c:
15060         * image.c:
15061         * pedump.c: include mono-endian.h not endian.h
15062         
15063         * Makefile.am: More threads files.
15064         Name mono-endian.h not endian.h
15065
15066 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
15067
15068         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
15069         stuff and implement a few more bits.
15070         * icall.c: a field needs to be dereferenced twice. Do not use the same
15071         name for two variables in the same scope.
15072         * image.c, image.h: cleanups.
15073
15074 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
15075
15076         * class.c (mono_class_metadata_init): bug fix: compute the right size
15077
15078 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
15079
15080         * icall.c: implemented some of the Reflection internalcalls.
15081         * image.c, image.h: start writing out the PE/COFF image.
15082         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
15083         that does the reverse than decode_blob_size ().
15084         * object.c: use mono_metadata_encode_value (). Move here
15085         temporary implementation of mono_string_to_utf8 ().
15086         * rawbuffer.c: make malloc_map static.
15087
15088 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15089
15090         * metadata.c: fix type comparison for arrays.
15091         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
15092         Added a couple of new classes to monodefaults.
15093         * icall.c: added a couple of Reflection-related internalcalls.
15094         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
15095         Added a byval_arg MonoType to MonoClass.
15096
15097 2001-09-28  Dick Porter  <dick@ximian.com>
15098
15099         * icall.c:
15100         * threads-pthread.h: 
15101         * threads-pthread.c: Implemented internal calls for
15102         LocalDataStoreSlot operations.  Applied mutexes around all shared
15103         data.  Reworked the thread creation and Start() operations to
15104         avoid a race condition.
15105         
15106         * threads-dummy.h:
15107         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
15108
15109 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
15110
15111         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
15112
15113 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
15114
15115         * class.c, loader.c: warn and return NULL instead of erroring out.
15116         * icall.c: added System.AppDomain::getCurDomain().
15117         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
15118
15119 2001-09-25  Dick Porter  <dick@ximian.com>
15120
15121         * threads-pthread.h:
15122         * threads-pthread.c: Implemented timed thread joining and added
15123         System.Threading.Thread::Join_internal internal call
15124
15125         * icall.c: Added System.Threading.Thread::Join_internal internal call
15126
15127         * threads-dummy.h:
15128         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15129
15130 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15131
15132         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15133         mono_string_intern () to implement the semantics of the ldstr opcode
15134         and the interning of System.Strings.
15135         * icall.c: provide hooks to make String::IsIntern and String::Intern
15136         internalcalls.
15137
15138 2001-09-23  Dick Porter  <dick@ximian.com>
15139
15140         * threads-dummy.c: 
15141         * threads-dummy.h: New files of dummy threading routines
15142
15143         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15144         support code based on system specifics
15145
15146         Rename PTHREAD_LIBS to THREAD_LIBS
15147         
15148 2001-09-23  Dick Porter  <dick@ximian.com>
15149
15150         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15151         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15152         internal calls.
15153         (mono_thread_init): Set up a Thread object instance to return when
15154         the main thread calls Thread.CurrentThread
15155         (mono_thread_cleanup): Wait for all subthreads to exit
15156
15157         * icall.c: New internal calls for System.Threading.Thread::Sleep
15158         (including Schedule) and CurrentThread
15159
15160         * threads.h: New file, to insulate thread-specific stuff from the
15161         rest of the code
15162
15163 2001-09-21  Dick Porter  <dick@ximian.com>
15164
15165         * threads-pthread.h: 
15166         * threads-pthread.c: New file, for handling pthreads-style
15167         threading support.  Start() now starts a new thread and executes
15168         the ThreadStart delegate instance.
15169
15170         * icall.c: Added the internalcall for
15171         System.Threading.Thread::Start_internal
15172
15173         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
15174
15175 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
15176
15177         * loader.c: work around the different signatures for delegates
15178         constructors csc generates in compiled code vs the ones compiled in mscorlib.
15179
15180 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15181
15182         * class.h, class.c: add mono_class_get_field_from_name ().
15183         * *: Fix C comments and other ANSI C issues.
15184
15185 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
15186
15187         * endian.h, assembly.c: fix some endianness issues.
15188
15189 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
15190
15191         * loader.h, load.c: add delegate_class to mono_defaults.
15192         Handle runtime provided methods in mono_get_method ().
15193
15194 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
15195
15196         * loader.c (mono_get_method): use pinvoke for internal call
15197
15198         * icall.c: use pinvoke for internal call
15199
15200         * loader.c (method_from_memberref): set the method name
15201
15202 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
15203
15204         * metadata.c: help the compiler generate better code for
15205         mono_class_from_mono_type ().
15206
15207 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
15208
15209         * class.c (mono_class_metadata_init): delayed computing of the
15210         class size to mono_class_metadata_init ()
15211
15212 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
15213
15214         * class.c, class.h: add an interfaces member to MonoClass.
15215         * image.c, image.h: add assembly_name field to MonoImage
15216         from the assembly table.
15217         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
15218
15219 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15220
15221         * class.c: Handle Array in mono_class_from_mono_type ().
15222         * metadata.c, pedump.c: some endian fixes.
15223
15224 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15225
15226         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
15227         * metadata.c: fix small problem introduced with the latest commit.
15228
15229 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
15230
15231         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
15232         We don't need a MonoMetadata pointer anymore to compare signatures in
15233         mono_metadata_signature_equal (), update callers.
15234         Reduced memory usage an number of allocations for MonoMethodHeader and
15235         MonoMethodSignature.
15236
15237 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
15238
15239         * metadata.c: added compare for szarray.
15240
15241 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
15242
15243         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
15244         and add a couple more types to it and mono_defaults. Give an hint on
15245         classes that need implementing in our corlib and are referenced
15246         in mscorlib.
15247
15248 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
15249
15250         * class.h, class.c: keep track if a class is also an Enum.
15251         * loader.c: Implement a couple more types for use in libffi
15252         marshalling. Gives better diagnostics when failing to dlopen
15253         a library. Set method->klass for P/Invoke methods, too.
15254
15255 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
15256
15257         * class.c, class.h: add a MonoType this_arg to MonoClass that
15258         represents a pointer to an object of the class' type that
15259         can be used by the interpreter and later the type cache.
15260         Add best guess alignment info for valuetype objects.
15261
15262 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
15263
15264         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
15265         into MonoType: one less level of indirection and allocation and
15266         simplifies quite a bit of code. Added cache for MonoTypes that are
15267         used frequently, so that we don't need to allocate them all the time.
15268
15269 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
15270
15271         * class.c (mono_class_create_from_typedef): System.Enum is also a
15272         value type, although it does not derive from System.ValueType
15273         (maybe a bug in the ms compiler?)
15274
15275         * metadata.c (mono_type_size): return the right size for value types
15276
15277         * loader.c (mono_get_method): only initialize method header if not abstract
15278
15279         * class.c (mono_class_from_mono_type): use mono_default values. 
15280
15281 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
15282
15283         * *: use MonoClass pointers instead of <type_tokens>
15284         
15285         * class.h: new flag: metadata_inited.
15286
15287         * class.c (mono_class_metadata_init): impl.
15288         (mono_class_instance_size): impl.
15289         (mono_class_data_size): impl.
15290
15291 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15292
15293         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
15294         MonoClass now has the name and name_space fields. 
15295         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
15296         mono_get_method () takes and optional MonoClass as argument.
15297         Removed mono_typedef_from_name() and added mono_class_token_from_name()
15298         instead that takes advantage of a map from class names to typedef
15299         tokens in MonoImage.
15300
15301 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
15302
15303         * metadata.c: zero is not a valid alignment boundary.
15304         Merge MONO_TYPE_VOID in default decoding code.
15305
15306 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
15307
15308         * image.h: merged MonoMetadata into MonoImage
15309
15310         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
15311         identify the type of elements.
15312
15313 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
15314
15315         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
15316         * cil-coff.h: split MonoMSDOSHeader and add size info.
15317         * image.c: add some consistency checks.
15318         * metadata.c: fix row size computation: one programmer
15319         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15320         add explanation for the locator routine.
15321         Fix decoding of size in method header.
15322         
15323 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
15324
15325         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
15326         (g_concat_dir_and_file): Bring g_concat_dir_and_file
15327         function from gnome-libs.  This uses the right path separator
15328         based on the OS, and also works around a bug in some systems where
15329         a double slash is not allowed. 
15330         (default_assembly_name_resolver): Use g_concat_dir_and_file
15331         (mono_assembly_open): ditto.
15332
15333 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
15334
15335         * metadata.c (mono_metadata_signature_equal): impl.
15336
15337         * *: void is now a realy MonoType (instead of using NULL)
15338         
15339         * metadata.c (do_mono_metadata_parse_type): use
15340         mono_metadata_parse_type to parse void value.
15341
15342 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
15343
15344         * metadata.c, metadata.h: in the signature and method header store
15345         only the space required for holding the loca vars and incoming arguments.
15346
15347 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
15348
15349         * metadata.c (do_mono_metadata_parse_type): treat void like any
15350         other type (instead of assigning NULL);
15351
15352 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
15353
15354         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
15355
15356 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
15357
15358         * image.c (do_mono_image_open): added a cache for arrays.
15359
15360 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15361
15362         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
15363         decode a single column from a row in a metadata table and changes
15364         to take advantage of it in the typedef locator (gives a nice speed up).
15365         Store offset info for function params.
15366
15367 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
15368
15369         * image.h (MONO_IMAGE_IS_CORLIB): removed 
15370
15371 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
15372
15373         * assembly.c: how could mono_assembly_close () had ever worked?
15374         * metadata.c, metadata.h: provide offset info for local vars.
15375         Implement mono_type_size () to take care of alignment as well
15376         as size (it was mono_field_type_size in cli/class.c before).
15377
15378 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
15379
15380         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
15381
15382         * assembly.h (CORLIB_NAME): set to corlib.dll
15383
15384         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
15385
15386 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15387
15388         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
15389         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
15390         tokentype.h: massive namespace cleanup.
15391
15392 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15393
15394         * metadata.h, metadata.c: decode exception clauses when parsing method header.
15395
15396 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
15397
15398         * metadata.c (mono_metadata_free_type): added check for type !=
15399         NULL (void) before calling mono_metadata_free_type()
15400
15401 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
15402
15403         * metadata.h, row_indexes.h: added header with enumerations to use
15404         to index in the columns from tables in metadata and to decode coded
15405         tokens: we should start using this instead of embedding magic numbers
15406         all over the code.
15407
15408 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
15409
15410         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
15411         Move metadata_t info from cli_image_info_t to MonoImage, where
15412         it's easily accessible. Changed all the uses accordingly.
15413         Added the method and class caches to MonoImage.
15414         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
15415         and mono_metadata_decode_value () signature to be more consistent
15416         with the other parse functions (and simplify code). Taken advantage
15417         of zero-length array allocation with GCC. Removed reduntant (and
15418         wrong) MonoFieldType struct and use MonoParam instead. Changed
15419         mono_metadata_parse_field_type () to use common code for parsing.
15420         Added mono_metadata_typedef_from_field () and
15421         mono_metadata_typedef_from_method () to lookup a typedef index from a
15422         field or method token.
15423         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
15424
15425 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
15426
15427         * metadata.c (mono_metadata_parse_field_type): Implement. 
15428         (do_mono_metadata_parse_type): Split engine from
15429         mono_metadata_parse_type, so that we can create smaller structures
15430         for things that just have one pointer to the MonoType (look at
15431         the MonoFieldType)
15432
15433 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
15434
15435         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
15436         as Jan Gray found out, it is incorrect. 
15437
15438 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
15439
15440         * assembly.c: Implement asssembly loading.  This loads an image
15441         and loads all the referenced assemblies.  Come to think of it, we
15442         could always do lazy loading of the assemblies. 
15443
15444         * image.c (mono_image_open): Keep loaded images in a hashtable.
15445
15446         * image.h (MonoImage): Add reference count.
15447
15448 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
15449
15450         * assembly.c (mono_assembly_open): Keep track of the file name in
15451         case the assembly has no ASSEMBLY table.
15452
15453         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
15454         from get.c here.
15455
15456 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
15457
15458         * metadata.c, metadata.h: decode local vars in method header
15459         parse function. Change callers accordingly.
15460
15461 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
15462
15463         * metadata.h, cil-coff.h: protect against multiple inclusion.
15464         Added some new structures to hold information decoded from metadata:
15465         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
15466         and relevant decoding/free functions.
15467         * metadata.c: implement decoding functions. Add warning for out of bounds
15468         index in mono_metadata_locate(). Implement mono_get_method () to retreive
15469         all the info about a method signature and invocation. Remove check on
15470         uninitialized local var in parse_mh() and fix memory leak.
15471
15472 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
15473
15474         * metadata.h: More macros.
15475
15476         * tokentype.h: New file.
15477
15478 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
15479
15480         * assembly.c: added a consistency check and initialize
15481         some structures with g_new0().
15482         * metadata.c: fixed a couple more bugs in table size computation
15483         and add other checks for out-of bound access to metadata.
15484
15485 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
15486
15487         * metatada.c: fix bugs computing table sizes. Spew a
15488         warning when index in string heap is out of bounds.
15489
15490 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
15491
15492         * metadata.h: Add a couple of macros to manipulate tokens. 
15493
15494 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15495
15496         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
15497         cli_section_tables).
15498
15499 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
15500
15501         * metadata.c (mono_metadata_user_string): New function, provides
15502         access to the UserString heap. 
15503
15504 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
15505
15506         * metadata.c: Add inline documentation.
15507
15508 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
15509
15510         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
15511         files. 
15512
15513 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
15514
15515         * typeattr.h: New file, TypeAttribute flags. 
15516
15517 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
15518
15519         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
15520         mono_assembly_ensure_section): Section loading code.
15521         (load_section_tables): Load the sections.
15522
15523         * mono/metadata/metadata.c (mono_metadata_locate_token,
15524         mono_metadata_locate): Functions to locate the information
15525         definition given a token or a table and an index.
15526         (mono_metadata_compute_table_bases): New.
15527         (compute_size): New function to compute the sizes of the various
15528         tables.
15529
15530         * mono/metadata/metadata.h: Finish listing the different index
15531         types. 
15532
15533         * mono/metadata/pedump.c: Improve to dump new information.
15534
15535 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
15536
15537         * mono/metadata/metadata.c: Entered all the tables matching
15538         Beta2. 
15539
15540         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
15541