19cdfe9f28fd2c31276156987d59ac44ec00f3c7
[mono.git] / mono / metadata / ChangeLog
1 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
2
3         * marshal.c (emit_marshal_string): Applied a variant of a patch by
4         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
5         marshalling. Fixes #431304.
6
7 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
8
9         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
10           handle when ref is specified without In or Out.
11
12         Code is contributed under MIT/X11 license.
13
14 2008-09-30  Mark Probst  <mark.probst@gmail.com>
15
16         * loader.c (mono_get_method_constrained): Don't expand method with
17         the class's context, because it's already a method of that class.
18
19 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
20
21         * attach.c : should be correct build fix.
22
23 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
24
25         * attach.c: Fix the previous change.
26
27 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
28
29         * attach.c : quick w32 build fix.
30
31 2008-09-27  Miguel de Icaza  <miguel@novell.com>
32
33         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
34         crashes MonoDevelop: #430455.
35
36 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
37
38         * domain-internals.h (struct _MonoDomain): Move most fields used only by
39         the JIT do MonoJitDomainInfo in ../mini/mini.h.
40
41         * domain.c: Remove initialization/cleanup of the removed fields.
42
43 2008-09-27  Mark Probst  <mark.probst@gmail.com>
44
45         * class.c (mono_class_generic_sharing_enabled): Enable generic
46         code sharing for PPC.
47
48 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
49
50         * attach.c : Fixing the Windows builds.
51
52         Code is contributed under MIT/X11 license.
53
54 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
55
56         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
57         the default generic sharing mode to 'all'.
58
59 2008-09-25  Mark Probst  <mark.probst@gmail.com>
60
61         * generic-sharing.c, class-internals.h: New function for checking
62         whether a method needs a static RGCTX invoke wrapper.  A few
63         funtions moved from mini/generic-sharing.c.
64
65         * icall.c: New function used.
66
67 2008-09-25  Mark Probst  <mark.probst@gmail.com>
68
69         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
70         Static RGCTX invoke wrapping applies to value type methods, too.
71
72         * class.c (mono_class_setup_vtable_general): In generic-shared
73         value types, wrap methods with a static RGCTX invoke wrapper.
74
75 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
76
77         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
78         osx build.
79
80 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
81
82         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
83         register a callback which is called when the finalizer thread is woken
84         up.
85         (finalizer_thread): Call the callback if it exists.
86
87         * attach.h attach.c: New files, implementing the attach mechanism.
88
89         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
90         
91         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
92         by the previous change.
93
94 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
95
96         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
97         loader.c, marshal.c, metadata-internals.h, metadata.c,
98         method-builder.c, object.c, reflection.c: introduced specific functions
99         to allocate from the domain and image mempools and cleaned up most of
100         the code to use them (still missing a few in reflection.c).
101         Keep the loader bytes counter updated.
102
103 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
104
105         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
106         loader-related counters.
107
108 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
109
110         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
111         added more MS-compatible counters.
112
113 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
114
115         * class.c (mono_class_setup_fields): Call setup_fields before accessing
116         class->blittable. Fixes #428217.
117
118 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
119
120         * reflection.c (mono_image_get_field_on_inst_token): Call 
121         field_encode_signature () since that handles custom modifiers too.
122         Fixes #424663.
123
124 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
125
126         * reflection.c (add_custom_modifiers): New helper function to merge custom
127         modifiers stored in objects to a MonoType.
128         (fieldref_encode_signature): Encode custom modifiers.
129         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
130         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
131
132 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
133
134         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
135         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
136         64-bit IL only images because imports are not resolved for IL only images.
137         Special thanks to Bill Holmes for finding this bug and testing the patch.
138         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
139
140         Contributed under MIT/X11 license.
141
142 2008-09-19  Miguel de Icaza  <miguel@novell.com>
143
144         * mono-config.c (dllmap_start): Add support for the bits keyword
145         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
146
147 2008-09-19  Mark Probst  <mark.probst@gmail.com>
148
149         * reflection.c (inflate_mono_method): When the class the method is
150         to be inflated for is itself not inflated, just return the method.
151
152 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
153
154         * mono-perfcounters.c: use more user friendly process instance names.
155
156 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
157
158         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
159           handle "[in] ref" and "[in][out] ref" cases.
160
161         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
162           to mono_mb_create_method.  This was causing problems calling native to
163           managed passing Variants by value.
164
165         Code is contributed under MIT/X11 license.
166
167 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
168
169         * class.c (can_access_internals): Call mono_assembly_load_friends ()
170         before accessing the friend_assembly_names field.
171
172         * assembly.c (mono_assembly_load_friends): Make this callable multiple
173         times.
174         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
175         called lazily when it is needed.
176
177         * metadata-internals.h (struct _MonoAssembly): Add 
178         'friend_assembly_names_inited' flag.
179
180 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
181
182         * mono-perfcounters-def.h: fix the types of a few counters.
183         * mono-perfcounters.c: implemented the instance names getter
184         and a few bugfixes.
185
186 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
187
188         * culture-info-table.h : regenerated.
189
190 2008-09-17  Robert Jordan  <robertj@gmx.net>
191
192         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
193         context bound objects. Fixes #415577.
194
195         Code is contributed under MIT/X11 license.
196
197 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
198
199         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
200         implementation (bug #423582).
201
202 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
203
204         * object.c (mono_object_get_virtual_method): Handle the case method->slot
205         is not set. Fixes #426309.
206
207 2008-09-16  Jb Evain  <jbevain@novell.com>
208
209         * class.c (mono_class_from_name): fix the exported type look up
210         when the type is defined in a referenced assembly.
211
212 2008-09-16  Jb Evain  <jbevain@novell.com>
213
214         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
215         increment the next index counter on each iteration to make that work
216         for more than one type forwarder. Unmanaged part to fix #422929.
217
218 2008-09-15  Mark Probst  <mark.probst@gmail.com>
219
220         * object-internals.h: enum ComInterfaceType in
221         MonoInterfaceTypeAttribute is guint32, not guint16.
222
223 2008-09-12  Mark Probst  <mark.probst@gmail.com>
224
225         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
226         writing code.
227
228 2008-09-11  Mark Probst  <mark.probst@gmail.com>
229
230         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
231         not gboolean.
232
233 2008-09-11  Mark Probst  <mark.probst@gmail.com>
234
235         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
236         Endianness fixes for MonoSymbolFileOffsetTable.
237
238 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
239
240         * process.c (complete_path) : Removing quotes from the 
241           input path.  The glib file routines do not handle file paths
242           that have quotes around them.
243
244         Code is contributed under MIT/X11 license.
245
246 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
247
248         * socket-io.h : Adding a comment to provide locations where 
249           changes to MonoSocketAsyncResult need to be synced.
250
251         Code is contributed under MIT/X11 license.
252
253 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
254
255         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
256         parameters as well. Fixes #425001.
257
258 2008-09-08  Miguel de Icaza  <miguel@novell.com>
259
260         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
261         windows build.
262
263 2008-09-07  Miguel de Icaza  <miguel@novell.com>
264
265         * console-io.c: Add support for tracking the window size if it
266         changes.
267
268         The setup is very simple: the TtySetup function will now return a
269         pointer to a location in memory that tracks the current console
270         size.  The managed code checks its current value every time its
271         queried against the last value set, and updates accordingly.
272
273         With this setup we can work with multiple consoles, and we do not
274         require to poke into managed code from a signal handler.
275
276         Additionally, the environment for COLUMNS and LINES is now handled
277         in unmanaged code.
278
279         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
280
281 2008-09-07  Mark Probst  <mark.probst@gmail.com>
282
283         * marshal.c (mono_type_native_stack_size): Treat
284         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
285
286 2008-09-04  Jb Evain  <jbevain@novell.com>
287
288         * class.c (mono_class_is_assignable_from): fix assignability of nullables
289         to nullables.
290
291 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
292
293         * verify.c (verify_type_compatibility_full): Revert change
294         to allow converting a native int to unmanaged pointer be verifiable
295         under non-strict mode.
296         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
297
298         * verify.c: Added some TODOs.
299
300 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
301
302         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
303           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
304           Changed to use GlobalAlloc for the memory returned on Windows platforms.
305
306         Code is contributed under MIT/X11 license.
307
308 2008-09-02  Jb Evain  <jbevain@novell.com>
309
310         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
311
312 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
313
314         reflection.c (typebuilder_setup_fields): Handle classes with
315         explicit size.
316
317 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
318
319         class.c (mono_class_setup_events): Add memory barrier due to
320         double checked locking.
321         
322         class.c (mono_class_setup_properties): Same.
323
324 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
325
326         * class.c (mono_class_is_assignable_from): Fix the build.
327         
328         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
329         before accessing klass->interface_bitmap. Fixes #421744.
330
331 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
332
333         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
334         the runtime into no-exec mode, useful when running the AOT compiler.
335
336         * appdomain.c gc.c object.c: Avoid executing managed code when running
337         in no-exec mode.
338         
339         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
340
341         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
342         special case when the mono_assembly_loaded () returns NULL because the 
343         search hook is not installed.
344
345 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
346
347         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
348         crashes in bstr marshalling on linux.
349
350 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
351
352         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
353         with more than one parameter.
354
355 2008-08-24  Miguel de Icaza  <miguel@novell.com>
356
357         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
358         start/stop flow control as well when turning off ICANON (allows
359         C-s and C-q to be read by Console.ReadKey).
360
361 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
362
363         * class.c (mono_class_init): Move the initialization of nested classes
364         into mono_class_get_nested_types (). Fixes #418433.
365
366         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
367         flag.
368
369         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
370         iterating tough the nested classes of a class.
371
372 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
373
374         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
375         on arm.
376
377 2008-08-22  Miguel de Icaza  <miguel@novell.com>
378
379         * console-io.c (sigcont_handler): Support signal chaining for
380         SIGCONT.
381
382         (console_set_signal_handlers): Use best practices with sigaction,
383         clear the structure before using it. 
384
385 2008-08-22  Robert Jordan  <robertj@gmx.net>
386
387         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
388         Fix the Windows build.
389
390 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
391
392         * class.c (mono_class_generic_sharing_enabled): Make the default
393         sharing mode 'corlib'.
394
395 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
396
397         * console-io.c (console_set_signal_handlers): Fix a warning.
398
399         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
400         method normally, the JIT will take care of avoiding recursion.
401
402 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
403
404         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
405
406         Code is contributed under MIT/X11 license.
407
408 2008-08-20  Miguel de Icaza  <miguel@novell.com>
409
410         * console-io.c (sigcont_handler): We need to restore the entire
411         termios state, not only the original settings, as things like echo
412         can be controlled after this (Booish exposes this issue with its
413         own ReadLine implementation).
414
415         Additionally, we need to set the terminal back into keypad_xmit
416         mode.
417         
418         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
419         string as a paramter as well.   Otherwise we get different
420         keyboard sequences.
421
422 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
423
424         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
425         delegates with byref out parameter passing. Fixes #351520.
426
427         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
428         a generic context.
429         (mono_type_get_desc): Add the type arguments for GENERICINST.
430         (mono_method_full_name): Stringify the class name using mono_type_full_name
431         so it picks up generic arguments.
432
433 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
434
435         * console-io.c: Removed debug output.
436
437 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
438
439         reflection.c (mono_reflection_create_runtime_class): Alloc
440         the nested classes linked list using the dynamic image mempool.
441         Fixes leak in corlib compilation.
442
443 2008-08-19  Miguel de Icaza  <miguel@novell.com>
444
445         * console-io.c: Fix incredibly annoying behavior on the console
446         after resuming execution after control-z.   This affected every
447         console application.
448
449 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
450
451         * mempool-internals.h: Header for mono private mempool functions. The first
452         two function are for allocating glib linked lists using pools.
453
454         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
455
456         * Makefile.am: Added mempool-internals.h.
457
458 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
459
460         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
461         (mono_domain_free): Ditto.
462
463         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
464         be used by the JIT to store its domain-specific information, instead of putting
465         it directly into MonoDomain.
466
467         * domain.c (mono_install_create_domain_hook): New helper function to install
468         a hook which initializes domain->runtime_info.
469
470         * domain.c (mono_install_free_domain_hook): Ditto.
471         
472 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
473
474         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
475         asserting if the ares parameter is null.
476
477         * mono-perfcounters.c: Fix warnings.
478
479         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
480         is not needed, don't check for interruptions either.
481         (mono_marshal_get_delegate_end_invoke): Ditto.
482
483 2008-08-15  Marek Habersack  <mhabersack@novell.com>
484
485         * mono-perfcounters.c (predef_readonly_counter): added support for
486         reading the ASP.NET Requests Queued counter from another process.
487
488 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
489
490         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
491         MonoImage to simplify the AOT code.
492
493 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
494
495         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
496         marshalling. Fixes #416078.
497
498 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
499         
500         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
501         it is set, looking up the icall address is deferred to the JIT, since 
502         in embedded scenarios, the icall might not be registered in the runtime
503         doing the AOT compilation. Backported from the 2.0 branch.
504
505 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
506
507         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
508         Fixes #415621.
509
510 2008-08-05  Marek Habersack  <mhabersack@novell.com>
511
512         * Makefile.am: added support for cross-compilation.
513
514 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
515
516         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
517
518 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
519
520         * mono-perfcounters.c: jitted methods and jitted bytes counters.
521
522 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
523
524         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
525         mono-perfcounters.c: performance counters implementation.
526
527 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
528
529         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
530         to gpointer, letting the AOT code decide what to store in it.
531
532 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
533
534         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
535           mono_class_setup_methods if the methods are not initialized.
536
537         Code is contributed under MIT/X11 license.
538
539 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
540
541         * verify.c: Remove some debug code I commited by accident.
542
543         * verify.c (mono_method_is_valid_in_context): Change the return value
544         to make possible to distinguish between invalid and unverifiable.
545
546         * verify.c (verifier_load_method): Don't return NULL for unverifiable
547         methods.
548
549 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
550
551         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
552         constraints. Fixes regression in gtest-253.
553
554 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * verify.c (mono_verifier_verify_class): Don't allow generic types
557         with explicit layout.
558
559         * verify.c (mono_method_verify): Check locals and argument types.
560
561 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
562
563         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
564         wait if the thread is in StopRequested state.
565
566         * class.c (mono_class_from_name): Refactor the module searching code into
567         a separate function so it can be reused in the AOT case too.
568
569 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
570
571         * verify.c (mono_type_is_valid_in_context): Improve the error message.
572         Check both the type and it's generic type definition for loader errors.
573         
574         * verify.c (mono_method_is_valid_in_context): Don't generate another
575         error when a type errors occur, this leads to the wrong exception been
576         thrown.
577
578 2008-07-28  Dick Porter  <dick@ximian.com>
579
580         * icall-def.h
581         * process.c
582         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
583         New internal calls to duplicate and close a process handle.
584
585 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
586
587         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
588
589 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
590
591         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
592
593 2008-07-27  Robert Jordan  <robertj@gmx.net>
594
595         * class.c (mono_class_init): Don't compute class.has_finalize for
596         valuetypes. Fixes #412477.
597
598 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
599
600         * verify.c: Implement constraint equivalence checking.
601         This is required when a generic parameter is used as
602         argument to a constrained one.
603
604         Fixes #410637.
605
606 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
607
608         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
609
610         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
611
612         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
613         synch with managed object layout.
614
615 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
616
617         * verify.c (do_branch_op): Handle valuetypes and generic
618         arguments properly.
619
620         * verify.c (do_cmp_op): Same.
621
622         Fixes #410383.
623
624 2008-07-24  Mark Probst  <mark.probst@gmail.com>
625
626         * generic-sharing.c: Fix memory leaks.
627
628         * class.c, class-internals.h: Make
629         mono_class_inflate_generic_type_with_mempool() non-static.
630
631 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
632
633         * pedump.c (dump_verify_info): Dump full class name.
634
635 2008-07-24  Mark Probst  <mark.probst@gmail.com>
636
637         * generic-sharing.c: Removed some old code that didn't do anything.
638
639 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
640         * profiler.c: Added runtime_initialized_event,
641         mono_profiler_install_runtime_initialized and
642         mono_profiler_runtime_initialized. This new hook tells the profiler
643         when the runtime is sufficiently initialized to be able to call
644         mono_thread_attach on the root appdomain.
645         * profiler.h, profiler-private.h: Likewise.
646
647 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
648
649         * verify.c (do_cast): Do boxing for generic arguments as well.
650
651         * class.c (is_nesting_type): Drop generic instantiations before
652         checking for nesting.
653
654         * class.c (can_access_instantiation): Allow access to generic
655         arguments.
656
657 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
658
659         * verify.c (verify_class_for_overlapping_reference_fields):
660         On some cases, the field size might be zero, guard against that.
661         Fix the explicit layout check to work as expected.
662
663 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
664
665         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
666         mono_thread_resume () during shutdown, since the thread we want to abort
667         might be suspended.
668
669 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
670
671         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
672         warning.
673
674         * debug-mono-symfile.c: Fix a warning.
675
676         * mono-perfcounters.c (get_cpu_times): Fix a warning.
677
678         * object.c (mono_class_vtable): Check if exception_type is set, and return
679         NULL as defined by the function comments.
680
681 2008-07-22  Mark Probst  <mark.probst@gmail.com>
682
683         * mempool.c: Use malloc for every single mempool allocation if the
684         configure option is set.  This makes it easier to track mempool
685         allocations with tools like Valgrind.
686
687 2008-07-22  Jb Evain  <jbevain@novell.com>
688
689         * reflection.c (create_dynamic_mono_image): emit the same
690         metadata version that SL2 does when creating a SL2 image.
691
692 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
693
694         * icall-def.h:
695         * icall.c: New icall System.Enum:get_hashcode. This function
696         avoids the overhead of boxing the enum to the underlying type.
697
698 2008-07-21  Mark Probst  <mark.probst@gmail.com>
699
700         * reflection.c (mono_method_get_object): Don't let static RGCTX
701         invoke wrappers get into MonoReflectionMethods.
702
703 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
704
705         * object-internals.h:
706         * object.c: New mono_runtime_class_init_full function
707         that makes throwing the exception optinal.
708
709         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
710         for the case where the exception object is supplied.
711
712 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
713
714         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
715         old ld versions.
716
717         Contributed under MIT/X11 license.
718
719 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
720
721         * string-icalls.c (ves_icall_System_String_InternalSplit):
722         Optimize array allocation by caching the MonoClass of the
723         array type.
724
725         * icall.c (ves_icall_Type_GetMethodsByName): Same.
726
727         * reflection.c (mono_param_get_objects): Same.
728
729 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
730
731         * icall-def.h:
732         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
733         It inflates the given type using the class context.
734
735 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
736
737         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
738         the vtable if it already exists.
739
740         * object-internals.h: Add mono_class_try_get_vtable as part of the
741         internal API.
742
743         * reflection.c (mono_type_get_object): Use the MonoObject from the
744         vtable when possible. Reduces locking contention on reflection heavy
745         code.
746
747 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
748
749         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
750         g_bit_nth_msf () since that macro is not implemented in eglib.
751
752 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
753
754         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
755         on platforms which do not support it.
756
757 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
758
759         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
760
761 2008-07-11  Martin Baulig  <martin@ximian.com>
762
763         * mono-debug-debugger.h
764         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
765
766         * mono-debug-debugger.c
767         (_mono_debugger_interruption_request): New global volatile variable.
768         (mono_debugger_check_interruption): New public function.
769
770         * threads.c
771         (mono_thread_current_check_pending_interrupt): Call
772         mono_debugger_check_interruption().
773         (mono_thread_interruption_checkpoint_request): Likewise.
774
775 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
776
777         * verify.c: Add more type checks for loaded types. Verify the result
778         handle from ldtoken.
779
780 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
781
782         * loader.c (field_from_memberref): Don't crash if the field
783         wasn't found.
784
785 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
786
787         * verify.c: Verify if type and method instantiations
788         don't have invalid VAR or MVAR arguments.
789
790 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
791
792         * verify.c: Fix double free of function pointer list.
793
794 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
795
796         * object.c (mono_string_to_utf8): Comment the new code as it
797         breaks under eglib.
798
799 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
800
801         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
802
803 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
804
805         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
806           is not throw too many times.
807
808         Code is contributed under MIT/X11 license.
809
810 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
811
812         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
813         debugging is turned off.
814
815 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
816
817         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
818
819 2008-07-04  Mark Probst  <mark.probst@gmail.com>
820
821         * class-internals.h, class.c: Added new generic sharing option:
822         Share only stuff in System.Collections.Generic, which is now the
823         default.
824
825 2008-07-04  Mark Probst  <mark.probst@gmail.com>
826
827         * generic-sharing.c, class-internals.h: New function for getting a
828         generic method in a generic class given the corresponding method
829         for a different instantiation of the class.  Partly refactored
830         from mini-trampolines.c.
831
832         * class.c: Make sure generic methods have a class_inst if they are
833         part of a generic class.
834
835         * metadata.c (mono_type_stack_size_internal): Handle type
836         variables.
837
838 2008-07-04  Mark Probst  <mark.probst@gmail.com>
839
840         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
841         Signifies whether information on the this/vtable/mrgctx variable
842         is available.
843
844 2008-07-04  Mark Probst  <mark.probst@gmail.com>
845
846         * object.c, object-internals.h, icall.c: New function
847         mono_delegate_ctor_with_method(), which does the same as
848         mono_delegate_ctor(), but takes an explicit method argument
849         instead of taking the method from the jit info.
850
851         * marshal.c: When creating a delegate with an inflated method take
852         the "this" argument as the target class for the castclass.
853
854 2008-07-03  Mark Probst  <mark.probst@gmail.com>
855
856         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
857         mono_jit_info_table_find() to perform very badly in some cases.
858
859 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
860
861         * icall.c (type_from_typename): Handle 'string'.
862
863         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
864         wrappers into the wrapper_hash, since the key is not a MonoMethod.
865
866 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
867
868         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
869
870         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
871         number of available managed allocator types.
872
873         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
874         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
875
876 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
877
878         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
879         which is a low level lock protecting just the 'jit_code_hash' hash table.
880
881         * domain.c: Initialize+cleanup jit_code_hash_lock.
882         
883 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
884
885         * coree.c (mono_load_coree): Set coree_module_handle global variable only
886         after initialization.
887
888         * coree.h: Make MonoFixupExe internal.
889
890         Contributed under MIT/X11 license.
891
892 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
893
894         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
895         because that is platform independent. Check NumberOfRvaAndSizes in PE32
896         as well.
897         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
898         image being loaded is a CLI image and _CorValidateImage gets called.
899
900         * coree.h: Add MonoLoadImage.
901
902         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
903         instead of LoadLibrary.
904
905         Contributed under MIT/X11 license.
906
907 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
908
909         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
910         for any primitive type.
911
912 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
913
914         * object.c (mono_array_new_specific): Optimize this and the other allocation
915         functions a bit.
916         
917         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
918         domains too if mono_dont_free_domains is set.
919
920         * domain-internals.h (mono_dont_free_domains): New internal option controlling
921         whenever to free appdomain data after it has been unloaded.
922
923         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
924         
925 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
926
927         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
928         (mono_method_get_equivalent_method): Fix a warning.
929
930         * object.c (mono_message_init): Avoid looking up array types for each call.
931
932 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
933
934         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
935         call.
936
937         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
938         even more.
939
940         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
941         each iteration.
942
943         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
944         fields of an enum.
945
946 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
947
948         * object.c (mono_value_box): Fix boxing of nullables.
949
950 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
951
952         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
953         mono_module_handle that is defined by the linker; no initialization required.
954         * coree.h: Remove mono_module_handle, add __ImageBase, update
955         mono_image_open_from_module_handle.
956         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
957         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
958         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
959         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
960         to 4 GB away from image base address. IA64 version is not tested but was very
961         easy to implement and should work if we ever need it.
962         * domain.c (mono_init_internal): Avoid system error message boxes.
963         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
964         with has_entry_point. Handle do_mono_image_load fauilre correctly.
965         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
966         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
967         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
968
969         Contributed under MIT/X11 license.
970
971 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
972
973         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
974         as part of the private mono API.
975         
976         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
977         Do proper argument checking for methods that belong to generic classes.
978         Do proper type resolution for GMFH/2.
979         Fixes #377324.
980         
981 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
982
983         * verify.c (do_switch): Fix a memory corruption bug with
984         the jump index is out of bound.
985
986 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
987
988         * verify.c: Disable debug code.
989
990 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
991
992         * reflection.c (mono_image_get_methodbuilder_token): Use
993         mono_image_get_methodspec_token_for_generic_method_definition
994         instead of mono_image_get_memberref_token. We cache more memberef
995         entries now.
996
997 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
998
999         * verify.c: Inflate exception clause types.
1000         Fixes #402606.
1001         
1002 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1003
1004         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
1005         name.
1006
1007         * reflection.c (mono_image_get_ctorbuilder_token): Same.
1008
1009         * reflection.c (mono_image_create_method_token): Same.
1010
1011 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
1012
1013         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
1014         It does the same as mono_image_get_methodref_token but works on
1015         MethodBuilder.
1016
1017         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
1018         and always generate a methodspec. This follows the old behavior and fixes
1019         the regressions in System.Core. 
1020
1021 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
1022
1023         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
1024         don't event mono_class_get () succeeds. Fixes #402182.
1025
1026 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1027
1028         * metadata-internals.h: Added MonoDynamicImage::methodspec
1029         hashtable to store methodspec tokens created for MethodBuilders.
1030
1031         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
1032         MethodBuilders as open instantiations if a methodspec was requested.
1033
1034         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
1035
1036         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
1037
1038         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
1039
1040         Fixes bug #349190.
1041
1042 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
1043
1044         * loader.c (method_from_methodspec): Avoid crashing if the
1045         method lookup fails.
1046
1047 2008-06-20  Dick Porter  <dick@ximian.com>
1048
1049         * socket-io.c (get_socket_assembly): Cope with Moonlight network
1050         classes being in a different assembly.  Fixes bug 399184.
1051
1052 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
1053
1054         * loader.c (mono_loader_init): Make this callable multiple times.
1055         (mono_dllmap_insert): Call mono_loader_init () so this works even before
1056         the runtime is initialized. Fixes #401755.
1057
1058 2008-06-19  Dick Porter  <dick@ximian.com>
1059
1060         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
1061         Fixes bug 349688.
1062
1063 2008-06-19  Dick Porter  <dick@ximian.com>
1064
1065         * socket-io.c:
1066         * icall-def.h: Implement Socket generic Send() and Receive()
1067         methods.  Fixes bug 395168.
1068
1069 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
1070
1071         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
1072
1073         Contributed under MIT/X11 license.
1074
1075 2008-06-18  Martin Baulig  <martin@ximian.com>
1076
1077         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
1078         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
1079         set to 80.0.  The debugger <-> runtime interface is now frozen as
1080         well.   
1081
1082         * mono-debug.c
1083         (mono_debug_debugger_version): Bump to 4.
1084
1085 2008-06-18  Martin Baulig  <martin@ximian.com>
1086
1087         * debug-mono-symfile.c
1088         (load_symfile): Don't check the minor version.
1089
1090         * debug-mono-symfile.h: Bump the version number to 50.0.
1091
1092 2008-06-18  Martin Baulig  <martin@ximian.com>
1093
1094         * debug-mono-symfile.c
1095         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
1096         minimum required version.
1097
1098 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1099
1100         * reflection.c (mono_custom_attrs_from_property): Fix support for
1101         retriveving cattrs of dynamic inflated generic types.
1102
1103         * reflection.c (mono_custom_attrs_from_event): Same.
1104
1105         * reflection.c (mono_custom_attrs_from_field): Same;
1106
1107         * reflection.c (typebuilder_setup_events): Same cattrs of events.
1108
1109         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
1110         Moved to metadata.c.
1111
1112         * metadata.c: New functions to retrive the equivalent field, event
1113         of property from the generic type definition.
1114
1115         * metadata-internals.h: Added new functions from metadata.c.
1116
1117 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
1118
1119         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
1120         to cached in a mempool is used.
1121
1122         * metadata.c (free_generic_class): In some situations field generic_info type
1123         is not properly dup'ed and leads to double free'ing.
1124
1125         Fixes #400643.
1126
1127 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1128
1129         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
1130         this arguments (will be needed later for generic methods).
1131         Collect stats.
1132
1133 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1134
1135         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
1136         Create a static RGCTX invoke wrapper for methods which require it.
1137
1138 2008-06-17  Mark Probst  <mark.probst@gmail.com>
1139
1140         * object.c, class-internals.h: New function for checking whether
1141         an individual field is special static.
1142
1143 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
1144
1145         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
1146         linear search since the table is sorted.
1147
1148         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
1149         Fixes #324180.
1150
1151 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
1152
1153         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
1154         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
1155
1156         * gc.c (mono_domain_finalize): Allow an infinite timeout.
1157
1158         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
1159         
1160         * threads.c (mono_thread_request_interruption): Get rid of locking, use
1161         InterlockedCompareExchange to query and modify 
1162         thread->interruption_requested.
1163
1164         * object-internals.h (struct _MonoThread): Change interruption_requested
1165         to a gint32 so it can be modified by atomic operations. Add 
1166         'critical_region_level' from the managed side, change small_id to a guint32,
1167         add new set of 'unused' fields.
1168
1169         * appdomain.c: Bump corlib version.
1170
1171 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
1172
1173         * class.c (mono_class_from_name): Search modules as well. Fixes
1174         #322332.
1175
1176 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1177
1178         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
1179         templates.  Templates are generalized with an additional type_argc
1180         argument.  RGCTX templates have type_argc==0, MRGCTX templates
1181         have type_argc>0.
1182
1183         * domain-internals.h, domain.c: New hash table for looking up
1184         MRGCTXs.
1185
1186         * metadata.c, metadata-internals.h: Rename hash and equal
1187         functions for MonoGenericInst's and make them public.
1188
1189         * class-internals.h: New data structures for the MRGCTX.  Macros
1190         for distinguishing slots in the RGCTX and the MRGCTX.
1191
1192 2008-06-13  Mark Probst  <mark.probst@gmail.com>
1193
1194         * object.c (mono_method_get_imt_slot): Put the same methods of
1195         different instantiations of the same generic interface in the same
1196         IMT slots, to make generic sharing simpler.
1197
1198 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1199
1200         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
1201
1202         * metadata.c (mono_metadata_field_info_with_mempool): Added.
1203         This function works just like mono_metadata_field_info, but
1204         accept a mempool as argument to be used allocating memory.
1205
1206         * marshal.c (mono_marshal_load_type_info): Use new function
1207         to load marshal data into image mempool.
1208
1209 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1210
1211         * class.c (mono_class_inflate_generic_type_with_mempool):
1212         This function allows to inflate a generic type using
1213         a mempool.
1214
1215         * class.c (inflate_generic_type): Take a mempool as argument
1216         and use it to do type dup'ing.
1217
1218         * class.c (mono_class_setup_fields): Field type for generic
1219         generic classes are allocated from the image mempool.
1220
1221         * metadata.c (free_generic_class): Inflated field type is
1222         now allocated in the image mempool.
1223
1224 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
1225
1226         * threads.c (thread_cleanup): Free MonoThread::name.
1227
1228 2008-06-12  Marek Habersack  <mhabersack@novell.com>
1229
1230         * appdomain.c (ensure_directory_exists): avoid unnecessary
1231         mkdir(2) calls when the shadow directory already exists.
1232         (mono_make_shadow_copy): copy also satellite assemblies from the
1233         private bin directories.
1234
1235 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1236
1237         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
1238         
1239         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
1240         a page boundary. Fixes #396219.
1241
1242 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1243
1244         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
1245         due to double-checked locking.
1246
1247 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1248
1249         * assembly.c (build_assembly_name): Release memory on failure.
1250
1251         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
1252
1253 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1254
1255         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
1256         memory on failure.
1257
1258 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1259
1260         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
1261         memory on failure.
1262
1263 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1264
1265         * loader.c (field_from_memberref): Check if field signature type is equal
1266         to the non-inflated type of the field. Fixes #398980.
1267
1268 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
1269
1270         * assembly.c (mono_assembly_load_from_full): Call 
1271         mono_assembly_load_friends () outside the assemblies lock, since it can
1272         acquire the loader lock. Fixes #323696.
1273
1274         * reflection.c (resolve_object): Inflate the inst with the context for
1275         FieldOnTypeBuilderInst. Fixes #399010.
1276
1277 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1278
1279         * reflection.c (mono_image_get_field_on_inst_token): Don't
1280         inflate the field to encode it's signature. If it's a
1281         VAR or MVAR it should stay that way in the signature.
1282         Fixes #399047.
1283
1284 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1285
1286         * reflection.c (resolve_object): Release memory of inflated types.
1287
1288 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1289
1290         * loader.c (mono_method_get_signature_full): Remove assert about
1291         loading a methodspec to a generic method. We have such methods, such as
1292         System.Threading.Interlocked::CompareExchange<T>.
1293         This assert was removed since it crashes the verifier when it checks
1294         methods calling CompareExchange<T>.
1295
1296 2008-06-10  Marek Safar  <marek.safar@gmail.com>
1297
1298         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
1299         of Type array and not MonoType.
1300
1301 2008-06-10  Marek Habersack  <mhabersack@novell.com>
1302
1303         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
1304         <lupus@ximian.com>
1305
1306 2008-06-10  Martin Baulig  <martin@ximian.com>
1307
1308         * debug-mono-symfile.h
1309         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
1310         changes to the file format, but we were generating incorrect
1311         source file indices in the line number table due to a bug, which
1312         made backtraces report an incorrect source file.
1313
1314 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
1315
1316         * mono-debug.c: Moved mono_debug_free_method_jit_info from
1317         mini/debug-mini.c to here.
1318
1319         * mono-debug.c (il_offset_from_address): Free memory from find_method.
1320
1321         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
1322         use it to release structs returned by mono_debug_find_method.
1323
1324 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
1325
1326         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
1327         since it needs to set method->slot for all interface methods.
1328
1329 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1330
1331         * class-internals.h: Forgot to add.
1332
1333 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1334
1335         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
1336
1337         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
1338         Lookup the custom attributes from property_hash.
1339
1340         * reflection.c (mono_save_custom_attrs): Save the custom attributes
1341         in property_hash. Allocate all data using the image mempool.
1342
1343         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
1344         for dynamic_custom_attrs to checks if the image is dynamic.
1345
1346 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1347
1348         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
1349         assemblies array.
1350         
1351         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
1352         runtime functions while holding the domain assemblies lock.
1353
1354 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1355
1356         * verify.c: Reapplied the last bit of the reverted changes.
1357
1358 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
1359
1360         * verify.c: Reapplied more of the reverted changes.
1361
1362 2008-06-09  Martin Baulig  <martin@ximian.com>
1363
1364         * debug-mono-symfile.c (load_symfile): Check the major version
1365         first; if it's wrong, don't print the minor version in the error message.
1366
1367 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
1368
1369         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
1370         lock instead of the domain lock to avoid deadlocks, since the thread might
1371         already hold the loader lock.
1372
1373         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
1374         (mono_thread_attach): Ditto.
1375
1376         * monitor.c: Use a TLS variable for holding the current thread id instead
1377         of calling pthread_self ().
1378         (mono_monitor_init_tls): New internal function to initialize the TLS
1379         variable.
1380         (mono_monitor_try_enter_internal): Put the owner == id check after the
1381         owner == 0 check.
1382
1383         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
1384         missed optimizations when using gcc-4.3.
1385
1386 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
1387
1388         * reflection.c (mono_dynamic_image_free): Free the memory
1389         used by MonoGenericParam in MonoDynamicImage::gen_param.
1390
1391         * reflection.c (mono_reflection_setup_generic_class): Allocate
1392         container from mempool.
1393
1394         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
1395         container from mempool.
1396
1397 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1398
1399         * threads.c (mono_set_pending_exception): New internal function to set the
1400         pending exception of the current thread.
1401         (mono_thread_get_and_clear_pending_exception): Check for 
1402         thread->pending_exception as well.
1403
1404         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
1405
1406         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
1407         it can trigger a collection.
1408
1409 2008-06-06  Martin Baulig  <martin@ximian.com>
1410
1411         Merged the `debugger-kahalo' branch.
1412
1413         * mono-debug.h
1414         (MONO_DEBUGGER_VERSION): Bumped to 72.
1415
1416         * debug-mono-symfile.h
1417         (MonoSymbolFileMethodIndexEntry): Removed.
1418         (MonoSymbolFileMethodEntry): New public typedef.
1419         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
1420         (MonoSymbolFileSourceEntry): Remove everything except `index' and
1421         `data_offset'.
1422         (MonoSymbolFileMethodEntry): Removed.
1423         (MonoSymbolFileLexicalBlockEntry): Removed.
1424         (MonoSymbolFileLineNumberEntry): Removed.
1425         (MonoDebugLexicalBlockEntry): Removed.
1426         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
1427         removed `num_il_offsets' and `il_offsets'.
1428         (MonoSymbolFile): Replace `version' with `major_version' and
1429         `minor_version'.
1430         (MONO_SYMBOL_FILE_VERSION): Replace with
1431         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
1432         `MONO_SYMBOL_FILE_MINOR_VERSION'.
1433
1434         * debug-mono-symfile.c
1435         (mono_debug_symfile_lookup_location): Add support for the new line
1436         number table format.
1437
1438 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1439
1440         * metadata.c (free_generic_class): Release the inflated
1441         MonoClass of dynamic generic classes if it's not a generic
1442         type definition.
1443
1444 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1445
1446         * verify.c: Reapplied more of the reverted changes.
1447
1448 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1449
1450         * reflection.c (lookup_custom_attr): Clean the cached flag or
1451         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
1452         for SRE types.
1453
1454 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
1455
1456         * verify.c: Reapplied a small part of the reverted changes.
1457
1458 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
1459
1460         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
1461
1462         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
1463         previously in managed code.
1464         (mono_monitor_exit): Ditto.
1465         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
1466
1467         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
1468         the managed definition.
1469
1470 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1471
1472         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
1473
1474 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1475
1476         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
1477         
1478         * monitor.c: Add some micro optimizations.
1479
1480         * icall.c (type_from_typename): Handle 'bool'.
1481
1482 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
1483
1484         * verify.c: Implement constructor verification per P III 1.8.1.4.
1485         Fixes #396716.
1486
1487 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
1488
1489         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
1490         holding the assemblies lock here too.
1491
1492 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1493
1494         * verify.c: Kill stack_top function.
1495
1496 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1497
1498         * verify.c: Kill stack_get function.
1499
1500 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1501
1502         * verify.c (mono_method_verify): Last change broke the build. Fixed.
1503
1504 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
1505
1506         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
1507         more reliable.
1508
1509         * verify.c (mono_method_verify): Inflate params and locals to avoid
1510         mismatch when checking for compatibility.
1511
1512 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
1513
1514         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
1515         Length prefix should be size in bytes. Fix bug #339530.
1516         
1517         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
1518         Length prefix should be size in bytes. Fix bug #339530.
1519
1520         Code is contributed under MIT/X11 license.
1521
1522 2008-06-05  Bill Holmes <billholmes54@gmail.com>
1523
1524         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
1525
1526         Contributed under MIT/X11 license.
1527
1528 2008-06-05  Martin Baulig  <martin@ximian.com>
1529
1530         * mono-debug-debugger.c
1531         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
1532
1533 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
1534
1535         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
1536         while holding the assemblies lock to prevent deadlocks. Handle the case
1537         where the search hook returns NULL but the assembly was still loaded.
1538         Fixes #323696.
1539
1540         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
1541         modify domain state.
1542
1543 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
1544
1545         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
1546         * Makefile.am (pedump_LDADD): Post-process object files and
1547         add dtrace-generated object file, if necessary.
1548
1549         Code is contributed under MIT/X11 license.
1550
1551 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1552
1553         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
1554
1555 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1556
1557         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
1558
1559 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1560
1561         * threads.c: Try to free everything from the delayed free table
1562         when shutting down threads, and set the variable to NULL after the
1563         table is freed so that calling
1564         mono_thread_hazardous_try_free_all() when shutting down the root
1565         domain doesn't crash.
1566
1567 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
1568
1569         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
1570         the caller if resulting type was inflated.
1571
1572         * class.c (mono_class_create_from_typespec): Free the MonoType if it
1573         was inflated.
1574
1575         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
1576
1577
1578 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
1579
1580         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
1581         class library tests.
1582
1583         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
1584         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
1585         #396989.
1586
1587 2008-06-04  Mark Probst  <mark.probst@gmail.com>
1588
1589         * domain.c, domain-internals.h: The JIT infos are now freed by the
1590         JIT info table code.  They are freed immediately if there only a
1591         single JIT info table in circulation.  If there is more, the free
1592         is delayed via a queue.
1593
1594         * threads.c, threads-types.h: New hazard pointer function for
1595         freeing all freeable delayed items in one sitting.
1596
1597 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1598
1599         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
1600
1601         * reflection.c (typebuilder_setup_properties): Same.
1602
1603         * reflection.c (typebuilder_setup_events): Same.
1604
1605 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1606
1607         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
1608         and use it for allocating memory.
1609
1610         * reflection.c (mono_marshal_spec_from_builder): Same.
1611
1612         * reflection.c: Change code to use new signatures.
1613
1614         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
1615
1616 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1617
1618         * decimal.c (rescale128): Put back one line which was accidently commented
1619         out.
1620         
1621         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
1622         to cause crashes.
1623
1624 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1625
1626         * reflection.c (mono_reflection_generic_class_initialize): Name must
1627         be always malloc'ed so we can free it later on. Do this for field, property
1628         and event.
1629
1630         * metadata.c (free_generic_class): Free field, property and event names.
1631
1632 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1633
1634         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
1635         instead of g_memdup.
1636
1637         * reflection.c (typebuilder_setup_fields): Same.
1638
1639 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1640
1641         * decimal.c (rescale128): Optimize this function a bit more.
1642
1643 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1644
1645         * metadata.c (free_generic_class): Release some memory from
1646         SRE generic classes.
1647
1648 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
1649
1650         * reflection.c (mono_image_get_generic_field_token): No reference
1651         to name is kept, free it.
1652
1653         * reflection.c (mono_reflection_generic_class_initialize): Free
1654         more memory of the inflated field.
1655
1656 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
1657
1658         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
1659         code.
1660
1661 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1662
1663         * reflection.c (mono_dynamic_image_free): Release memory used by
1664         MonoDynamicImage::array_methods elements.
1665
1666         * reflection.c (assembly_add_win32_resources): Release memory after
1667         encoding.
1668
1669 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1670
1671         * decimal.c (log2_32): Use an optimized version for this function too.
1672         
1673         * decimal.c (log2_64): Fix this on 32 bit machines.
1674
1675 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
1676
1677         * class.c (mono_dup_array_type): Implement allocation using a mempool.
1678
1679         * class.c (mono_metadata_signature_deep_dup): Same.
1680
1681         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
1682         a mempool.
1683
1684         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
1685
1686         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
1687
1688         * metadata-internals.h: Added mono_metadata_signature_dup_full.
1689
1690         * class-internals.h: Update signatures to take a MonoMemPool.
1691
1692 2008-06-02  Dick Porter  <dick@ximian.com>
1693
1694         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
1695         * icall-def.h: Add
1696         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
1697         FormatMessage API to get the error text.  Fixes bug 321827.
1698
1699 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
1700
1701         * decimal.c: Add some micro optimizations to make decimal operations faster.
1702
1703 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
1704
1705         * reflection.c (method_encode_clauses): Take a mempool
1706         as parameter and use it to allocate the clause array.
1707
1708         * reflection.c (mono_image_get_field_on_inst_token): Free
1709         the inflated type after encoding it.
1710
1711         * reflection.c (mono_dynamic_image_free): Free each element
1712         of MonoDynamicImage::gen_params.
1713
1714         * reflection.c (reflection_methodbuilder_to_mono_method):
1715         Allocate the generic param array from the mempool.
1716         Allocate signature params from the mempool.
1717
1718         * reflection.c (mono_reflection_generic_class_initialize):
1719         Free inflated fields after been used.
1720
1721 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1722
1723         * icall.c: Reapply the memory leak fixes as they no
1724         longer make mono crash.
1725
1726 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
1727
1728         * reflection.c (mono_type_get_object): Don't store the suplied
1729         MonoType with type_hash. A caller which pass a type that
1730         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
1731         might end with a pointer to freed memory.
1732         The solution is to use byval_arg or this_arg from the associated
1733         MonoClass of the supplied type.
1734
1735 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
1736
1737         * icall.c: Revert the rest of the last change as it breaks the build too.
1738
1739 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1740
1741         * icall.c: Revert a leak fix as it's breaking the build.
1742
1743 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1744
1745         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
1746
1747 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1748
1749         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
1750
1751 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
1752
1753         * icall.c: Fix some memory leaks.
1754
1755 2008-05-29  Dick Porter  <dick@ximian.com>
1756
1757         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
1758         async socket operations from the pending list when a socket
1759         closes.  Leaving it until the threadpool services the event
1760         exposes a race condition when a socket descriptor is reused.
1761         Fixes bug 377589.
1762
1763 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1764
1765         * object.c: Fix negative index check for array alocation.
1766
1767 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1768
1769         * icall.c, marshal.c: Delegate wrappers should skip visibility.
1770         This check is performed by the verifier for IL created delegates
1771         and by Delegate::CreateDelegate for programatically created ones.
1772         Fixes #372406.
1773
1774 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1775
1776         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
1777         Fix code to use mono_array_size_t instead of int.
1778
1779         Based on patch by Luis F. Ortiz.
1780         Contributed under X11 license.
1781         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1782
1783 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1784
1785         * icall.c: Added ves_icall_System_Array_GetLongLength and
1786         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
1787         arrays.
1788
1789         * icall.h: Export both new functions.
1790
1791         Based on patch by Luis F. Ortiz.
1792         Contributed under X11 license.
1793         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1794
1795 2008-05-28  Martin Baulig  <martin@ximian.com>
1796
1797         The debugger now requires exactly r103463.
1798
1799         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
1800         This version is not supported by the debugger, wait for 72.
1801
1802 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1803
1804         * object.h: Changed array related functions to use
1805         mono_array_size_t instead of guint32. Forgot to commit this file.
1806
1807         Patch by Luis F. Ortiz.
1808         Contributed under X11 license.
1809         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1810
1811
1812 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
1813
1814         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
1815         don't define it. Use the number literal instead.
1816
1817 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1818
1819         * icall.c: Changed array related functions to use
1820         mono_array_size_t instead of guint32.
1821
1822         * icall.c (ves_icall_System_Array_GetLength): Check for length
1823         overflow under MONO_BIG_ARRAYS.
1824
1825         Based on patch by Luis F. Ortiz.
1826         Contributed under X11 license.
1827         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1828
1829 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1830
1831         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
1832
1833         Based on patch by Luis F. Ortiz.
1834         Contributed under X11 license.
1835         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1836
1837 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1838
1839         * object.c, object.h: Changed array related functions to use
1840         mono_array_size_t instead of guint32.
1841
1842         Patch by Luis F. Ortiz.
1843         Contributed under X11 license.
1844         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1845
1846 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
1847
1848         * object.h: Introduced mono_array_size_t typedef. This must be used
1849         in all places an array length is expected. This is 64bits wide if
1850         MONO_BIG_ARRAYS is enabled.
1851
1852         Patch by Luis F. Ortiz.
1853         Contributed under X11 license.
1854         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
1855
1856 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
1857
1858         * security-manager.c class.c: Set the class exception info by calling
1859         mono_class_set_failure ().
1860
1861         * class.c (mono_class_get_exception_data): New accessor function.
1862         (mono_class_set_failure): Store exception_data in the property hash.
1863
1864         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
1865         the struct as a property.
1866
1867         * loader.c (mono_get_method_full): Store the lookup result for method
1868         tokens in method_cache, the others in methodref_cache to decrease the memory
1869         usage of hash tables.
1870
1871         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
1872         (mono_image_init): method_cache is lazy inited now.
1873
1874         * metadata-internals.h (struct _MonoImage): Change method_cache to
1875         a MonoValueHashTable, add a separate methodref_cache.
1876
1877 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
1878
1879         * number-formatter.h: Fix tables to avoid arithemtic overflow in
1880           Double.ToString as exposed by Bug #383531.
1881
1882 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
1883
1884         * number-formatter.h: Make some tables static.
1885
1886         * class.c (mono_method_set_generic_container): New accessor function.
1887         (mono_method_get_generic_container): Ditto.
1888
1889         * class-internals.h (struct _MonoMethod): Remove rarely used 
1890         'generic_container' field, store it in the property hash instead. Add 
1891         'is_generic' boolean field instead.
1892
1893         * image.c (mono_image_init): Initialize property_hash.
1894         (mono_image_close): Destroy property_hash.
1895
1896         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
1897         hold rarely used fields of runtime structures belonging to this image.
1898
1899         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
1900         to get/set method->generic_container.
1901
1902         * loader.c (mono_get_method_from_token): Avoid loading the method header for
1903         generic methods.
1904
1905 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
1906
1907         * class.c (mono_class_inflate_generic_method_full): Don't increase
1908         mono_stats.inflated_method_count for methods found in the cache.
1909
1910         * threads.c (mono_thread_request_interruption): Add a comment about 
1911         QueueUserAPC ().
1912
1913 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
1914
1915         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
1916         interface_offsets_packed table.
1917         
1918         * class.c (mono_class_init): Remove some dead code.
1919
1920         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
1921         mono_class_setup_vtable () when CAS is active to detect security problems.
1922
1923 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
1924
1925         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
1926
1927         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
1928         parameters as it's irrelevant for delegate checking.
1929
1930 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
1931
1932         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
1933
1934         * class.c (mono_class_init): Control the creation of a generic vtable using
1935         a global which is true by default, but set to false by the runtime startup code.
1936         
1937         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
1938         Disabled for now since it breaks the embedding API.
1939         Move the setup of class->methods for arrays to mono_class_setup_methods ().
1940         (mono_class_setup_methods): Add a memory barrier.
1941
1942         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
1943         when mono_class_init () doesn't compute the generic vtable.
1944         
1945 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
1946         * profiler.c: Added mono_profiler_install_statistical_call_chain,
1947         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
1948         to support call chains (backtrace) in the stat profiler.
1949         * profiler.c, profiler-private.h: Likewise.
1950
1951 2008-05-22  Mark Probst  <mark.probst@gmail.com>
1952
1953         * generic-sharing.c: Init generic class when a method of it is
1954         requested via a runtime generic context.
1955
1956 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
1957
1958         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
1959
1960         * reflection.c (mono_type_get_object): Add a FIXME.
1961
1962         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
1963
1964         * class.c (mono_class_get_method_by_index): New helper function, returning an
1965         entry in the class->methods array.
1966
1967 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
1968
1969         * class.c (mono_class_init): Only do the array optimization for szarrays. 
1970         Avoid creating a generic vtable for generic instances as well.
1971         (mono_class_get_method_from_name_flags): Don't search in the metadata for
1972         generic instances.
1973
1974 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
1975
1976         * loader.c (mono_get_method_constrained): Inflate the signature
1977         with class context. Fix #325283.
1978
1979 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
1980
1981         * object.c (mono_class_create_runtime_vtable): Add a comment.
1982
1983         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
1984         where needed.
1985         (setup_interface_offsets): Handle the case when this is called twice for arrays.
1986         (mono_class_setup_vtable_general): Add an assert.
1987         (mono_class_init): Avoid creating a generic vtable for arrays.
1988
1989         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
1990         here, let mono_class_init () do that.
1991
1992         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
1993         interfaces in mscorlib.
1994
1995         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
1996         interfaces. Add some comments.
1997         (mono_class_init): Call mono_class_setup_methods () here since it is no
1998         longer called by mono_class_setup_vtable ().
1999
2000         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
2001         not set in class->vtable.
2002         (mono_class_create_runtime_vtable): Reenable the disabled code.
2003
2004         * object.c (mono_class_create_runtime_vtable): Disable the last change for
2005         now as it causes some test failures.
2006
2007         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
2008         if using the vtable trampoline. Also remove some strange code which put the
2009         generic methods themselves into the vtable slots. Remove the AOT init_vtable
2010         stuff as it is no longer needed.
2011
2012 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
2013
2014         * pedump.c: Give make --verify all option check code as well.
2015         Using --verify code won't check for metadata now.
2016
2017 2008-05-19  Martin Baulig  <martin@ximian.com>
2018
2019         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
2020
2021         * mono-debug.c
2022         (_mono_debug_using_mono_debugger): New global variable; it's set
2023         directly by the debugger, so mono_debug_using_mono_debugger() also
2024         works after attaching.
2025
2026 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
2027
2028         * object.c (mono_class_create_runtime_vtable): Use memory barriers
2029         as we do double checked locking on MonoClass::runtime_info and
2030         MonoClassRuntimeInfo::domain_vtables.
2031
2032 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
2033
2034         * debug-helpers.c (print_field_value): Fix a warning.
2035
2036 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
2037
2038         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
2039         set in the AOT case.
2040
2041 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2042
2043         * class.c (mono_class_setup_vtable_general): Use memory barriers
2044         as we do double checked locking on MonoClass::vtable.
2045
2046 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
2047
2048         * reflection.c (resolve_object): Inflate only if the generic context
2049         is not null. Fixes #389886.
2050
2051 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
2052
2053         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
2054         instead of g_free.
2055
2056         Code is contributed under MIT/X11 license.
2057
2058 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2059
2060         * class.c: Revert unrelated change.
2061
2062 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2063
2064         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
2065         a generic instantiation, use mono_class_from_mono_type instead of playing
2066         with MonoType directly.
2067
2068 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
2069
2070         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
2071         checks must ignore generic instantiations, so mono_class_has_parent is not
2072         suitable. Fixes #390128.
2073
2074 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
2075
2076         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
2077         it to avoid registering tokens during metadata generation. Fixes #390023.
2078
2079 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2080
2081         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
2082         consistent.
2083
2084         Contributed under MIT/X11 license.
2085
2086 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
2087
2088         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
2089         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
2090         to fixup the EXE image.
2091         (mono_cleanup): Use mono_close_exe_image.
2092         (mono_close_exe_image): New function.
2093         * image.c: Include "marshal.h".
2094         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
2095         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
2096         counting when the image is loaded outside of mono_image_open_full. Set status
2097         based on GetLastError.
2098         * coree.c: Include required headers. Add init_from_coree.
2099         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
2100         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
2101         (_CorExeMain): Set init_from_coree.
2102         (CorExitProcess): Only call ExitProcess for now.
2103         (CorBindToRuntimeEx): New stub implementation.
2104         (CorBindToRuntime): New function.
2105         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
2106         (MonoFixupExe): ILONLY executables require no fixups.
2107         (mono_set_act_ctx): New function to set activation context.
2108         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
2109         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
2110         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
2111         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
2112         as MONO_INTERNAL.
2113         * domain-internals.h: Add mono_close_exe_image.
2114
2115         Contributed under MIT/X11 license.
2116
2117 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
2118
2119         * metadata.c (mono_metadata_compute_size): Correctly calculate field
2120         size for generic param and event tables. Fixes #388977.
2121
2122 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
2123
2124         * loader.c (mono_method_signature): Use memory barriers because of the double
2125         checked locking pattern.
2126
2127         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
2128         aborting or aborted as well. Fixes #376391.
2129         
2130         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
2131         existing runtime state in the Suspend handler during shutdown.
2132
2133 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
2134
2135         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
2136
2137         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
2138         which are starting up or shutting down.
2139
2140         * threads.c (mono_threads_set_shutting_down): Don't return a value since
2141         this function never returns if the runtime is already shutting down.
2142
2143         * icall.c (ves_icall_System_Environment_Exit): Update after 
2144         mono_threads_set_shutting_down () signature change.
2145         
2146 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
2147
2148         * class.c: Added can_access_instantiation to verify if the instantiation
2149         is visible. Fix access check for nested types as they returned TRUE
2150         before doing type and generic instantiation visibility checks.
2151
2152 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2153
2154         * reflection.c (mono_reflection_create_generic_class): The created type
2155         must have a different container from its TypeBuilder. Otherwise they
2156         will end sharing generic arguments, which is wrong.
2157
2158         Due to the sharing, making a generic instance of the created type using
2159         the TypeBuider generic arguments resulted in the generic type definition
2160         been returned, which is wrong as well.
2161
2162         As a bonus the code was leaking the type_params array. This memory should
2163         be allocated from the image mempool.
2164
2165         This fixes bug #354047.
2166
2167 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
2168
2169         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
2170         to here         as they are now used in assembly.c new code.
2171         Added a skipverification flag to MonoAssembly.
2172         New internal function mono_assembly_has_skip_verification.
2173
2174         * assembly.c: New function mono_assembly_has_skip_verification. It checks
2175         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
2176         part of #387274.
2177
2178 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2179
2180         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
2181         needed. Fixes #387034.
2182
2183         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
2184
2185 2008-05-06  Miguel de Icaza  <miguel@novell.com>
2186
2187         * assembly.c (mono_assembly_load_reference): Prevent crash while
2188         disassembling Silverlight 2.0 executables while we still do not
2189         have GACed libraries.
2190
2191 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
2192
2193         * reflection.c: Special case generic type definitions as well. Fixes #383444.
2194
2195 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
2196
2197         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
2198         of the dynamic case. Fixes #387404.
2199
2200 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2201
2202         *verify.c (mono_verifier_is_class_full_trust): If under
2203         verify_all and the verifier mode was not set, only
2204         gac and corlib types are fulltrust. This makes --verify-all
2205         usable to detect unverifiable code, which is the expected
2206         use case.
2207
2208 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2209
2210         * verify.h: Ops, commited the header with debug
2211         enabled.
2212
2213 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
2214
2215         * verify.c (merge_stack): Use the new value on unverifiable
2216         stack merges.
2217
2218         * verify.c (verify_type_compatibility_full): Comparison
2219         of nullable types can't use mono_class_is_assignable_from.
2220
2221         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
2222         that makes all verification errors be reported.
2223
2224         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
2225         mono_method_verify.
2226
2227 2008-05-05  Robert Jordan  <robertj@gmx.net>
2228
2229         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
2230         support for value types. See #386415.
2231
2232         * object.c: comments.
2233
2234         Code is contributed under MIT/X11 license.
2235
2236 2008-05-05  Martin Baulig  <martin@ximian.com>
2237
2238         * debug-mono-symfile.h
2239         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
2240         for old pre-terrania symbol files.
2241
2242 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2243
2244         * mono-config.c: Add ppc64 architecture.
2245
2246         Code is contributed under MIT/X11 license.
2247
2248 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
2249
2250         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
2251           PPC64 uses function descriptors as well.
2252
2253         Code is contributed under MIT/X11 license.
2254
2255 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
2256
2257         * object.c (compute_class_bitmap): Ignore literal static fields.
2258
2259         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
2260         var has an invalid format.
2261         (describe_ptr): Add some sanity checks for the vtable.
2262         (add_nursery_frag): Clear unused nursery fragments.
2263         (major_collection): Clear all remaining nursery fragments.
2264
2265 2008-05-03  Robert Jordan  <robertj@gmx.net>
2266
2267         * image.c, metadata-internals.h: add thunk_invoke_cache.
2268
2269         * marshal.c, marshal.h: implement
2270         mono_marshal_get_thunk_invoke_wrapper ().
2271
2272         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
2273
2274         Code is contributed under MIT/X11 license.
2275
2276 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2277
2278         * verify.c (do_leave): Empty the stack.
2279
2280 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
2281
2282         * class.c (mono_class_is_assignable_from): Variance
2283         doesn't work between reference and value types. For example,
2284         given type C<T+>, C<int32> is not assignable to C<object>.
2285         Break the argument checking loop on first error. 
2286
2287 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
2288
2289         * icall.c : base64_to_byte_array() needs some more strict
2290           check for sequence of '=' characters. Patch by Santa
2291           Marta (http://deee.g.hatena.ne.jp/santamarta).
2292
2293           Contributed under MIT/X11 license.
2294           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
2295
2296 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
2297
2298         * domain.c: Disable LoadLibrary support to fix Win32 build.
2299
2300         Code is contributed under MIT/X11 license.
2301
2302 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
2303
2304         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
2305         to help with cache behaviour.
2306
2307 2008-05-01  Miguel de Icaza  <miguel@novell.com>
2308
2309         * appdomain.c (mono_domain_from_appdomain): Add new accessor
2310         method. 
2311
2312 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
2313
2314         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
2315
2316 2008-05-01  Dick Porter  <dick@ximian.com>
2317
2318         * process.c (process_get_fileversion): Only pass 16 bits of
2319         language ID to VerLanguageName.  Fixes bug 381204.
2320
2321 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2322
2323         * verify.c (mono_method_verify): Fix the comparison
2324         operator for code bounds check.
2325
2326 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
2327
2328         * verify.c (mono_method_verify): Check the bounds of
2329         all access of the code array.
2330
2331 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
2332
2333         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
2334
2335 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
2336
2337         * image.c (mono_image_strong_name_position): Fix return value when the rva is
2338         not valid.
2339
2340 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
2341
2342         * loader.c (mono_get_method_from_token, mono_method_signature): Add
2343         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
2344         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
2345         fixup main EXE images when using mono.exe for mixed-mode assembly support.
2346         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
2347         mono_runtime_load.
2348         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
2349         runtime initialization from metadata.
2350         * assembly.c: Remove obsolete ceGetModuleFileNameA.
2351         (mono_set_rootdir): Use mono_get_module_file_name.
2352         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
2353         handles.
2354         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
2355         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
2356         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
2357         MonoCLIImageInfo. Add support for module handles.
2358         (load_cli_header): Update mono_cli_rva_image_map signature.
2359         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
2360         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
2361         (mono_image_rva_map): Add support for module handles.
2362         (mono_image_ensure_section_idx): Add support for module handles.
2363         (mono_image_close): Add support for module handles.
2364         (do_load_header): Add support for module handles.
2365         (mono_image_open_from_module_handle): New function for internal use.
2366         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
2367         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
2368         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
2369         handles.
2370         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
2371         * image.h: Add mono_image_fixup_vtable.
2372         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
2373         support.
2374         * coree.h: New file.
2375         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
2376         unsupported native code.
2377         (mono_marshal_set_callconv_from_modopt): New function splitted from
2378         mono_marshal_get_managed_wrapper.
2379         (mono_marshal_get_managed_wrapper): Use
2380         mono_marshal_set_callconv_from_modopt.
2381         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
2382         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
2383         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
2384         that results in a deadlock when the runtime is loaded in _CorDllMain.
2385         * Makefile.am: Add coree.c and coree.h.
2386
2387         Contributed under MIT/X11 license.
2388
2389 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2390
2391         * generic-sharing.c: Search for type arguments in array element
2392         types as well.
2393
2394 2008-04-28  Mark Probst  <mark.probst@gmail.com>
2395
2396         * class-internals.h, generic-sharing.c: New, small runtime generic context.
2397
2398         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
2399
2400         * object.c: Don't setup the RGCTX when the vtable is created,
2401         because we're setting it up lazily now.
2402
2403 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
2404
2405         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
2406         64 bit support.
2407
2408 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2409
2410         * verify.c (verify_class_for_overlapping_reference_fields): 
2411         If class is under fulltrust allow reference types to overllap
2412         if they have the same RVA.
2413
2414 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
2415
2416         * pedump.c: Added new flag valid-only, that makes the verifier
2417         behaves just like --security=validil. It won't fail type load
2418         due to unverifiable restrictions.
2419
2420 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2421
2422         * class-internals.h (struct MonoMethod): Added a verification_success
2423         field to cache verifier executions. Reduced MonoMethod:slot size by
2424         one bit.
2425
2426 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
2427
2428         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
2429         instead of a 'vt' argument to save an indirection and to allow these to be used
2430         for valuetypes.
2431         (scan_vtype): New helper function to scan an area using a gc descriptor.
2432         (mono_gc_wbarrier_value_copy): Implement this.
2433         (handle_remset): Add support for REMSET_VTYPE.
2434         (find_in_remset_loc): Ditto.
2435         (mono_gc_base_init): Allow some debugging options to be controlled through the
2436         use of the MONO_GC_DEBUG env variable.
2437         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
2438         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
2439
2440 2008-04-23  Martin Baulig  <martin@ximian.com>
2441
2442         * domain.c (mono_domain_create): Move the call to
2443         mono_debug_domain_create() down, after allocating the domain id.
2444
2445 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
2446
2447         verify.c (verify_class_for_overlapping_reference_fields): Skip
2448         static fields while verifying for overlapping fields as they
2449         don't matter at all.
2450
2451 2008-04-23  Marek Habersack  <mhabersack@novell.com>
2452
2453         * domain-internals.h: added a declaration of
2454         mono_make_shadow_copy.
2455
2456         * assembly.c (mono_assembly_open_full): shadow copying of
2457         assemblies moved to here, so that all the assemblies within the
2458         application domain's private binary directories can be
2459         processed. Fixes bug #380546
2460
2461         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
2462         mono_make_shadow_copy and made non-static. The decision whether
2463         to shadow-copy an assembly is made based on its location - it's
2464         copied if it's in one of the private application domain binary
2465         directories and its different to the target file in the shadow
2466         directory. Fixes bug #380546
2467
2468 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
2469
2470         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
2471
2472         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
2473         types.
2474
2475         * reflection.c (mono_image_create_token): Handle 
2476         Method/ConstructorOnTypeBuilderInst.
2477         (resolve_object): Ditto.
2478         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
2479         so it can be called from resolve_object. Also handle the case when the inflated
2480         class already has its methods setup.
2481
2482 2008-04-21  Martin Baulig  <martin@ximian.com>
2483
2484         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
2485
2486 2008-04-20  Geoff Norton  <gnorton@novell.com>
2487
2488         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
2489         pointer dereference.
2490
2491 2008-04-15  Marek Habersack  <mhabersack@novell.com>
2492
2493         * appdomain.c (try_load_from): if IOMAP is in effect, call the
2494         portability API to look up the assembly file. Fixes behavior in
2495         situations when the application has a bin/ directory, but the
2496         assembly search patch refers to Bin/ (and thus the requested file
2497         name is Bin/SomeLibrary.dll). Fixes bug #379888
2498
2499 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
2500
2501         verify.c (mono_type_is_generic_argument): Extracted this check
2502         from a dozen places to here.
2503
2504         verify.c: Fixed all issues related to boxing generic arguments
2505         and their constraints.
2506
2507 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
2508
2509         verify.c (mono_class_interface_implements_interface): Fix win32 build.
2510
2511 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
2512
2513         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
2514         isn't finished yet. Fixes #363447.
2515
2516 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
2517
2518         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
2519         Fixes #346419.
2520
2521 2008-04-13  Jb Evain  <jbevain@novell.com>
2522
2523         * domain.c: update the 2.1 profile versions.
2524         Merged from the Moonlight 2 branch.
2525
2526 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
2527
2528         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
2529         mscorlibs for the non-refonly case as well.
2530
2531         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
2532         in mono_assembly_load_from_full (). Fixes #378924.
2533
2534 2008-04-11  Geoff Norton  <gnorton@novell.com>
2535
2536         * icall.c: The global extern environ doesn't exist on Mac.  We
2537         need to call NSGetEnviron instead.
2538
2539 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2540
2541         verify.c: Add generic method constraint verification.
2542
2543 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2544
2545         class.c (mono_class_inflate_generic_method_full): Add a long
2546         explanation to the is_mb_open hack. Remove the FIXME.
2547
2548 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2549
2550         * verify.c (mono_method_verify): Mark all unknown opcodes
2551         as invalid. Mark jmp as unverifiable.
2552
2553 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2554
2555         * verify.c: Add code to do type constraint verification on class instances.
2556
2557         * verify.c (mono_verifier_verify_class): Use the type constraint 
2558         verification code.
2559
2560 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
2561
2562         * class.c (mono_class_get_field_default_value): Don't pass cindex
2563         as hint to mono_metadata_get_constant_index. The local is not initialized
2564         and should contain garbage most of the time. This could only work
2565         with a lot of luck.
2566
2567 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2568
2569         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
2570
2571 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
2572
2573         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
2574
2575         * class.c (mono_class_from_generic_parameter): Save the token of the
2576         generic param in MonoClass::sizes.generic_param_token.
2577
2578         * reflection.c (mono_custom_attrs_from_class): If the class type is
2579         VAR or MVAR retrieve the attributes of the generic param.
2580
2581 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2582
2583         * class.c (mono_class_init): Do class verification if the verifier
2584         is enabled.
2585
2586 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2587
2588         * verify-internal.h: Added mono_verifier_verify_class.
2589
2590         * verify.c: Added mono_verifier_verify_class. It checks for
2591         classes with explicit layout that have overlapping reference fields.
2592
2593         * pedump.c: Init the verifier state prior to verification. Fixed
2594         command line arguments.
2595
2596 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
2597
2598         * Makefile.am: Added verify-internals.h, hopefully fix the build.
2599
2600 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
2601
2602         * verify-internals.h: Fix a warning.
2603
2604 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2605
2606         * verify-internals.h: New header with the verifier configuration
2607         extracted from mini.c.
2608
2609         * verify.c: Implemented the new functions exported by verify-internals.h.
2610
2611 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
2612
2613         * verify.c: Add proper verification of ckfinite.
2614
2615 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2616
2617         * verify.c (do_conversion): Improved error message to something
2618         more meanfull.
2619
2620         * verify.c (check_is_valid_type_for_field_ops): Fix to work
2621         with primitive types.
2622
2623 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2624
2625         * verify.c: Added tail prefix checking. Marked icall
2626         as unverifible.
2627
2628 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
2629
2630         * verify.c: Fix the detection of branches to the middle
2631         of an instruction.
2632
2633 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
2634
2635         * verify.c: Implemented verification of volatile. and
2636         unaligned. prefix. Check if a type is valid after retrieving it.
2637
2638 2008-04-01  Dick Porter  <dick@ximian.com>
2639
2640         * process.c (process_get_fileversion): If there's no string block,
2641         set the file language to en_US.  Fixes the other new part of bug
2642         374600.
2643
2644 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
2645
2646         * class.c: New functions mono_method_can_access_field_full and
2647         mono_method_can_access_method_full. They perform type visibility
2648         and type site check.
2649
2650         * class-internal.h: Added exported functions.
2651
2652         * verify.c: Use new functions to implement proper visibility checks.
2653
2654 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
2655
2656         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
2657
2658 2008-03-28  Dick Porter  <dick@ximian.com>
2659
2660         * process.c (process_get_fileversion): Use the first language ID
2661         we see, rather than insisting on an invariant language.  Fixes bug
2662         374600.
2663
2664 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
2665
2666         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
2667         the streams to fix reading of invalid memory later.
2668
2669         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
2670         to ease debugging.
2671
2672 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
2673
2674         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
2675         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
2676
2677 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
2678         * threads.h: Added MonoThreadManageCallback type and
2679         mono_thread_set_manage_callback prototype
2680         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
2681         (used to store the mono_thread_manage callback).
2682         * threads.c: Added mono_thread_set_manage_callback, and handle
2683         "MonoThread->manage_callback" in build_wait_tids.
2684
2685 2008-03-26  Dick Porter  <dick@ximian.com>
2686
2687         * process.c (process_get_fileversion): Set FileVersionInfo strings
2688         to Empty when the resource doesn't have the particular info.
2689         Fixes bug 355717.
2690
2691 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
2692
2693         * verify.c (mono_method_verify): Proper prefix validation.
2694
2695 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
2696
2697         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
2698         itself in a separate argument instead of throwing them. Fixes #373448.
2699
2700         * appdomain.c: Bump corlib version.
2701
2702 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
2703
2704         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
2705
2706 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
2707
2708         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
2709         version macros.
2710
2711 2008-03-20  Mark Probst  <mark.probst@gmail.com>
2712
2713         * generic-sharing.c, class-internals.h: Code for putting
2714         reflection types into the runtime generic context.
2715
2716 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
2717
2718         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
2719         Fixes #340662. 
2720
2721
2722 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
2723
2724         * verify.c (VerifyContext): Added instruction prefix data to the struct.
2725
2726         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
2727
2728         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
2729
2730         * verify.c (do_cast): Let the result value keep the boxed status.
2731
2732         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
2733
2734 2008-03-17  Jb Evain  <jbevain@novell.com>
2735
2736         * reflection.c: when running on a 2.0 runtime, emit
2737         unconditionally the #~ header version as 2.0, and the
2738         CLI header version as 2.5, for symmetry's sake with csc.
2739
2740 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2741
2742         * class.c: Remove the unused cache_interface_offsets stuff.
2743
2744         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
2745         profiler.c: Fix warnings.
2746
2747 2008-03-16  Mark Probst  <mark.probst@gmail.com>
2748
2749         * generic-sharing.c, class-internals.h: Support for putting
2750         methods into the runtime generic context.
2751
2752 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
2753
2754         * class.c (mono_class_setup_fields): Ignore calls made to this function for
2755         classes which are generic instances of not-yet finished typebuilders. Fixes
2756         #351172.
2757
2758         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
2759
2760 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
2761
2762         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
2763
2764         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
2765         field, replace it with a hash table in MonoDynamicImage.
2766
2767         * reflection.c (inflate_mono_method): Access the generic definition object from
2768         image->generic_def_objects instead of imethod->reflection_info.
2769
2770         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
2771
2772         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
2773         
2774         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
2775         function in reflection.c so it is easier to keep in sync with the dynamic image
2776         creation code.
2777
2778         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
2779         mono_image_close ().
2780
2781 2008-03-15  Mark Probst  <mark.probst@gmail.com>
2782
2783         * class.c (mono_class_generic_sharing_enabled): Disable generic
2784         sharing for all architectures except AMD64 and x86 to fix build.
2785
2786 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
2787
2788         * verify.c: Use the generic definition MonoGenericContext when available.
2789         Remove code for checking generics instance compatibility in favor of
2790         mono_class_is_assignable_from.
2791
2792 2008-03-14  Mark Probst  <mark.probst@gmail.com>
2793
2794         * marshal.c, marshal.h, metadata-internals.h, image.c,
2795         wrapper-types.h: New wrapper for invoking a shared static method
2796         without having to pass the runtime generic context argument.
2797
2798 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
2799
2800         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
2801
2802 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
2803
2804         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
2805         
2806         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
2807         create a token from a FieldOnTypeBuilderInst.
2808         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
2809         (resolve_object): Ditto.
2810
2811         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
2812         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
2813
2814 2008-03-14  Martin Baulig  <martin@ximian.com>
2815
2816         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
2817
2818         * debug-mono-symfile.h
2819         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
2820         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
2821
2822 2008-03-10  Martin Baulig  <martin@ximian.com>
2823
2824         * debug-mono-symfile.h
2825         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
2826         `lexical_block_table_offset'.
2827         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
2828         `lexical_blocks'.
2829         (MonoSymbolFile): Added `version'.
2830
2831         * mono-debug.h
2832         (MonoDebugLexicalBlockEntry): Removed.
2833         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
2834         `lexical_blocks'.
2835
2836         * mono-debug.c (mono_debug_add_method): Don't compute lexical
2837         blocks here; the debugger now does this internally.
2838
2839 2008-02-27  Martin Baulig  <martin@ximian.com>
2840
2841         * object.c (mono_runtime_exec_main): Call
2842         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
2843         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
2844
2845 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2846
2847         * verify.c (verify_type_compatibility_full): Allow native int to be converted
2848         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
2849
2850 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
2851
2852         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
2853         ldftn with a virtual method.
2854
2855 2008-03-13  Geoff Norton  <gnorton@novell.com>
2856
2857         * decimal.c:  Only include memory.h if the platform has it.
2858
2859 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
2860
2861         * assembly.c, class.c, metadata-internals.h: make sure public key
2862         tokesns are compared in a case-insensitive way. Also, all
2863         the lookups in the GAC use a lowercase public key token
2864         (gaacutil already does the lowercasing on install). Fixes
2865         bug #369541.
2866
2867 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
2868
2869         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
2870         and return value.
2871
2872 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
2873
2874         * image.c: when someone loads a mscorlib from a file, return the
2875         currently loaded mscorlib (fixes bug #369253).
2876
2877 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
2878
2879         * class.c: handle types with no parents by forcing them to have
2880         System.Object as a parent and marking them as broken (this currently
2881         allows the first part of bug #369173 to work as well, likely because
2882         we don't check for typeload exceptions everywhere yet).
2883
2884 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
2885
2886         * class.c: more complete check that types belong to corlib
2887         (fixes second part of bug #369173).
2888
2889 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
2890
2891         * generic-sharing.c:  Including glib.h for the MSVC builds to define
2892           "inline" to "__inline" before including mono-membar.h.
2893           
2894         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
2895           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
2896           MSVC builds.
2897
2898         Contributed under MIT/X11 license.
2899
2900 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
2901
2902         * verify.c (do_invoke_method): Remove return type validation.
2903
2904         * verify.c (do_ret): Do return type validation at return site instead of
2905         call site.
2906
2907 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
2908
2909         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
2910
2911         * verify.c: Some todos cleaned and improved a few error messages.
2912
2913 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
2914
2915         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
2916
2917 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
2918
2919         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
2920         system types correctly.
2921
2922         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
2923         function.
2924
2925 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
2926
2927         * assembly.c (build_assembly_name): Fix a warning.
2928
2929 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
2930
2931         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
2932         the called function takes an object type argument. Fixes storing or
2933         valuetypes across remoting as well as reducing memory usage.
2934         * image.c, metadata-internals.h: remove now unused ldfld_remote and
2935         stfld_remote wrapper caches.
2936
2937 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
2938
2939         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
2940         is not found.
2941
2942         * reflection.c (mono_image_register_token): New helper function to save
2943         a token->object mapping.        
2944
2945         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
2946         managed code.
2947
2948         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
2949         one dimension arrays. Fixes #367670.
2950         (mono_reflection_get_type_internal): Ditto.
2951
2952 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
2953
2954         * marshal.c: mono_load_remote_field_new() always returns object.
2955         so use the proper signature (fixes bug #366445).
2956
2957 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
2958         
2959         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
2960         add an 'inline_failure' flag instead.
2961
2962 2008-03-04  Mark Probst  <mark.probst@gmail.com>
2963
2964         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
2965         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
2966         contains the location of "this", used for exception handling.
2967
2968 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
2969
2970         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
2971         their size on all platforms for perf reasons.
2972
2973 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2974
2975         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
2976         object-internal.h
2977
2978         * object-internal.h: Same.
2979
2980 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2981
2982         * reflection.h: Fix the build I just broke.
2983
2984 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2985
2986         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
2987         Test if a token is valid, this remove explicit usage of 
2988         MonoDynamicImage::tokens from the verifier code.
2989
2990         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
2991
2992         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
2993         instead of direct access to MonoDynamicImage::tokens.
2994
2995 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
2996
2997         * verify.c (token_bounds_check): Fix the build I just broke.
2998
2999 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
3000
3001         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
3002
3003         * verify.c (verifier_load_method): Fixed the errors message.
3004
3005         * verify.c (mono_method_verify): Fixed a debug message.
3006
3007 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
3008
3009         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
3010         mono-perfcounters.h, class-internals.h: support for predefined
3011         writable counters, query of categories and counters, bugfixes.
3012
3013 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3014
3015         * verify.c (do_refanytype): Verify the refanytype opcode.
3016
3017         * verify.c (mono_method_verify): Use do_refanytype.
3018
3019 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
3020
3021         * verify.c (do_mkrefany): Verify the mkrefany opcode.
3022
3023         * verify.c (mono_method_verify): Use do_mkrefany.
3024
3025 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
3026
3027         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
3028         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
3029         implementation.
3030
3031 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3032
3033         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
3034         the type load exception.
3035
3036 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
3037
3038         * verify.c: Added a few FIXME for method signatures
3039
3040         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
3041         of mono_method_get_signature and get vararg call working. Removed unused
3042         checks for return value.
3043
3044         * verify.c (do_refanyval): Verify the refanyval opcode.
3045
3046         * verify.c (mono_method_verify): Implemented verification of arglist and
3047         use do_refanyval.
3048
3049 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
3050
3051         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
3052         vtypes to marshal.c.
3053
3054         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
3055         it works for AOT as well.
3056
3057 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
3058
3059         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
3060         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
3061         the system time is adjusted.
3062
3063 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
3064
3065         * icall.c, icall-def.h: use the new time functions (fixes the
3066         non-monotonic behaviour of TickCount).
3067
3068 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
3069
3070         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
3071         it breaks the build.
3072         
3073         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
3074         cattr is not finished yet.
3075
3076 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3077
3078         * verify.c: Proper token validation for field, method and type.
3079
3080 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
3081
3082         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
3083
3084         * loader.c (method_from_memberref): Generate type load error instead of method missing
3085         if the type is not found.
3086
3087 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
3088
3089         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
3090         some of the conversions caused the generation of a marshal directive exception.
3091
3092 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3093
3094         verify.c: Report which exception should be thrown by the JIT.
3095         Added a lot of FIXME notes.
3096
3097 2008-02-22  Mark Probst  <mark.probst@gmail.com>
3098
3099         * generic-sharing.c: Runtime generic context slots are not
3100         instantiated on init anymore.  Instead, provide function to do the
3101         instantiating on demand.
3102
3103         * class-internals.h: Added vtable to runtime generic context.
3104         Macros for encoding direct and indirect slot offsets in one
3105         guint32.
3106
3107 2008-02-21  Mark Probst  <mark.probst@gmail.com>
3108
3109         * object.c, generic-sharing.c: Moved some generic sharing code
3110         from object.c to generic-sharing.c.
3111
3112         * generic-sharing.c: Added support for extensible runtime generic
3113         context.
3114
3115         * metadata-internals.h: Two new hash tables in MonoImage for
3116         extensible runtime generic context support.
3117
3118         * domain.c: Unregister generic vtables upon domain unloading.
3119
3120         * image.c: Destroy new hash tables upon image unloading.
3121
3122         * metadata.c: Unregister generic subclasses upon image unloading.
3123
3124         * class-internals.h: New data structure for runtime generic
3125         context template.  New fields in the runtime generic context for
3126         extensible part.
3127
3128         * Makefile.am: Added generic-sharing.c.
3129
3130 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
3131
3132         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
3133         there is a pending loader exception, raise it.
3134
3135         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
3136         same.
3137
3138         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
3139         same.
3140
3141         Fixes #363450.
3142
3143 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
3144
3145         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
3146
3147         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
3148         
3149         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
3150         ref-only requests for compatibility with MS.
3151
3152 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3153
3154         * reflection.c (mono_custom_attrs_from_method): Don't silently
3155         return an empty list for generic method instances.
3156         (mono_custom_attrs_from_param): Likewise.
3157
3158 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
3159             Raja R Harinath  <harinath@hurrynot.org>
3160
3161         Fix #354757
3162         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
3163         * class.c (mono_class_inflate_generic_method_full): Initialize it
3164         when a fully-open method is instantiated.
3165         * metadata.c (inflated_method_equal, inflated_method_hash): Update
3166         to new field.
3167         * reflection.c (inflate_mono_method): Don't create a temporary context.
3168
3169 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
3170
3171         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
3172         Compute correct value, to prepare for imethod->reflection_info going away.
3173
3174 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
3175
3176         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
3177
3178 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3179
3180         * verify.c: Implement skip visibility flag.
3181
3182 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
3183
3184         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
3185         which contains an extra field to tell the kind of exception that should be thrown.
3186
3187         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
3188
3189 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
3190
3191         * loader.c (mono_method_get_param_names): Initialize 'klass' after
3192         'method' is updated.
3193
3194 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
3195
3196         * class.c (mono_class_layout_fields): Set class->min_align for classes using
3197         explicit layout as well. Fixes #360375.
3198
3199 2008-02-11  Geoff Norton  <gnorton@novell.com>
3200
3201         * loader.c: Guard and dereference against inflated generic methods
3202
3203 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
3204
3205         * class.c: Include Retargetable spec in assembly name.
3206         * assembly.c: Always include PublicKeyToken spec in assembly name
3207         (with value "null" if assembly is not signed), and include
3208         Retargetable spec.
3209         * icall-def.h: Added icall for Assembly.get_fullname.
3210         * icall.c: Added icall returning the fullname of an assembly.
3211
3212 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
3213
3214         * class.c (mono_class_setup_vtable_general): Add a missing call to
3215         mono_class_setup_methods () which is needed in the AOT case.
3216
3217 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
3218
3219         * verify.c (mono_type_get_stack_name): Added. Return the name for the
3220         stack type of the given MonoType.
3221
3222         * verify.c (verify_type_compatibility_full): Handle the void type.
3223
3224         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
3225         way stack merging works.
3226
3227         * verify.c (store_local): Improved verification message.
3228
3229         * verify.c (do_branch_op): If the merging is invalid, the method
3230         is unverifiable and not invalid. Improved error message.
3231
3232         * verify.c (merge_stacks): Properly merge a boxed valuetype and
3233         a reference type diferent than System.Object. Improved error
3234         message.
3235
3236 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
3237
3238         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
3239
3240         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
3241         type of an enum even if the argument is byref.
3242
3243         * verify.c: Replace all explicit uses of enumtype and enum_basetype
3244         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
3245
3246         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
3247
3248         *verify.c (verify_type_compatibility_full): Make enum types
3249         compatible with their base types.
3250
3251         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
3252         types are compatible for the special case of a boxed valuetype and
3253         System.Object.
3254
3255         * verify.c (verify_stack_type_compatibility): The function
3256         is_compatible_boxed_valuetype was extracted from here.
3257
3258         * verify.c (push_arg): Only set ctx->has_this_store if the method
3259         is not static.
3260
3261         * verify.c (do_ldelem): Fixed a typo in an error message and added
3262         strict check for mixing int32 and native int as the array type
3263         and ldelem type.
3264
3265         * verify.c (merge_stacks): Consider boxed valuetypes in the
3266         compatibility checks.
3267
3268 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
3269         * profiler.h: (MonoGCEvent): Added start-stop the world events.
3270
3271 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3272         *class.c: use_new_interface_vtable_code: renamed the env var to have
3273         a "MONO_" prefix, and fix the logic to enable it by default.
3274
3275 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
3276         *class.c:
3277         mono_class_setup_vtable_general: rewrote the way in which interface
3278         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
3279         makes the code more maintainable.
3280         For now the old code is still there, and can be activated setting
3281         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
3282
3283 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
3284
3285         * verify.c: guarded some debug functions around and #ifdef.
3286
3287         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
3288
3289 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
3290
3291         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
3292         changes for now since they seem to break too many things.
3293
3294 2008-02-05  Mark Probst  <mark.probst@gmail.com>
3295
3296         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
3297         mono_marshal_find_nonzero_bit_offset): Added macro and function
3298         for finding the byte- and bit-offset of a bitfield within a
3299         struct.
3300
3301 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
3302
3303         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
3304         (mono_marshal_get_struct_to_ptr): Ditto.
3305
3306         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
3307         cctor_signature.
3308
3309 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
3310
3311         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
3312         between methods for non-corlib types.
3313
3314 2008-02-02  Geoff Norton  <gnorton@novell.com>
3315
3316         * loader.c (mono_method_get_param_names): Populate the parameter name for 
3317         generic parameters as well. (Fixes #342536)
3318
3319 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
3320
3321         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
3322
3323         * verify.c (do_invoke_method): Fix for calling with byref structs.
3324
3325         * verify.c (do_cast): push a boxed value type based on the type token and not
3326         the type of stack.
3327
3328 2008-01-31  William Holmes  <billholmes54@gmail.com>
3329
3330         * process.c (process_module_string_read): Check the size returned form 
3331           VerQueryValue to avoid out of memory exception. 
3332
3333 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
3334
3335         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3336         Handle properly modules which are not in the moduleref table. Fixes
3337         #356938.
3338
3339 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
3340
3341         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
3342         the dynamic case which is now in managed code.
3343         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
3344
3345         * marshal.c (mono_string_to_bstr): Fix a warning.
3346         (init_com_provider_ms): Ditto.
3347
3348         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
3349
3350         * exception.c (mono_get_exception_out_of_memory): New helper function.
3351
3352 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
3353
3354         * marshal.c: Add support for BSTR marshalling
3355         using other COM systems.
3356
3357         Code is contributed under MIT/X11 license.
3358
3359 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3360
3361         * object.c (mono_runtime_invoke_array): reverted previous
3362         commit as it breaks the build.
3363
3364 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3365
3366         * object.c (mono_runtime_invoke_array): Verify arguments for
3367         invalid types. Fixes #348522.
3368
3369 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
3370
3371         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
3372         non-final virtual calls using call. 
3373
3374         * verify.c (do_invoke): fixed some TODOs.
3375
3376         * verify.c (push_arg): set has_this_store for "ldarga 0".
3377
3378 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
3379
3380         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
3381         which belong to an inflated class. Fixes #356531.
3382
3383 2008-01-26  Robert Jordan  <robertj@gmx.net>
3384
3385         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
3386         which resort to FindFirstFile when a certain error condition
3387         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
3388         Code is contributed under MIT/X11 license.
3389
3390 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
3391
3392         * marshal.c (emit_marshal_string): Fix out string marshalling
3393         to use specified encoding. Fixes #323900.
3394
3395         Code is contributed under MIT/X11 license.
3396
3397 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
3398
3399         * class.c (mono_class_inflate_generic_method_full): Don't modify
3400         iresult->context after cache check.
3401
3402 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
3403
3404         * class.c (mono_class_inflate_generic_method_full): Change the
3405         struct assignments to memcpy for better visibility and add some comments.
3406
3407 2008-01-23  Dick Porter  <dick@ximian.com>
3408
3409         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
3410         procedure, and make it work on windows.
3411
3412 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
3413
3414         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
3415         a MonoReflectionTypeBuilder since it is always of that type.
3416
3417         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
3418
3419         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
3420
3421         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
3422         
3423         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
3424
3425         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
3426
3427         * reflection.c (mono_reflection_create_runtime_class): Remove already created
3428         instantiations from the type cache.
3429
3430 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3431
3432         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
3433
3434         * verify.c (do_unbox_value): push a controled mutability managed pointer.
3435
3436 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3437
3438         * verify.c (do_ldstr): added, verifies if the #US token is valid.
3439
3440         * verify.c (mono_method_verify): removed old TODO
3441
3442 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3443
3444         * verify.c (do_newobj): add visibility check.
3445
3446 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
3447
3448         * verify.c (do_load_function_ptr): add visibility check.
3449
3450 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
3451         *class.c:
3452         mono_generic_class_get_class: hook profiler events.
3453         mono_field_get_offset: added to support heap-shot in the new profiler.
3454         *class.h: exported mono_field_get_offset.
3455         * reflection.c:
3456         mono_reflection_setup_internal_class: hook profiler events.
3457
3458 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
3459
3460         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
3461         argument here too and use it to avoid checking for pending exceptions if 
3462         possible.
3463
3464 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
3465
3466         * assembly.c (build_assembly_name): add arg for passing the assembly
3467         flags. Do not consider a PublicKey with value "null" valid.
3468         (mono_assembly_name_parse_full): added boolean argument that will be
3469         set if the assembly name contains a PublicKeyToken spec. Added support
3470         for the Retargetable spec for which only Yes or No are allowed as valid
3471         value. Consider assembly name invalid if Retargetable spec is set, but
3472         either version, culture or public key (token) are not specified.
3473         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
3474         with implementation in assembly.c.
3475         * icall.c (fill_reflection_assembly_name): also copy assembly flags
3476         from MonoAssemblyName.
3477         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
3478         introduced argument for mono_assembly_name_parse_full to know if the
3479         assembly name has a PublicKeyToken spec, and if it has instruct
3480         fill_reflection_assembly_name to use default value for keyToken (if
3481         PublicKeyToken is null).
3482
3483 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3484
3485         * verify.c (mono_method_verify): fixed ovf ops with
3486         float values. They are unverifiable now.
3487
3488 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
3489
3490         * class.c (set_failure_from_loader_error): add BadImageException to the
3491         list of exceptions that can cause a type to fail to load.
3492
3493         * class.c (mono_class_get_exception_for_failure): same.
3494
3495 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
3496
3497         * verify.c (in_any_exception_block): added, check if offset
3498         is part of any exception handling clause.
3499
3500         * verify.c (get_stack_type): added VAR and MVAR types.
3501
3502         * verify.c (do_stobj): better error messages.
3503
3504         * verify.c (do_cpobj): added, check cpobj.
3505
3506         * verify.c (do_initobj): added, check initobj.
3507
3508         * verify.c (do_sizeof): added, check sizeof.
3509
3510         * verify.c (do_localloc): added, check localloc.
3511
3512         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
3513
3514 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
3515
3516         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
3517         save_lmf/restore_lmf opcodes.
3518
3519         * threads.c (mono_threads_install_notify_pending_exc): New function to
3520         install a callback notifying the JIT there is a pending exception on a thread.
3521         (mono_thread_request_interruption): Call the new callback.
3522         (mono_thread_get_and_clear_pending_exception): New function to return the
3523         exception pending on a thread.
3524
3525         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
3526         to turn off checking for pending exceptions.
3527         (mono_marshal_get_native_wrapper): Ditto.
3528
3529 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3530
3531         * threads-types.h: Get rid of the unnecessary extern declarations.
3532
3533 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
3534
3535         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
3536         return field from parent class if not private.
3537         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
3538         returns fields from parent class if they are not private.
3539         (method_nonpublic): added function to determine if a given method
3540         should be considered non-public. Returns false for private methods
3541         on parent class, and internal methods from parent on the 1.0 profile.
3542         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
3543         use method_nonpublic function to determine whether method should be
3544         returned.
3545         (property_accessor_public): use newly introduced method_nonpublic
3546         function to determine whether accessor is non-public. 
3547         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
3548         event from parent class if not private. Only return static event if
3549         Static flag is set, and only return static event from parent class if
3550         FlattenHierarchy flag is set.
3551         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
3552         include non-private events from parent class.
3553
3554 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
3555
3556         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
3557         warning.
3558
3559 2008-01-16  Wade Berrier <wberrier@novell.com>
3560
3561         * security.c: Add assembly.h header to appease some warnings
3562
3563 2008-01-16  Dick Porter  <dick@ximian.com>
3564
3565         * process.c (process_module_string_read): Remove trailing null
3566         when saving string.
3567
3568 2008-01-16  Mark Probst  <mark.probst@gmail.com>
3569
3570         * class-internals.h: A new data structure describing the layout of
3571         a runtime generic context (MonoRuntimeGenericContextTemplate).
3572
3573         * metadata-internals.h: Added a hash table to MonoDomain that maps
3574         from open generic classes to their runtime generic context
3575         templates.
3576
3577         * object.c: Building of the runtime generic context, including
3578         proper handling of generic type arguments of superclasses.
3579         Building of the runtime generic context according to the template.
3580
3581 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
3582
3583         * class.c (mono_class_setup_fields): Set field.count for generic instances.
3584         Fixes #350856.
3585
3586         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
3587         mono_portability_find_file (). Fixes #325466.
3588         (mono_image_get_public_key): Fix a warning.
3589
3590 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
3591
3592         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
3593         Fixes #353550.
3594         (mono_class_from_name_case): Ditto.
3595
3596 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
3597
3598         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
3599           common storage for the tables used in the System/NumberFormatter class.
3600
3601 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
3602
3603         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
3604
3605 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
3606
3607         * verify.c (get_boxable_mono_type): check if the token is valid.
3608
3609         * verify.c (set_stack_value): changed to add an error if an
3610         invalid type is set on stack. Changed all callers due to signature change.
3611
3612         * verify.c (do_stobj): implement stobj validation.
3613
3614 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
3615
3616         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
3617         set container->is_method, it was set earlier.
3618
3619         * metadata.c (type_in_image): Handle MVARs which belong to not finished
3620         generic methods.
3621
3622         * reflection.c (mono_reflection_initialize_generic_parameter): Set
3623         is_method of the generic container to TRUE for methods.
3624
3625 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3626
3627         * metadata.c (type_in_image): Handle type parameters properly.
3628
3629         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
3630         memory ownership of this structure.
3631
3632 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
3633
3634         * verify.c (get_boxable_mono_type): make typedref types been just
3635         unverifiable. check for void type.
3636
3637         * verify.c (do_unbox_any): added, verify opcode unbox.any.
3638
3639         * verify.c (do_load_function_ptr): accept method spec tokens.
3640
3641 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
3642
3643         * marshal.c (mono_class_native_size): Always set *align even if this is called
3644         recursively.
3645
3646 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
3647
3648         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
3649         out-of-date.
3650
3651 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
3652
3653         * verify.c: removed some old unused tables. A huge bunch of small fixes
3654         to things found while testing the verifier with mono basic.
3655
3656         * verify.c (dump_stack_value): dump null literal flag to.
3657
3658         * verify.c (verify_type_compatibility_full): fix comparison
3659         for types that have a generic super type.
3660
3661         * verify.c (verify_stack_type_compatibility): fix compatibility
3662         between null literals and reference types. fix compatibility between
3663         boxed valuetypes and object. fix corner case test for enums.
3664
3665         * verify.c (do_cmp_op): proper verification of cgt.un in case
3666         of reference types.
3667
3668         * verify.c (do_invoke_method): fix error message.
3669
3670         * verify.c (do_store_indirect
3671
3672         * verify.c (check_is_valid_type_for_field_ops): proper verification
3673         of managed pointers to valuetypes and boxed valuetypes. proper verification
3674         of null literals.
3675
3676         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
3677         allow token to be a reference type.
3678
3679         * verify.c (do_cast): proper handling of boxes valuetypes.
3680
3681         * verify.c (do_stelem): proper handling of storing a boxed valuetype
3682         in object[].
3683
3684         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
3685         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
3686         fixed the decoding of unbox_any
3687
3688 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
3689
3690         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
3691
3692 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
3693
3694         * verify.c (do_newobj): do delegate verification.
3695
3696         * verify.c (verify_delegate_compatibility): perform delegate
3697         verification.
3698
3699         * verify.c (verify_ldftn_delegate): perform tests related to
3700         ldftn delegates.
3701
3702         * verify.c (mono_delegate_signature_equal): perform the
3703         slightly diferent signature comparison required by delegates.
3704
3705         * metadata.c (mono_metadata_type_equal_full): added and exported
3706         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
3707         allows signature only comparison.
3708
3709         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
3710         as MONO_INTERNAL.
3711
3712 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
3713
3714         * verify.c: added a bunch of stack_slot_* functions to
3715         make access to stack slot type easier. This is required to
3716         allow optional flags, like null literal, boxed value and
3717         this pointer.
3718         All access paths to IlStackDesc::stype have been changed 
3719         to use these new funcions.
3720         Removed a bunch of unused functions and cleared all warnings.
3721         This patch introduces the usage of the this pointer and 
3722         boxed value flags.
3723
3724 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
3725
3726         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
3727
3728 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
3729
3730         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
3731         match managed version.
3732
3733         * appdomain.c: Bump corlib version.
3734         
3735         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
3736         argument.
3737
3738 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
3739
3740         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
3741         Set public key token to zero-length byte array if assembly is not
3742         strongnamed.
3743
3744 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
3745
3746         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
3747         writing a vtype array elem.
3748
3749 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
3750
3751         * assembly.c (build_assembly_name): return FALSE if length of token is
3752         not 16 (if not "null").
3753         (mono_assembly_name_parse_full): return FALSE if value of version,
3754         culture, token or key is 0.
3755         * icall.c (fill_reflection_assembly_name): add boolean arguments to
3756         specify whether public key and public key token must be set to default
3757         value (zero-length byte array) if not available. Set versioncompat to
3758         SameMachine. If public key is available or the default is set, then
3759         set PublicKey flag.
3760         (ves_icall_System_Reflection_Assembly_FillName): if no public key
3761         is available, use empty byte array as default value. On the 2.0
3762         profile, use default value for public key token if not set.
3763         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
3764         profile, use default value for public key if not set. On the 2.0
3765         profile, use default value for public key token if not set.
3766         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
3767         default values for public key and public key token.
3768
3769 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
3770
3771         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
3772         field to keep it in synch with the managed object.
3773
3774         * marshal.c (emit_marshal_object): Add support for byref marshalling of
3775         delegates. Fixes #351520.
3776
3777         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
3778         contains defined memory.
3779         
3780         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
3781
3782         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
3783         
3784         * sgen-gc.c (check_consistency): New helper function to do a consistency check
3785         of the GC data structures.
3786
3787         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
3788
3789         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
3790         
3791         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
3792         barrier.
3793         (mono_array_clone_in_domain): Ditto.
3794         (mono_array_clone_in_domain): Ditto.
3795
3796         * threads.c (start_wrapper): Register the thread start argument as a GC root.
3797         (cache_culture): Use a write barrier.
3798
3799         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
3800         (ves_icall_get_property_info): Ditto.
3801
3802         * object.h (MONO_STRUCT_SETREF): New macro.
3803
3804         * class-internals.h (MonoStats): Add some GC statistics.
3805
3806         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
3807
3808 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
3809
3810         * exception.c (mono_exception_from_name_two_strings):
3811         Break from loop after method is found.
3812
3813 2008-01-04  Dick Porter  <dick@ximian.com>
3814
3815         * process.c (process_module_string_read): Rename variable to
3816         reflect correct usage, after fixing bug 345972.
3817
3818 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
3819
3820         * verify.c (mono_type_create_fnptr_from_mono_method): 
3821         created a MonoType function pointer instance to be used during
3822         verification. The verifier releases this memory at end.
3823
3824         * verify.c (mono_method_is_constructor): extracted repeated
3825         checks for constructor into a single class.
3826
3827         * verify.c (do_push_field): use new extracted method
3828         for constructor check.
3829
3830         * verify.c (do_newobj): same.
3831
3832         * verify.c (do_ldftn): renamed to do_load_function_ptr
3833         and make it verify ldvirtftn too.
3834
3835         * verify.c (mono_method_verify: proper verification
3836         of ldvirtftn. release created MonoMethod instances.
3837
3838 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
3839
3840         * verify.c (token_bounds_check): added.
3841
3842         * verify.c (do_ldftn): added.
3843
3844         * verify.c (mono_method_verify): proper verificartion of ldftn.
3845
3846 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
3847
3848         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
3849         than the table row count. It's the resposibility of the caller to
3850         make the bounds check and raise the correct error.
3851
3852         * metadata.c (mono_metadata_decode_row_col): Same.
3853
3854         * loader.c (mono_get_method_from_token): perform bounds check
3855         on token for methoddef table.
3856
3857 2007-12-29  Miguel de Icaza  <miguel@novell.com>
3858
3859         * icall.c
3860         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
3861         assert into a negative result, the managed code already coped with
3862         that.
3863
3864         Some folks on Windows reported this error. 
3865
3866 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
3867
3868         * appdomain.c: Bump corlib version.
3869         * icall.c:
3870         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
3871         CultureInfo.CreateCulture to create CultureInfo for name.
3872         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
3873         create CultureInfo for name. Fixes bug #347174.
3874
3875 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
3876
3877         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
3878         flags.
3879
3880         * verify.c (is_valid_branch_instruction): allow branching to the
3881         first instruction of the protected block.
3882
3883         * verify.c (is_valid_cmp_branch_instruction): same.
3884
3885         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
3886         avoid double initialization.
3887
3888         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
3889         detect which cases the eval stack should just be copied.
3890
3891         * verify.c (mono_method_verify): check if the eval stack
3892         is empty when entering a protected block.
3893
3894 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
3895
3896         * verify.c: added is_clause_in_range, is_clause_inside_range,
3897         is_clause_nested and verify_clause_relationship. They perform
3898         the verifications stated in P1 12.4.2.7.
3899
3900         * verify.c (mono_method_verify): remove some unused variables,
3901         add the new exception clause checks, add instruction border
3902         checks for protected block start/end, improved some error 
3903         messages and fixed a bug in the way invalid instruction access
3904         is detected.
3905
3906 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
3907
3908         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
3909         from GC 7.0 if available.
3910
3911         * object.c: Remove an unused define.
3912         
3913         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
3914
3915         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
3916
3917         * null-gc.c (mono_gc_make_descr_for_array): Implement.
3918
3919         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
3920
3921         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
3922         to take the same arguments as the other make_descr functions.
3923
3924         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
3925
3926         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
3927         directly.
3928
3929         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
3930         mini.c.
3931
3932         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
3933         call to boehm-gc.c.
3934
3935         * boehm-gc.c (mono_gc_register_root): Fix a warning.
3936
3937         * null-gc.c (mono_gc_register_root): Fix a warning.
3938
3939         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
3940
3941         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
3942         (mono_gc_base_init): Call GC_init ().
3943
3944         * null-gc.c: Define mono_gc_register_root () as a no-op.
3945
3946         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
3947
3948 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
3949
3950         * verify.c: add prototype for merge_stacks at top
3951
3952         * verify.c (do_switch): added.
3953
3954         * verify.c (merge_stacks): on some cases the stack merging
3955         was not happening properly. Unequal stack sizes at merge
3956         points should be invalid.
3957
3958         * verify.c (mono_method_verify): added more debug info on stack state.
3959         verify switch properly.
3960
3961 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
3962
3963         * method-builder.h: New file, moved the mono_mb_ declarations here from 
3964         marshal.h.
3965
3966         * boehm-gc.c marshal.c: Include method-builder.h.
3967
3968         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
3969
3970         * marshal.c: Remove some code which is now in method-builder.c.
3971
3972 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
3973
3974         * method-builder.c: New file, extraction of the method builder functionality 
3975         from marshal.c.
3976
3977         * marshal.c: Move the mb functions into method-builder.c.
3978
3979         * marshal.h marshal.c: Export some mono_mb_... functions.
3980
3981         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
3982
3983         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
3984         the caller.
3985
3986         * class.c (mono_class_get_full): Check the token type in the dynamic case.
3987
3988         * loader.c (mono_field_from_token): Ditto.      
3989
3990         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
3991         type as well.
3992         
3993         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
3994         Fixes #342565.
3995
3996         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
3997         a helper function for setting it.
3998
3999         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
4000
4001         
4002         * assembly.c: Significally simplify code now that referenced assemblies are 
4003         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
4004
4005         * threads.h: Don't include  the internal threads-types.h header file. Fixes
4006         #349952.
4007
4008 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
4009
4010         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
4011         instructions that were target of branches or are at protected block boundaries.
4012
4013         * verify.c (in_same_block): handle filter clauses.
4014
4015         * verify.c (is_valid_branch_instruction): added. checks the target of
4016         instructions br or brtrue/false.
4017
4018         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
4019         binary branch instructions such as beq and bge.
4020
4021         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
4022         and made it pin the instruction as been part of the exception block.
4023
4024         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
4025         of in_same_block.
4026
4027         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
4028         of in_same_block.
4029
4030         * verify.c (do_ret): ret from a protected block is unverifiable and
4031         not invalid.
4032
4033         * verify.c (do_static_branch): verify br and br.s instructions.
4034
4035         * verify.c (merge_stacks): add extra param to support detection
4036         of branches in the middle of instructions.
4037         
4038         * verify.c (mono_method_verify): verify branches and exception blocks
4039         that target the middle of instructions. Proper verification of br and br.s.
4040
4041 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
4042
4043         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
4044         skip_visibility field.
4045         (reflection_methodbuilder_from_dynamic_method): Ditto.
4046
4047         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
4048         registrations. Fixes #348193.
4049
4050         * threads.h: Move the internal mono_thread_get_pending_exception () to
4051         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
4052
4053 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
4054
4055         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
4056         icall registration. Fixes #348193.
4057
4058         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
4059         for corlib classes into object. Fixes #349621.
4060
4061 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
4062
4063         * icall.c (property_accessor_nonpublic): new function to determine
4064         whether an accessor allows a property to be considered non-public.
4065         Returns false for private accessor(s) from parent class, and internal
4066         accessor(s) from parent on 2.0 profile (and higher).
4067         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
4068         to determine whether property should be included if NonPublic flag
4069         is set. Fixes bug #349078.
4070
4071 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
4072
4073         * verify.c (init_stack_with_value): added.
4074
4075         * verify.c (mono_method_verify): extracted common
4076         code for exception initialization into init_stack_with_value.
4077
4078         * verify.c (mono_method_verify): initialize the exception
4079         for handler clauses as well.
4080
4081         * verify.c (mono_method_verify): fix the exception clause
4082         ordering rules, it should use handler end offset and not
4083         start offset.
4084
4085 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
4086
4087         * rawbuffer.c: remove useless warning.
4088
4089 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
4090
4091         * threads.h, threads-types.h: move functions to the correct header
4092         (fixes bug#349952).
4093
4094 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4095
4096         * verify.c (mono_method_verify): proper verification
4097         of exception handling clauses ranges and fallthru in
4098         and out of protected blocks.
4099
4100 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4101
4102         * verify.c (mono_method_verify): fixed compilation issue.
4103
4104 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
4105
4106         * verify.c (mono_method_verify): a printf slipped in, changed
4107         to use verifier debug macro.
4108
4109 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
4110
4111         * verify.c (is_correct_leave): check for filter clauses.
4112
4113         * verify.c (do_filter): added.
4114
4115         * verify.c (mono_method_verify): property verification of leave.
4116
4117
4118 2007-12-18  Mark Probst  <mark.probst@gmail.com>
4119
4120         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
4121         Win32 build, until we figure out how to do the proper thing on
4122         Win32.
4123
4124 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
4125
4126         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
4127         by the previous patch.
4128         
4129         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
4130         the assembly resolve handler for refonly assemblies.
4131
4132 2007-12-17  Mark Probst  <mark.probst@gmail.com>
4133
4134         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
4135         Make sure only one thread is allowed to commence shutdown, and
4136         don't allow new threads to be started once shutdown is in
4137         progress.
4138
4139 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
4140
4141         * verify.c (is_correct_endfilter): added.
4142
4143         * verify.c (is_unverifiable_endfilter): added.
4144
4145         * verify.c (do_endfilter): added.
4146
4147         * verify.c (mono_method_verify): property verification of endfilter
4148         and fixed a corner case or endfinally.
4149
4150 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
4151
4152         * verify.h: new flags to support fail fast of unverifiable code and
4153         do non-strict verification. Non-strict verification is required to
4154         have MS runtime compatibility. There are a huge amount of unverifiable
4155         code that it accepts as verifiable. The strict mode verifies the code
4156         as the specs says.
4157         Non-strict mode will be required in cases where code needs to be
4158         accepted as verifiable but fails under strict mode.
4159
4160         * pedump.c: added support to fail fast and non-strict verification.
4161
4162         * verify.c: added support for both fail fast and non-strict verification.
4163
4164 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
4165
4166         * verify.c (is_correct_endfinally): added.
4167
4168         * verify.c (mono_method_verify): property verification of endfinally.
4169
4170 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4171
4172         * verify.c (in_any_block): check for filter clauses.
4173
4174         * verify.c (is_correct_rethrow): added.
4175
4176         * verify.c (mono_method_verify): property verification of rethrow.
4177
4178         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
4179
4180 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
4181
4182         * verify.c (do_throw): added.
4183
4184         * verify.c (mono_method_verify): property verification of throw
4185
4186 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
4187
4188         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
4189         assemblies. Fixes #346425.
4190
4191 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
4192
4193         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
4194         FieldBuilders.
4195
4196         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
4197
4198         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
4199         prevent asserts when this is called with a token which might not be valid.
4200
4201         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
4202         lookup_dynamic_token_class with valid_token == FALSE.
4203
4204         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
4205
4206         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
4207
4208         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
4209         
4210 2007-12-10  Mark Probst  <mark.probst@gmail.com>
4211
4212         * gc.c: Don't delay threadpool thread finalization unless Mono is
4213         shutting down.
4214
4215 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
4216
4217         * threads.c: turn an assert into a non-fatal warning.
4218
4219 2007-12-09  Robert Jordan  <robertj@gmx.net>
4220
4221         * icall.c (GetVirtualMethod): Add missing argument validation.
4222
4223 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4224
4225         * verify.c (do_cast): added.
4226
4227         * verify.c (mono_method_verify): property verification of castclass and isinst.
4228
4229
4230 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4231
4232         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
4233
4234         * verify.c (do_stelem): added.
4235
4236         * verify.c (mono_method_verify): property verification of stelem.X.
4237
4238 2007-12-07  Mark Probst  <mark.probst@gmail.com>
4239
4240         * class.c, class-internals.h: Introduce an environment variable
4241         (MONO_GENERIC_SHARING) through which the extent of generic code
4242         sharing can be controlled (share all classes, share only corlib
4243         classes, or share nothing).
4244
4245         * object.c: Only create runtime generic context for classes for
4246         which sharing is enabled.
4247
4248 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4249
4250         * verify.c (do_ldelem): refactor it to work with ldelem.any.
4251
4252         * verify.c (mono_method_verify): property verification of ldelem.any.
4253
4254 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
4255
4256         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
4257         added ldelem.X opcodes.
4258
4259         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
4260
4261         * verify.c: proper verification of ldelem.X 
4262
4263 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
4264
4265         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
4266
4267 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4268
4269         * verify.c (mono_method_verify): null literal requires special handling,
4270         the value pushed on stack need to be flagged as so.
4271
4272         * verify.c (do_ldelema): Verify ldelema properly.
4273
4274 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
4275
4276         * verify.c: Verify ldlen properly.
4277
4278 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
4279
4280         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
4281         to the target object's type. Fixes #346160.
4282
4283 2007-12-05  Dick Porter  <dick@ximian.com>
4284
4285         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
4286         Solaris needs the same workaround as BSD-derived systems.  Fixes
4287         bug 323524, patch by Burkhard Linke
4288         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
4289
4290 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
4291
4292         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
4293         handle to use when error dialog is shown; otherwise, update mask
4294         to show no error dialog when an error occurs.
4295
4296 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
4297
4298         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
4299
4300         * class.c (mono_class_get_field_default_value): New helper function to initialize
4301         field->def_type and field->data.
4302
4303 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
4304
4305         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
4306         the general one.
4307
4308         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
4309
4310         * marshal.c: Avoid depending on delegate->method_info being set.
4311
4312         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
4313         
4314         * object.c (mono_delegate_ctor): Set delegate->method.
4315
4316         * object-internals.h (struct _MonoDelegate): Add 'method' field.
4317
4318         * appdomain.c: Bump corlib version.
4319
4320 2007-11-27  Raja R Harinath  <harinath@gmail.com>
4321
4322         * metadata.c (mono_generic_inst_equal_full): Short-circuit
4323         equality check if we're comparing canonicalized MonoGenericInsts.
4324
4325 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
4326
4327         * class.c (generic_array_methods): Call mono_class_setup_methods () before
4328         accessing class->methods.
4329
4330 2007-11-22  Dick Porter  <dick@ximian.com>
4331
4332         * threads.c: Ensure that the synch_cs is set before trying to use
4333         it.
4334
4335 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
4336
4337         * profiler.c: r89126 broke the statistial profiler, unbreak.
4338
4339 2007-11-22  Martin Baulig  <martin@ximian.com>
4340
4341         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
4342
4343         * mono-debug.c
4344         (mono_debug_debugger_version): Bump to 3.
4345         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
4346         -> mono_debugger_class_initialized().
4347
4348         * mono-debug-debugger.c
4349         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
4350
4351         * class.c
4352         (mono_debugger_start_class_init_func): Removed.
4353         (mono_debugger_class_loaded_methods_func): Added.
4354         (mono_class_setup_methods): Call it here.
4355
4356 2007-11-22  Martin Baulig  <martin@ximian.com>
4357
4358         * mono-debug.c
4359         (mono_debug_add_delegate_trampoline): New public method.
4360         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
4361
4362         * mono-debug.h
4363         (MonoSymbolTable): Added `global_data_table'.
4364         (MonoDebuggerTypeKind): Removed.
4365
4366 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
4367
4368         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
4369         these methods.
4370
4371         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
4372         
4373 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
4374
4375         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
4376
4377 2007-11-20  Martin Baulig  <martin@ximian.com>
4378
4379         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
4380
4381         * mono-debug-debugger.c
4382         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
4383         (mono_debugger_remove_breakpoint): Likewise.
4384         (mono_debugger_check_breakpoints): Likewise.
4385         (mono_debugger_register_class_init_callback): New public method.
4386         (mono_debugger_remove_class_init_callback): Likewise.
4387         (mono_debugger_add_type): Likewise.
4388
4389         * mono-debug-debugger.h
4390         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
4391
4392 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
4393
4394         * class.c: more interface implementations needed for the
4395         array enumerator (fixes bug #341112).
4396
4397 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
4398
4399         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
4400         fix ParamName of ArgumentNullExceptions.
4401
4402 2007-11-17  Miguel de Icaza  <miguel@novell.com>
4403
4404         * reflection.c (mono_reflection_encode_sighelper): Generate the
4405         modopts and modreqs.   I have a useless test that crashes monodis,
4406         but that shows the code working.
4407
4408 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
4409
4410         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
4411         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
4412
4413 2007-11-15  Dick Porter  <dick@ximian.com>
4414
4415         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
4416         When joining a thread, it's the thread that's calling Join that
4417         gets WaitSleepJoin state not the target.  Fixes the standalone
4418         test case in bug 334740, and hopefully the whole bug too.
4419
4420 2007-11-15  Dick Porter  <dick@ximian.com>
4421
4422         * process.c: Read file version info from the files pointed at by
4423         process modules, not the current process.  Fixes bug 315969.
4424
4425         Use windows typedef names in some places to fix warnings on the
4426         windows build.
4427
4428 2007-11-15  Mark Probst  <mark.probst@gmail.com>
4429
4430         * image.c, metadata-internals.h: Added a generic_class_cache hash
4431         to MonoImage for looking up generic classes when sharing generics.
4432
4433 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
4434
4435         * sgen-gc.c: warning cleanups.
4436
4437 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
4438
4439         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
4440         inherited properties.
4441
4442 2007-11-14  Mark Probst  <mark.probst@gmail.com>
4443
4444         * object.c, class-internals.h: Added more information to the
4445         runtime generic context.
4446
4447 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
4448
4449         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
4450         instead of just the target method. Generalize the abstract method handling to
4451         handle any non-static method.
4452
4453         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4454         mono_marshal_get_delegate_invoke () signature change.
4455
4456 2007-11-13  Mark Probst  <mark.probst@gmail.com>
4457
4458         * class.c, class-internals.h: Made
4459         mono_type_get_basic_type_from_generic () public.  Fixed member
4460         access check for shared generics.
4461
4462         * loader.c: Don't insert field into field cache if it's part of a
4463         non-inflated generic class.
4464
4465         * domain.c, domain-internals.h: The generic sharing context is now
4466         part of the jit info data structure.  Added two accessor
4467         functions.
4468
4469 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
4470
4471         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
4472         the array Get/Set/Address methods, since the JIT inlines them.
4473
4474         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
4475
4476         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
4477         (mono_image_init): Initialize runtime_invoke_direct_cache.      
4478
4479         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
4480         mono_marshal_get_delegate_invoke signature change.
4481
4482         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
4483         an additional argument. Add support for invoking abstract methods.
4484
4485         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
4486
4487         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
4488
4489 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4490
4491         * class.c: Do field layout for open generic classes as well.
4492
4493 2007-11-09  Mark Probst  <mark.probst@gmail.com>
4494
4495         * gc.c, gc-internal.h: Don't finalize threadpool threads with
4496         other objects, because the threadpool is still around.  Put them
4497         in a list instead and after finalizing all other objects in the
4498         root domain shut down the thread pool and then finalize the
4499         threads.  Fixes bug #337383.
4500
4501         * threads.c, thread-types.h: New mono_thread_create_internal()
4502         function for marking a thread with the threadpool flag before it
4503         started.  Set synch_cs to NULL after freeing it.
4504
4505         * threadpool.c: Mark threadpool threads before they start.
4506
4507 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
4508
4509         * reflection.h, reflection.c: don't export random functions
4510         and lazy load dbnull and missing objects.
4511
4512 2007-11-07  Jonathan Chambers <joncham@gmail.com>
4513
4514         * class.c: Initialize COM types if COM interfaces
4515         are present (not just COM classes).
4516         
4517         Code is contributed under MIT/X11 license.
4518
4519 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4520         * reflection.c:
4521         create_dynamic_mono_image: hook module profiler events (dynamic case).
4522         mono_image_basic_init: hook assembly profiler events (dynamic case).
4523
4524 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
4525         * profiler.c:
4526         simple_appdomain_unload: completely terminate the profiler
4527         instead of only processing the statistical samples.
4528         simple_shutdown: make sure this is really called exactly once,
4529         even in multithreaded applications, and always listen to
4530         appdomain events.
4531         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
4532         here, the "[un]load" functions will do it.
4533         Fixes bugs #333791 and #325261.
4534
4535 2007-11-07  Geoff Norton  <gnorton@novell.com>
4536
4537         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
4538         rather than depend on __APPLE__.
4539
4540 2007-11-07  Mark Probst  <mark.probst@gmail.com>
4541
4542         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
4543
4544 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
4545
4546         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
4547         UTF16 MonoString. Fix the crash from bug #335488
4548
4549 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
4550
4551         * marshal.c: Correct (for non-Win32 OS) length != size in 
4552         mono_string_from_bstr. Fix #339530.
4553
4554 2007-11-06  Geoff Norton  <gnorton@novell.com>
4555
4556         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
4557         to succeed
4558
4559 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
4560
4561         * process.c: Added run-time GetProcessId API detection for Windows.
4562
4563 2007-11-04  Miguel de Icaza  <miguel@novell.com>
4564
4565         * reflection.c  (mono_param_get_objects): If a parameter has the
4566         attribute [System.Runtime.InteropServices.Optional] we should
4567         set the DefaultValue of the ParameterInfo to be
4568         System.Reflection.Missing instead of DBNull.
4569
4570         See bug #339013.
4571
4572         (mono_get_reflection_missing_object): New method,
4573         returns the System.Reflection.Missing.Value singleton instance.
4574
4575 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
4576
4577         * culture-info-table.h : regenerated.
4578
4579 2007-11-02  Jonathan Chambers <joncham@gmail.com>
4580
4581         * icall.c: Use GetEnvironmentStrings on windows
4582         so we are using the same environment block as 
4583         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
4584         #333740.
4585         
4586         Code is contributed under MIT/X11 license.
4587
4588 2007-10-31  Martin Baulig  <martin@ximian.com>
4589
4590         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
4591
4592         * mono-debug-debugger.h
4593         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
4594
4595 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
4596
4597         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
4598         classes.
4599
4600 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
4601
4602         * culture-info-table.h : regenerated.
4603
4604 2007-10-30  Robert Jordan  <robertj@gmx.net>
4605
4606         * icall-def.h, icall.c:
4607         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
4608
4609         Code is contributed under MIT/X11 license.
4610
4611 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4612
4613         * class.c (mono_class_setup_vtable): Find the inflated methods in the
4614         inflated class instead of inflating them again.
4615         
4616         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
4617         dynamic case.
4618
4619         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
4620         Call setup_supertypes () after klass->parent is set.
4621         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
4622
4623         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
4624         for inflated instances of not yet created dynamic generic classes.
4625         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
4626         times from inflated_method.
4627         (methodbuilder_to_mono_method): Ditto.
4628
4629 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
4630
4631         * gc.c: code cleanup and removed old untested option of not creating the
4632         finalizer thread.
4633
4634 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
4635
4636         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
4637         creating a jump trampoline for dynamic methods.
4638
4639 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
4640
4641         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
4642         generic TypeBuilders when called from another method of the same type (bug #335131).
4643
4644
4645 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
4646
4647         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
4648         doesn't seem to work perfectly.
4649         
4650         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
4651         called multiple times.
4652         (methodbuilder_to_mono_method): Ditto.
4653         (resolve_object): Inflate FieldBuilder's.
4654
4655 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
4656
4657         * string-icalls.c, string-icalls.h, appdomain.c: patch from
4658         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
4659         RemoveEmptyEntries in the string.Split implementation (bug #322375).
4660
4661 2007-10-26  Dick Porter  <dick@ximian.com>
4662
4663         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
4664         Thread initialisation changes
4665
4666 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
4667
4668         * verify.c: fix compatibility check between arrays and System.Array
4669
4670 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
4671
4672         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
4673         too. Fixes #336999.
4674
4675 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
4676
4677         * object.c (mono_value_box): Use typed allocation here.
4678
4679 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
4680
4681         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
4682         trampoline instead of compiling the method right away.
4683
4684         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
4685
4686 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
4687
4688         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
4689         related fields for dynamic classes. Fixes #334493.
4690
4691 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
4692
4693         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
4694         
4695         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
4696
4697         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
4698         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
4699
4700         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
4701
4702         * reflection.c (create_generic_typespec): Initialize klass->generic_container
4703         if needed.
4704         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
4705
4706 2007-10-18  Jonathan Chambers <joncham@gmail.com>
4707
4708         * marshal.c: Use correct key when removing item
4709         from ccw_hash.
4710         
4711         Code is contributed under MIT/X11 license.
4712
4713 2007-10-17  William Holmes  <billholmes54@gmail.com>
4714
4715         *marshal.c: Adding a case to marshal booleans to U1
4716
4717         Code is contributed under MIT/X11 license.
4718
4719 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
4720
4721         * class.c (mono_class_from_name): Search the modules compromising dynamic
4722         assemblies. Fixes #331601.
4723
4724 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
4725
4726         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
4727         exception if the type name contains an assembly component. Fixes #334203.
4728
4729         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
4730         modules inside dynamic assemblies. Fixes #334200.
4731         
4732         * reflection.c: Set image->public_key and image->public_key_length;
4733
4734         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
4735         fields.
4736
4737         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
4738         
4739 2007-10-16  Mark Probst  <mark.probst@gmail.com>
4740
4741         * metadata.c: Implemented correct comparing of generic classes.
4742         An inflated generic class can be equal to a non-inflated one if it
4743         is inflated with generic type variables as type arguments.  Fixes
4744         bug #333798.
4745
4746 2007-10-15  Dick Porter  <dick@ximian.com>
4747
4748         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
4749         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
4750         81646.
4751
4752         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
4753         instead of a monitor lock.  This means that monitor_try_enter and
4754         co can set the thread state safely.
4755         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
4756         thread_interrupt_requested, so interrupt actually works.
4757
4758         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
4759         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
4760         state accessor function
4761
4762 2007-10-15  Martin Baulig  <martin@ximian.com>
4763
4764         * mono-debug.h
4765         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
4766         the debugger with the current runtime.
4767
4768 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
4769
4770         * object.c, object-internals.h: added the ability to set a single
4771         trampoline for all the slots in a vtable.
4772
4773 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4774
4775         * marshal.c: deal with a possible race condition during multicast
4776         delegate invocation.
4777
4778 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4779
4780         * class.c: ensure value type methods don't have the synchronized
4781         flag set.
4782
4783 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
4784
4785         * string-icalls.c, string-icalls.h: reverted unapproved patch that
4786         breaks the build.
4787
4788 2007-10-11  Joel Reed  <joelwreed@comcast.com>
4789
4790         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
4791         to take an options parameter so that empty entries can be removed during
4792         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
4793
4794 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4795
4796         * marshal.c: make sure we don't store the signature from a dynamic
4797         method into the runtime invoke cache (bug #327189).
4798
4799 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4800
4801         * marshal.c: make sure the wrapper methods are properly initialized.
4802
4803 2007-10-11  Mark Probst  <mark.probst@gmail.com>
4804
4805         * metadata.c, metadata-internals.h: Generalized
4806         mono_type_stack_size() to mono_type_stack_size_internal() which
4807         takes an additional argument specifying whether it allows open
4808         types.
4809
4810 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
4811
4812         * verify.c (do_invoke_method): handle typedbyref params
4813         correctly and check for unverifiable return values.
4814
4815         * verify.c (do_newobj): fix a warning.
4816
4817 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4818
4819         * verify.c: don't tread typedbyref as allways unverifable,
4820         so uses, like (ld/st)loc.0 are valid. verify for the cases
4821         that it matters, like boxing related operations.
4822
4823 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
4824
4825         * verify.c: add verification of the newobj opcode. verification
4826         of delegate instantation still missing due ldftn and virldftn not
4827         pushing the function type on stack
4828
4829 2007-10-08  Mark Probst  <mark.probst@gmail.com>
4830
4831         * class-internals.h: Runtime generic context data structure
4832         definition.
4833
4834         * object.c: Initialization of runtime generic context at runtime
4835         vtable creation time.
4836
4837 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
4838         * class.c (mono_class_create_from_typedef,
4839         mono_class_from_generic_parameter, mono_ptr_class_get,
4840         mono_fnptr_class_get, mono_bounded_array_class_get)
4841         * domain.c (mono_domain_create, mono_domain_free)
4842         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
4843         * image.c (do_mono_image_load, mono_image_close):
4844         Hooked up load-unload profiler events.
4845
4846 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
4847
4848         * domain.c: track statistics about the actual amount of native code
4849         allocated.
4850
4851 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
4852
4853         * class.c: the valuetype enumerators don't have the additional
4854         supertypes interfaces.
4855
4856 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
4857
4858         * class.c: need more interfaces setup for the IEnumerator<T>
4859         object created for arrays (tests/ienumerator-interfaces.2.cs).
4860
4861 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
4862
4863         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
4864
4865 2007-10-05  Alp Toker  <alp@atoker.com>
4866
4867         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
4868         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
4869         #315863.
4870
4871 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
4872
4873         * verify.c (verify_type_compatibility_full): verification of
4874         compatibility improved, validates correctly non-strict checks between
4875         native int and I4 types different than (unsigned)int32.
4876
4877         * verify.c (do_store_indirect): added, do all verification of
4878         ldind.X opcodes. 
4879
4880         * verify.c (get_load_indirect_mono_type): renamed to
4881         get_indirect_op_mono_type, as it now returns the MonoType for 
4882         ldind.X and stind.X opcodes.
4883
4884 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
4885
4886         * reflection.c: Fix the encoding of generic type definition for
4887         TypeBuilders.
4888
4889         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
4890         mono_image_typedef_or_ref but allows to specify if typespec lookups should
4891         be made. Typespec check is done prior to typeref cache lookup.
4892
4893         * reflection.c (mono_image_typedef_or_ref): now just delegate to
4894         mono_image_typedef_or_ref_full.
4895
4896         * reflection.c (encode_generic_class): encode the generic class
4897         directly instead of calling encode_type.
4898
4899         * reflection.c (encode_type): encode the generic type definition
4900         MonoClass as a generic instantiation.
4901
4902         * reflection.c (create_typespec): cache typespec tokens in
4903         the assembly->typespec cache. Don't create typespec for a generic
4904         instance MonoClass. Create typespec for the generic type defintion.
4905
4906         * reflection.c (create_generic_typespec): encode the generic
4907         class directly instead of calling encode_type.
4908
4909         * reflection.c (mono_image_create_token): encode the generic
4910         type definition not using a typespec for MonoType instances.
4911
4912
4913 2007-10-04  Raja R Harinath  <rharinath@novell.com>
4914
4915         Fix #328812
4916         * class.c (mono_image_init_name_cache): Don't return nested
4917         'protected internal' classes.
4918         (mono_class_from_name_case): Likewise.
4919
4920 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
4921
4922         * icall-def.h, icall.c : get_bundled_machine_config() is now the
4923           common function used by both DefaultConfig in System.dll and
4924           InternalConfigurationHost in System.Configuration.dll.
4925
4926 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
4927
4928         * class.c: automatically add to vectors only a few essential explicit
4929         generic interfaces. The rest of the interfaces that arrays should
4930         provide are currently implicitly added (but still not lazily, see the
4931         design in the discussion of bug#325495 for the details of what is
4932         needed for that). Additionally, implicit interfaces are assigned the
4933         same vtable slot as the explicit interfaces (as they are compatible):
4934         this enables huge memory savings since we don't need to instantiate
4935         as many memthods and as large vtables anymore. Also, Since
4936         GetEnumerator<T> returns an instance of a type that is required to
4937         support a similarly large set of interfaces as arrays, we add
4938         implicit interfaces and interface offset sharing support to those
4939         types, too. This change adds all the required interfaces so that
4940         the anonarray.cs test case in the bug report works (we don't add
4941         all the interfaces to arrays of arrays 3-level deep and more because
4942         of the memory requirements explained in the bug and since they are much
4943         less common: the lazy-loading support will enabled them to work, too).
4944
4945 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
4946
4947         * verify.c (merge_stacks): major clean up, all type compatibility
4948         checks are done by verify_type_compatibility. This fix my earlier lack
4949         of understanding of the CLR type system and merge_stacks no longer looks
4950         scary.
4951
4952         * verify.c: fixed some bad spelling.
4953
4954 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
4955
4956         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
4957         a given stack slock.
4958         
4959         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
4960         verify_type_compatibility_full. This removed a near indentical function and fixed
4961         handling of Int32 and IntPtr across all opcodes.
4962
4963 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
4964
4965         * class.c: only vectors have the additional generic interfaces.
4966
4967 2007-10-01  Jonathan Chambers <joncham@gmail.com>
4968
4969         * mono-config.c: Use g_strcasecmp instead of
4970         strcasecmp like everywhere else to fix
4971         compilation with MSVC.
4972         
4973         Code is contributed under MIT/X11 license.
4974
4975 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
4976
4977         * object.c, object-internals.h: refactored the IMT code to enable
4978         building a single slot at a time and lazily creating the IMT trampolines
4979         and thunks.
4980
4981 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
4982
4983         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
4984
4985         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
4986         Fixes #328501.
4987         
4988 2007-09-29  Raja R Harinath  <harinath@gmail.com>
4989
4990         * loader.c (method_from_methodspec): Rearrange to avoid
4991         un-necessary exposition.  Don't assert out if the method's
4992         declaring type is a generic type definition.
4993
4994 2007-09-28  Martin Baulig  <martin@ximian.com>
4995
4996         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
4997
4998 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
4999
5000         * class-internals.h: optimize field layout of MonoClass to
5001         requires less cachelines at runtime and save a few bytes on 64 bit
5002         systems.
5003
5004 2007-09-28  Jb Evain  <jbevain@novell.com>
5005
5006         * reflection.c: when encoding type names in custom attributes,
5007         if the type is a closed generic type, its generic arguments
5008         have to be serialized as AssemblyQualifiedName, so that when
5009         they are deserialized, it's possible to re-create them properly.
5010         Fixes #329450.
5011
5012
5013 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5014
5015         * object.c, class-internals.h: added delegate-creation counter.
5016
5017 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
5018
5019         * class.c: cleanup of the code that synthetizes interfaces for
5020         arrays in 2.0: saves quit a bit of corlib mempool memory.
5021         Code to fix bug #325495 ifdeffed out for now until the issues
5022         with memory usage and O(n^2) behaviour are fixed.
5023
5024 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
5025
5026         * marshal.c: when possible, do not duplicate the name of the methods
5027         in the method builder and in the generated MonoMethod.
5028
5029 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5030         * verify.c: added support for type checking ldind_* opcodes.
5031
5032 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
5033
5034         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
5035         which is used to distinguish the fully open instantiation of a TypeBuilder
5036         with the rest. This temporary hack is required to restore the property that
5037         the fully open instantiation is the same type of the generic type definition.
5038
5039         * class-internals.h (mono_generic_class_is_generic_type_definition):
5040         new function as part of the internal API.
5041
5042         * class.c (inflate_generic_type): return NULL when the generic inst is
5043         fully open. The fully open generic type is now the same as the generic type
5044         definition for non TypeBuilder types.
5045
5046         * class.c (mono_generic_class_get_class): removed assert since it is
5047         no longer valid, gklass->cached_class can point to the generic type definition.
5048
5049         * class.c (mono_generic_class_is_generic_type_definition): new.
5050
5051         * metadata.c (mono_generic_class_hash): added is_tb_open field
5052         to the hash calculation.
5053
5054         * metadata.c (free_generic_class): if the generic class is associated
5055         with the generic type definition, its field will come from the mempool and
5056         must not be freed.
5057
5058         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
5059         new, this function identifies the corner case of a TypeBuilder fully open
5060         instantiation.
5061
5062         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
5063         for lookup. Set gclass->cached_class to be the container class in case of
5064         the fully open instantiation of non TypeBuilder types.
5065
5066         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
5067         to compare generic classes.
5068
5069         * reflection.c (method_encode_methodspec): remove assert that
5070         no longer is valid.
5071
5072         * reflection.c (mono_reflection_generic_class_initialize): add
5073         an aditional assert to ensure the proper type is used.
5074
5075 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
5076
5077         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
5078         to enjoy it.
5079
5080 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5081
5082         * verify.c (push_arg): Fixed support for ldarga
5083         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
5084         MonoType used as first arg in case of instance calls.
5085
5086 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
5087
5088         * verify.c: Support for verifying VAR and MVAR types, 
5089
5090 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
5091
5092         * icall.c (ves_icall_get_property_info): Set the reflected type of the
5093         accessors correctly.
5094
5095 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
5096
5097         * threads.c: support OSX and other systems in
5098         mono_thread_get_stack_bounds (bug #328026).
5099
5100 2007-09-25  Martin Baulig  <martin@ximian.com>
5101
5102         * mono-debug.h
5103         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
5104
5105 2007-09-24  Martin Baulig  <martin@ximian.com>
5106
5107         * mono-debug.h
5108         (MonoDebugClassEntry): Moved the definition of this struct into
5109         mono-debug.c to make it private.
5110
5111         * mono-debug.c
5112         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
5113         type table per symbol file, we don't need to store the symfile id
5114         any longer.
5115
5116 2007-09-24  Martin Baulig  <martin@ximian.com>
5117
5118         Create one type table per symbol file, since a `MonoClass *' gets
5119         invalid when its image is unloaded.
5120
5121         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
5122         (MonoDebugHandle): Added `type_table'.
5123
5124 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
5125
5126         * mempool.c, mempool.h: added mono_mempool_new_size () API
5127         to be able to specify a smaller initial size for the pool.
5128         Adjusted the code to slowly increase pool size before using
5129         the previous default size.
5130         * image.c: use a small initial size for image mempools.
5131
5132 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
5133
5134         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
5135         Fixes ##320990.
5136
5137         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
5138         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
5139
5140 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
5141
5142         * metadata.c (mono_type_create_from_typespec): Remove an invalid
5143         free. Fixes #327438.
5144
5145 2007-09-21  Raja R Harinath  <harinath@gmail.com>
5146
5147         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
5148         generic instantiations, etc.
5149         <MONO_TYPE_ARRAY>: Likewise.
5150
5151 2007-09-21  Martin Baulig  <martin@ximian.com>
5152
5153         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
5154         these structs were never defined.
5155         (MonoDebugHandle): Removed the `_priv' field, it was never used.
5156
5157 2007-09-21  Martin Baulig  <martin@ximian.com>
5158
5159         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
5160
5161 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
5162
5163         * image.c: removed the guid hash tables: we can get the same info
5164         without the additional memory usage hit (partially fixes also bug #327052).
5165
5166 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5167
5168         * profiler.h, profiler-private.h, profiler.c: add a new profiler
5169         event to handle unloading methods. After the event is called, the
5170         corresponding MonoMethod* must be considered invalid.
5171         * loader.c (mono_free_method): call the new mono_profiler_method_free
5172         event.
5173
5174 2007-09-20  Mark Probst  <mark.probst@gmail.com>
5175
5176         * domain-internals.h: New flag in MonoJitInfo which marks shared
5177         generic methods.  New hash table (shared_generics_hash) in
5178         MonoDomain to keep track of shared generic methods.  Prototypes
5179         for functions to register and lookup shared generic methods.
5180
5181         * domain.c: Support for registering and looking up shared generic
5182         methods via a hash table (shared_generics_hash) in MonoDomain.
5183
5184         * class-internals.h: New exception to signal failure of shared
5185         compilation of a generic method.  New counters for generics
5186         sharing in MonoStats.
5187
5188 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
5189
5190         * image.c, metadata-internals.h: don't keep a file descriptor open
5191         for loaded assemblies (bug#325988).
5192
5193 2007-09-19  Raja R Harinath  <rharinath@novell.com>
5194
5195         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
5196         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
5197         use the corresponding datatypes.
5198         (type_in_image): Update to changes.
5199         (CleanForImageUserData): Simplify.
5200         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
5201         Avoid quadratic behaviour in handling the "stolen" list by
5202         separating the filter predicate out, and by prepending the stolen
5203         items rather than appending them.
5204         (steal_ginst_in_image): Likewise.
5205         (mono_metadata_clean_for_image): Update to changes.
5206
5207 2007-09-19  Martin Baulig  <martin@ximian.com>
5208
5209         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
5210
5211 2007-09-19  Martin Baulig  <martin@ximian.com>
5212
5213         * mono-debug.c (mono_debug_cleanup): Don't call
5214         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
5215
5216 2007-09-19  Raja R Harinath  <harinath@gmail.com>
5217
5218         Fix crash on 'make run-test' in mcs/errors
5219         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
5220         Avoid more potential allocations in mono_class_from_mono_type.
5221         (ginst_in_image): Update to changes.
5222         (gclass_in_image): Rearrange slightly.
5223
5224 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5225
5226         * class.c (mono_class_init): Move the code that sets up class->methods to 
5227         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
5228
5229         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
5230         canonical instance of an inflated generic signature.
5231         (mono_type_create_from_typespec): Remove an invalid free.
5232
5233         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
5234
5235 2007-09-18  Marek Habersack  <mhabersack@novell.com>
5236
5237         * domain-internals.h: added a declaration of the
5238         mono_assembly_load_full_nosearch internal function.
5239
5240         * assembly.c (mono_assembly_load_with_partial_name): use
5241         mono_try_assembly_resolve return value properly.
5242         (mono_assembly_load_full_nosearch): copied the function body from
5243         mono_assembly_load_full, without the code to invoke assembly
5244         search hooks.
5245         (mono_assembly_load_full): calls the above new function and if the
5246         assembly is not resolved, invokes the search hooks.
5247
5248         * appdomain.c (mono_runtime_init): restore the global postload
5249         assembly search handlers.
5250
5251 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
5252
5253         * class.c (mono_class_init): Make sure class->methods and class->properties
5254         are never NULL in the generics case.
5255
5256         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
5257
5258 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
5259
5260         * metadata.c (free_generic_class): Disable some code to fix the build.
5261
5262         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
5263
5264         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
5265         from the image mempool.
5266
5267         * metadata.c (free_generic_class): Free more data from the inflated class.
5268
5269         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
5270
5271         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
5272         mempool.
5273         (mono_type_create_from_typespec): Ditto.
5274
5275         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
5276         MonoImage to the caller.
5277         (mono_init_internal): Save the opened image in a global variable.
5278         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
5279
5280         * reflection.c (resolve_object): Fix a leak.
5281
5282         * metadata.c: Fix the freeing of data in the generics caches.
5283         
5284         * metadata.c (free_generic_inst): Comment this out to fix the build.
5285         (free_generic_class): Ditto.
5286
5287         * metadata.c: Free cached generic methods, instantinations and classes when
5288         they are removed from the caches.
5289         (mono_metadata_free_type): Free the type itself.
5290
5291         * class.c: Free the result of mono_class_inflate_generic_type () in a few
5292         places.
5293
5294 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5295
5296         * boehm-gc.c: restrict managed allocs to __thread supporting
5297         architectures.
5298
5299 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
5300
5301         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
5302         (mono_generic_class_get_class): Fix a leak.
5303
5304         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
5305         mono_metadata_free_type ().
5306         (mono_metadata_inflate_generic_inst): Fix a leak.
5307
5308 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5309
5310         * mono-debug.c (free_header_data): Fix a leak missed earlier.
5311
5312         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
5313         mempool.
5314
5315         * mono-debug.c (mono_debug_close_image): Fix call to 
5316         g_hash_table_remove ().
5317
5318 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5319
5320         * icall-def.h: redirect all the string ctor to the managed
5321         CreateString () methods.
5322         * string-icalls.c, string-icalls.h: removed dead code for string
5323         ctors and icalls.
5324
5325 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5326
5327         * mono-debug.c: Fix memory leaks.
5328
5329 2007-09-14  Jonathan Chambers <joncham@gmail.com>
5330
5331         * threads-types.h: Implement mono_hazard_pointer_set and 
5332         mono_hazard_pointer_clear macros using do/while(0) to fix
5333         compilation with MSVC.
5334         
5335         Code is contributed under MIT/X11 license.
5336
5337 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
5338
5339         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
5340         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
5341
5342 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5343
5344         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
5345         icalls.
5346
5347 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
5348
5349         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
5350         managed-code allocated as well.
5351
5352 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5353
5354         * class.c (mono_class_is_assignable_from): Add support for generic variance.
5355
5356 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
5357
5358         * boehm-gc.c: fixed the build after the AOT changes.
5359
5360 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
5361
5362         * wrapper-types.h: Add an ALLOC wrapper type.
5363
5364         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
5365         reference managed allocator methods.
5366
5367 2007-09-12  Marek Safar  <marek.safar@gmail.com>
5368
5369         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
5370         of Type array and not MonoType, a fix suggested by Hari.
5371         
5372 2007-09-12  Jonathan Chambers <joncham@gmail.com>
5373
5374         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
5375         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
5376         
5377         Code is contributed under MIT/X11 license.
5378
5379 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5380
5381         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
5382
5383 2007-09-12  Marek Habersack  <mhabersack@novell.com>
5384
5385         * image.c (do_mono_image_open): if assembly file fails to open and
5386         MONO_IOMAP is in effect, try to find the path in a
5387         case-insensitive way.
5388
5389         * appdomain.c (mono_runtime_init): do not install postload hooks -
5390         tests show that MS.NET doesn't use anything of that sort to
5391         trigger the AppDomain.AssemblyResolve event.
5392         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
5393         made non-static.
5394         (mono_runtime_init): init portability helpers here.
5395
5396         * assembly.c (mono_assembly_load_with_partial_name): if other   
5397         attempts fail, trigger the AppDomain.AssemblyResolve event handler
5398         to resolve the assembly.
5399
5400         * domain-internals.h: added mono_try_assembly_resolve and marked
5401         it as internal.
5402
5403 2007-09-11  Jb Evain  <jbevain@novell.com>
5404
5405         * object-internals.h (MonoReflectionDynamicMethod): add
5406         a `MonoReflectionType *owner` field. The owner is used
5407         * reflection.c:
5408         (mono_reflection_create_dynamic_method): use the owner of the dynamic
5409         method as the class declaring the dynamic method.
5410         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
5411         dynamic method to the declaring type of the methodbuilder.
5412
5413 2007-09-11  Mark Probst  <mark.probst@gmail.com>
5414
5415         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
5416         rules for calling methods via reflection.
5417
5418 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
5419
5420         * reflection.c (resolve_object): Add support for MonoGenericClass. 
5421         Inflate MonoType's.
5422
5423 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
5424
5425         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
5426         provide a managed method that does fast allocations without needing
5427         a managed->unmanaged transition. Boehm GC implementation currently
5428         enabled for ptrfree objects on sane architectures.
5429
5430 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5431
5432         * marshal.c, marshal.h: exported a couple of useful functions and
5433         added mono_mb_get_label () to easily handle backward branches.
5434
5435 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
5436
5437         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
5438
5439 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
5440
5441         * loader.c (find_method): Fixed the regression introduced while
5442         fixing bug #81466.
5443
5444 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
5445
5446         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
5447         well.
5448         
5449         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
5450         icall.c reflection.c: Pass a MonoGenericContext argument to 
5451         mono_lookup_dynamic_token ().
5452
5453         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
5454         #82744.
5455         
5456 2007-09-09  Robert Jordan  <robertj@gmx.net>
5457
5458         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
5459         for generic methods.
5460
5461         * object.c (mono_object_get_virtual_method): Handle generic methods.
5462         Fixes bug #78882.
5463
5464         Code is contributed under MIT/X11 license.
5465
5466 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
5467
5468         * image.c: fix locking in mono_image_load_file_for_image ().
5469
5470 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
5471
5472         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
5473         used only as a cache: added an icall to fill it.
5474
5475 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
5476
5477         * reflection.h: exposed mono_reflection_free_type_info
5478         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
5479         since mono_reflection_bind_generic_parameters makes a copy of it.
5480         * reflection.c (free_type_info): subinfos should be freed.
5481         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
5482         made non static.
5483         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
5484         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
5485         this fixes #82695 and #81726.
5486    
5487
5488 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
5489
5490         * process.h, process.c:  added support for user profile/info in
5491           ProcessStartInfo. For now only Windows works.
5492
5493 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
5494
5495         * metadata.c: consider the generic arguments when comparing
5496         signatures (bug #82614).
5497
5498 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5499
5500         * cil-coff.h, image.c: updated assembly loader to cope with the
5501         PE32+ 64 bit file format.
5502
5503 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
5504
5505         * assembly.c, class.c, domain.c, loader.c: remove useless
5506         inclusion of cil-coff.h.
5507
5508 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
5509
5510         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
5511         if interface is marked with CoClassAttribute. 
5512    
5513         Code is contributed under MIT/X11 license.
5514
5515 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
5516
5517         * sgen-gc.c: ensure no object from the to space is copied again or finalized
5518         if it's seen twice in major collections.
5519
5520 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
5521
5522         * sgen-gc.c: big objects are not copied to the gray area, but they
5523         need to be considered for scanning, too, if they are brought alive
5524         by an object ready for finalizations or a survived one.
5525
5526 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
5527
5528         * sgen-gc.c: properly account the number of disappearing links when
5529         they are nullified.
5530
5531 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
5532
5533         * sgen-gc.c: share the code to scan the registered roots between the
5534         different types of collections.
5535
5536 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5537
5538         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
5539
5540 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
5541
5542         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
5543         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
5544
5545 2007-08-28  Mark Probst  <mark.probst@gmail.com>
5546
5547         * security-manager.c (mono_security_manager_get_methods):
5548         LinkDemandSecurityException now has 2 arguments instead of 3.
5549
5550 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
5551
5552         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
5553         platforms which need it.
5554
5555 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5556
5557         * sgen-gc.c: unregister thread data structures with a pthread_key_t
5558         dtor.
5559
5560 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
5561
5562         * threads.c: free the thread static data on thread exit.
5563
5564 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
5565
5566         * class.c: walk the hierarchy to find the generic definition for
5567         a class (fixes runtime part of bug #82498).
5568
5569 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5570
5571         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
5572         ...
5573
5574         * image.c (mono_image_close): Here. Hopefully fixes #82510.
5575
5576 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5577
5578         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
5579
5580 2007-08-24  Robert Jordan  <robertj@gmx.net>
5581
5582         * appdomain.c: don't perform the ':'->';' substitution on Win32.
5583
5584 2007-08-24  Jb Evain  <jbevain@novell.com>
5585
5586         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
5587         for byref types.
5588
5589 2007-08-24  Mark Probst  <mark.probst@gmail.com>
5590
5591         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
5592         #82286.
5593
5594 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
5595
5596         * assembly.c: Fix a warning.
5597         
5598 2007-08-23  Marek Habersack  <mhabersack@novell.com>
5599
5600         * appdomain.c: parse the <runtime> section looking for the probing
5601         element with the 'privatePath' attribute, which sets additional
5602         directories in which the runtime should look for assemblies.
5603
5604 2007-08-23  Robert Jordan  <robertj@gmx.net>
5605
5606         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
5607         Fixes #82499.
5608
5609 2007-08-23  Martin Baulig  <martin@ximian.com>
5610
5611         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
5612         _mono_debug_init_corlib() and remove it from the header file.
5613
5614 2007-08-23  Martin Baulig  <martin@ximian.com>
5615
5616         * mono-debug-debugger.c
5617         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
5618         don't notify the debugger about it.
5619
5620         * mono-debug-debugger.h
5621         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
5622
5623 2007-08-23  Robert Jordan  <robertj@gmx.net>
5624
5625         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
5626         Code is contributed under MIT/X11 license.
5627
5628 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
5629
5630         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
5631
5632 2007-08-22  Martin Baulig  <martin@ximian.com>
5633
5634         * mono-debug.c: Store debugging info on a per-domain basis and
5635         free it on domain unload.  Add support for unloading symbol files.
5636
5637         * mono-debug.h
5638         (MonoDebugList): New typedef.
5639         (MonoSymbolTable):
5640         - add `data_tables and `type_table'.
5641         - replace 'symbol_files' and `num_symbol_files' with a
5642           `MonoDebugList *'.
5643         (mono_debug_data_table): Removed.
5644         (mono_debug_list_add): New public function.
5645         (mono_debug_list_remove): New public function.
5646         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
5647         (mono_debug_init_2_memory): Renamed into
5648         mono_debug_open_image_from_memory().
5649         (mono_debug_close_image): New public function.
5650         (mono_debug_domain_create): Likewise.
5651         (mono_debug_domain_unload): Likewise.
5652         (MONO_DEBUGGER_VERSION): Bump to 60.
5653
5654         * mono-debug-debugger.h
5655         (MonoDebuggerEvent):
5656         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
5657         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
5658         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
5659         - rename `THREAD_CREATED' and `THREAD_EXITED' into
5660           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
5661         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
5662           meaning.
5663         (mono_debugger_add_symbol_file): Removed.
5664         (mono_debugger_add_type): Removed.
5665         (mono_debugger_lookup_type): Removed.
5666         (mono_debugger_lookup_assembly): Removed.
5667
5668         * domain.c
5669         (mono_domain_create): Call mono_debug_domain_create().
5670         (mono_init_internal): Call mono_debug_init_corlib().
5671
5672         * assembly.c
5673         (mono_assembly_close): Call mono_debug_close_image().
5674
5675 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
5676
5677         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
5678         mmap call.
5679
5680 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
5681
5682         * sgen-gc.c: ensure section->pin_queue_end is initialized
5683         correctly when non pinning objects in the section have been found.
5684
5685 2007-08-22  Marek Habersack  <mhabersack@novell.com>
5686
5687         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
5688         containing a list of directories separated by ':'. MSDN docs say
5689         the directories should be separated with ';'. Part of a bugfix for
5690         bug #81446
5691
5692 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
5693
5694         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
5695         it should MonoType and not MonoClass.
5696
5697 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
5698
5699         * culture-info-table.h : regenerated.
5700
5701 2007-08-20  William Holmes  <billholmes54@gmail.com>
5702
5703         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
5704          to call ReplaceFile Kernel32 on windows or in io-layer.
5705         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
5706         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
5707          as an internal call.
5708
5709         Code is contributed under MIT/X11 license.
5710
5711 2007-08-20  Jb Evain  <jbevain@novell.com>
5712
5713         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
5714         and MONO_EXCEPTION_FIELD_ACCESS.
5715
5716         * debug-helpers.[c|h]: new mono_field_full_name function.
5717
5718 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5719
5720         * class.c: Removed class_security_level() and moved it to
5721         security-core-clr.c.
5722
5723         * security-core-clr.c, security-core-clr.h: class_security_level()
5724         is now public and renamed to mono_security_core_clr_class_level().
5725         It also looks for security attributes in the classes a class is
5726         nested in.
5727
5728 2007-08-20  Mark Probst  <mark.probst@gmail.com>
5729
5730         * security-core-clr.c, security-core-clr.h: CoreCLR security
5731         utility functions.
5732
5733         * Makefile.am: Added security-core-clr.[ch].
5734
5735         * security-manager.c, security-manager.h: Functions and enum for
5736         setting and getting the security mode.
5737
5738         * class.c: CoreCLR security checks.
5739
5740 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
5741
5742         * icall-def.h, process.c, process.h: implemented icall to get
5743         user/system processor times.
5744
5745 2007-08-17  Mark Probst  <mark.probst@gmail.com>
5746
5747         * domain.c, threads.c, class-internals.h, domain-internals.h: New
5748         reader-lock-free jit_info_table.
5749
5750 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
5751
5752         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
5753
5754         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
5755
5756         * object-internals.h (MonoException): Add missing _data member.
5757
5758 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
5759
5760         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
5761         checking that only methods with matching qname or fqname are picked
5762         from implemented interfaces.
5763
5764 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5765
5766         * verify.c (do_newarr):added, do type verification of
5767         newarr ops, push the right value on the eval stack.
5768         * verify.c (mono_method_verify): use do_newarr
5769
5770
5771 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5772
5773         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
5774         factored the common code into get_boxable_mono_type, which
5775         is now using mono_type_get_full, this fixed byref related tests.
5776
5777 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
5778
5779         * class.c: added mono_type_get_full, this function has the same
5780         behavior of mono_class_get_full but the returned MonoType has
5781         all metadata of the associated token in case of a typespec token.
5782         * class.c: added mono_type_retrieve_from_typespec, used by 
5783         mono_type_get_full to retrieve the token type.
5784         * class.c (mono_class_create_from_typespec): changed to use
5785         mono_type_retrieve_from_typespec.
5786         * class.c (mono_ldtoken): changed to use mono_type_get_full
5787         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
5788         * class-internals.h: exported mono_type_get_full for internal use.
5789
5790 2007-08-16  Jb Evain  <jbevain@novell.com>
5791
5792         * domain.c (supported_runtimes): add entry for
5793         the 'moonlight' runtime version.
5794
5795 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5796
5797         * verify.c (mono_method_verify): small typo sliped in.  
5798
5799 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5800
5801         * verify.c (do_unbox_value): added, do type verification of
5802         unboxing ops
5803         * verify.c (mono_method_verify): use do_unbox_value
5804
5805
5806 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5807
5808         * verify.c (dump_stack_value): fixed typo, was printing string
5809         instead of object on stack.
5810         * verify.c (do_box_value): moved the byref check up as it leads
5811         to invalid code and should be done earlier.
5812         * verify.c: improved error messages for and ldobj
5813
5814 2007-08-15  William Holmes  <billholmes54@gmail.com>
5815
5816         * marshal.c (emit_marshal_custom): Omit the call to 
5817           marshal_native_to_managed when calling native to managed 
5818           and the argument is specified as an out argument.
5819
5820         Code is contributed under MIT/X11 license.
5821
5822 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
5823
5824         * verify.c: fixed the type checks for generics, function pointers and vectors.
5825         Added type verification for ldobj and ldtoken. The verifier
5826         would segfault if header or signature of a method contained references
5827         to non-existant types.
5828
5829 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
5830
5831         * marshal.c (cominterop_get_ccw): Patch from
5832         Bill Holmes to no walk up interface hierarchy. 
5833         All parent methods should be present in the interface for COM.
5834    
5835         Code is contributed under MIT/X11 license.
5836
5837 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
5838
5839         * marshal.c (emit_marshal_com_interface): Patch from
5840         Bill Holmes to handle COM Interfaces as return values
5841         for native->managed calls.
5842    
5843         Code is contributed under MIT/X11 license.
5844
5845 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
5846
5847         * marshal.c (cominterop_get_idispatch_for_object): Implement
5848         for runtime callable wrappers.
5849    
5850         Code is contributed under MIT/X11 license.
5851
5852 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
5853
5854         * pedump.c (main): changed from mono_init to mono_init_from_assembly
5855         so 2.0 types are accessible
5856
5857
5858 2007-08-13  Miguel de Icaza  <miguel@novell.com>
5859
5860         * domain.c (mono_init_internal): Call mono_assembly_load_friends
5861         once we load mscorlib.   Due to the order in which we initialize,
5862         the mono_assembly_load_full routine that loads mscorlib did not
5863         load friends.   We now load it once we load the
5864         mono_defaults.internals_visible_class class. 
5865
5866         * assembly.c: Expose the mono_load_friend_assemblies method.
5867
5868 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
5869
5870         * verify.c: improved the handling of boxing, better
5871         type checking for unary ops and conversion. Fix bug
5872         regarding managed pointer compatibility checking
5873
5874 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
5875
5876         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
5877
5878         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
5879
5880 2007-08-09  Raja R Harinath  <rharinath@novell.com>
5881
5882         * reflection.c (dup_type): Remove.
5883         * class.c (dup_type): Remove.
5884         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
5885         instead of the dodgy 'dup_type'.
5886         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
5887         handle the case where 'dup_type' needed the second argument.
5888
5889 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
5890
5891         * domain.c: Fix a warning.
5892
5893 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
5894
5895         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
5896         checking that methods with the same fqname are not overridden
5897         with a method from an ancestor.
5898
5899 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
5900
5901         * threads.c (free_thread_static_data_helper): Avoid a crash if
5902         thread->static_data is not yet set.
5903
5904 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
5905
5906         * marshal.c: Use correct image when emitting
5907         native wrapper for COM calls.
5908    
5909         Code is contributed under MIT/X11 license.
5910
5911 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
5912
5913         * icall-def.h, security.c, security.h :
5914           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
5915
5916 2007-08-07  Martin Baulig  <martin@ximian.com>
5917
5918         * mono-debug-debugger.h
5919         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
5920
5921         * domain.c (mono_domain_free): Call
5922         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
5923
5924 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
5925
5926         * verify.c (check_underflow, check_overflow): error message now returns IL offset
5927         * verify.c (in_same_block): code should test if either offset is inside the clauses
5928         * verify.c (mono_method_verify): push the exception into the eval stack of exception
5929         and filter blocks
5930
5931 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
5932
5933         * image.c (mono_image_close): Fix a leak.
5934
5935         * object.c (mono_runtime_invoke_array): Avoid using alloca.
5936
5937         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
5938
5939 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
5940
5941         * domain.c, threads.c, threads-types.h: fix memory retention issue
5942         with thread static variables not being cleared on domain unload.
5943         Reuse thread static slots after domain unload.
5944
5945 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
5946
5947         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
5948         nullable type.
5949
5950         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
5951         now done in mono_runtime_invoke_array.
5952
5953         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
5954         receiver is a nullable type.
5955
5956         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
5957         generic parameter.
5958
5959 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
5960
5961         * marshal.c: Implement COM Objects as return type for 
5962         managed->unmanaged calls. Added Release calls for COM Object
5963         out/return values in managed->unmanaged calls.
5964
5965         Code is contributed under MIT/X11 license.
5966
5967 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
5968
5969         * threads.h, threads-type.h: move the hazard pointer declarations
5970         to the private header.
5971
5972 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
5973
5974         * file-io.c, appdomain.c: memory leak fixes.
5975
5976 2007-08-02  Dick Porter  <dick@ximian.com>
5977
5978         * socket-io.c
5979         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
5980         SO_REUSEADDR setting into io-layer/sockets.c.
5981
5982 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
5983
5984         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
5985         from Object when called on a generic parameter. Fixes #82211.
5986
5987 2007-08-01  Dick Porter  <dick@ximian.com>
5988
5989         * file-io.c (convert_share): Test FileShare values bit-by-bit.
5990         Fixes bug 79250 yet again.
5991
5992 2007-07-30  Martin Baulig  <martin@ximian.com>
5993
5994         Merged the `debugger-dublin' branch.
5995
5996         * mono-debug.h
5997         (MonoDebugDataTable): New typedef.
5998         (MonoDebugMethodAddressList): New typedef.
5999         (MonoDebugWrapperData): Removed.
6000         (MonoDebugSymbolTable): Removed `current_data_table',
6001         `current_data_table_size', `current_data_table_offset'.
6002         (MonoDebugDataItemType): Moved into mono-debug.c.
6003         (MonoDebugMethodJitInfo): Remove `address'.
6004         (mono_debug_data_table): New global variable.
6005         (mono_debug_lookup_method_addresses): New public function.
6006         (mono_debug_find_method): Take a `MonoMethod *', not a
6007         `MonoDebugMethodInfo *'.
6008
6009         * mono-debug.c: Drop support for the old symbol tables.
6010
6011 2007-06-28  Martin Baulig  <martin@ximian.com>
6012
6013         * mono-debug.c (mono_debug_debugger_version): New public variable.
6014
6015 2007-07-31  William Holmes  <billholmes54@gmail.com>
6016
6017         * metadata.c Changed mono_type_create_from_typespec to not insert
6018           the type into the hash map until after
6019           do_mono_metadata_parse_type has completed.
6020         Fixes Bug #82194
6021         Code is contributed under MIT/X11 license.
6022
6023 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
6024
6025         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
6026         generic parameter. Fixes #82211.
6027
6028 2007-07-27  Jb Evain  <jbevain@novell.com>
6029
6030         * pedump.c (dump_metadata, dump_metadata_header): dump
6031         versions contained in the metadata header.
6032
6033 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6034
6035         * threads.c: register small_id_table with the GC.
6036
6037 2007-07-27  Mark Probst  <mark.probst@gmail.com>
6038
6039         * threads.c, threads.h, class-internals.h, object-internals.h:
6040         Hazard pointers, to be used by lock-free parallel algorithms.
6041
6042 2007-07-26  Dick Porter  <dick@ximian.com>
6043
6044         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
6045         routine on non-windows platforms, as I've not managed to think of
6046         a non-kludgy way of doing this.  Finishes off bug 78739.
6047
6048 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
6049
6050         * object.c: properly setup interface_bitmap in proxy vtables.
6051
6052 2007-07-25  Marek Habersack  <mhabersack@novell.com>
6053
6054         * appdomain.c (get_shadow_assembly_location): do not use TickCount
6055         to create unique shadow copy target directories, use the domain's
6056         serial number instead. Each domain gets a unique target directory
6057         that way.
6058
6059         * domain.c (mono_domain_create): added code to increment domain
6060         shadow copy serial number and cache the value in the current
6061         domain structure.
6062
6063         * domain-internals.h (struct _MonoDomain): added a new field -
6064         shadow_serial to hold the serial number used in generation of
6065         shadow-copy directories. This is to make sure that the directory
6066         name is unique for each and every domain created. We avoid a race
6067         condition with overriding assemblies already in use by other app
6068         domains.
6069
6070 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
6071
6072         * class.c (mono_bounded_array_class_get): fixed memory leak when 
6073         binding generic parameters.
6074
6075 2007-07-24  Raja R Harinath  <rharinath@novell.com>
6076
6077         * metadata.c (do_mono_metadata_parse_generic_class): Use
6078         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
6079         error.
6080
6081 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
6082
6083         * loader.c, class-internals.h, reflection.c: removed the per-method
6084         generics hashtable: we use the global one through the call of
6085         mono_class_inflate_generic_method ().
6086
6087 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6088
6089         * class.c, metadata.c, class-internals.h: introduce yet another
6090         generics global cache for inflated methods (fixes 98% of the perf
6091         issue in bug #81806).
6092
6093 2007-07-23  Raja R Harinath  <rharinath@novell.com>
6094
6095         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
6096         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
6097         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
6098         return a MonoGenericInst containing (a copy) of those types.
6099         (mono_metadata_inflate_generic_inst): Update to changes.
6100         (mono_metadata_parse_generic_inst): Likewise.
6101         (mono_get_shared_generic_inst): Likewise.
6102         * reflection.c (mono_class_bind_generic_parameters): Likewise.
6103         (mono_reflection_bind_generic_method_parameters): Likewise.
6104         * metadata-internals.h: Likewise.
6105         * icall.c (free_generic_context): Kill.
6106         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
6107
6108         * reflection.c (reflection_methodbuilder_to_mono_method): Use
6109         mono_metadata_type_dup.
6110         * marshal.c (mono_mb_create_method): Likewise.
6111
6112         * metadata.c (mono_metadata_type_dup): Rename from
6113         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
6114         MonoImage.  Handle a few more cases, esp. when no mempool is given.
6115         * marshal.c, metadata-internals.h: Update to changes.
6116
6117 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6118
6119         * class.c: fixed a small leak for array classes and removed warning.
6120
6121 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
6122
6123         * loader.c (mono_method_get_param_token): Make this work on generic methods.
6124         Return 0x8000000 for return parameters. Fixes #82161.
6125
6126 2007-07-21  Marek Habersack  <grendello@gmail.com>
6127
6128         * appdomain.c (get_shadow_assembly_location): append the current
6129         ticks value to the path. Avoids overwriting the same assemblies by
6130         several threads at the same time.
6131
6132 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6133         and Raja R Harinath  <rharinath@novell.com>
6134
6135         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6136         Simplify slightly.
6137         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
6138         property for testing if a method is a generic method definition.
6139
6140 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
6141
6142         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
6143
6144 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6145
6146         * verify.c: used function from private branch, reverted to the one in class.h 
6147
6148 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6149
6150         * verify.c: a typo slipped in and the code wont compile
6151
6152 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6153
6154         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
6155         disabled box instruction as it is doing the wrong thing
6156         improved stack dump messages, now it is easier to debug type related issues
6157
6158
6159 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
6160
6161         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
6162
6163 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6164
6165         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
6166         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
6167         grouped with class and valuetype. This change will simply 
6168         the code as it should be handled just like unmanaged pointers.
6169
6170 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6171
6172         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
6173
6174 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
6175
6176         * verify.c: several stack merge issues fixed, reference comparisons now
6177         check the type size. strict type check now works correctly.
6178         added more uses of IS_MANAGED_POINTER macro.
6179         fixed issues pointed by running the test suite against .net.
6180         
6181
6182 2007-07-19  Mark Probst  <mark.probst@gmail.com>
6183
6184         * class.c, loader.c, class-internals.h: Removed the
6185         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
6186         defines.
6187
6188         * icall.c: Better error checking in some internal reflection
6189         methods.
6190
6191 2007-07-18  William Holmes  <billholmes54@gmail.com>
6192
6193         * filewatcher.c : removed unused variable 'filename' in 
6194           ves_icall_System_IO_FSW_SupportsFSW
6195
6196 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
6197
6198         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
6199         obsolete, removed.
6200
6201 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
6202
6203         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
6204         
6205         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
6206
6207 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
6208
6209         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
6210         Implement generics support.
6211         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6212
6213         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
6214         type_args and method_args arguments.
6215         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
6216         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
6217         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
6218
6219 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
6220
6221         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
6222           It adds a rootimage parameter to mono_reflection_get_type_internal,
6223           adds new function mono_reflection_get_type_with_rootimage and use
6224           the rootimage to resolve the types instead of the current image
6225
6226 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
6227
6228         * culture-info-table.h: Forgot to update after r78304.
6229
6230 2007-07-13  Raja R Harinath  <rharinath@novell.com>
6231
6232         * class.c (mono_class_is_open_constructed_type)
6233         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
6234
6235 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
6236
6237         * class.c (mono_bounded_array_class_get):  method fails if used with
6238         an incomplete TypeBuilder enum (no basetype field), fixed it by 
6239         avoiding calculating the size for such array as it cannot be instantiated.
6240         Fix bug #82015
6241
6242 2007-07-12  Raja R Harinath  <rharinath@novell.com>
6243
6244         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
6245         field.
6246         * metadata.c, reflection.c: Update to changes.
6247
6248 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
6249
6250         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
6251         mono_class_is_valid_enum, they are used to valide a enum when loading.
6252         * reflection.c: used new functions to throw TypeLoadException when and
6253         invalid enum is build with TypeBuilder. Fixes #82018
6254   
6255 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6256
6257         * object.c: forgot commit of mono_class_setup_methods () to access
6258         iface->methods.
6259         * object-internals.h: added a few more handy fields to
6260         MonoIMTCheckItem.
6261
6262 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
6263
6264         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
6265         iface->methods.
6266
6267 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
6268
6269         * class-internals.h, object-internals.h, object.c: IMT-based
6270         interface invocation core from Massimiliano Mantione
6271         (massi@ximian.com) with a reworked arch-specific interface,
6272         bsearch implementation and a few bugfixes and memory savings by me.
6273
6274 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
6275
6276         * class.c (mono_class_create_from_typedef): mono would segfault if 
6277         an enum did not have a __value field. It now throws a TypeLoadException
6278         for such cases. Fix bug #82022
6279
6280 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6281
6282         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
6283
6284 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6285
6286         * class.c (mono_class_init): If a class is already inited but has
6287         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
6288
6289 2007-07-09  Mark Probst  <mark.probst@gmail.com>
6290
6291         * class.c: Properly handle the case of an unimplemented interface
6292         method.  Fixes: 81673.
6293
6294 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6295
6296         * class-internals.h, object.c: cleanup patch from massi: use
6297         MonoVTable->interface_bitmap since the vtable interfaces offset array
6298         is going away.
6299
6300 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
6301
6302         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
6303         GetMDStreamVersion icall instead.
6304
6305 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
6306
6307         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
6308         not use mono_dl_build_path() with a full library name: makes
6309         fallbacks to libgaim and libfam work.
6310
6311 2007-07-06  William Holmes  <billholmes54@gmail.com>
6312
6313         * assembly.c: Added a continue statement in probe_for_partial_name when
6314          parse_assembly_directory_name fails.  Fixes : 82002
6315
6316 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
6317
6318         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
6319         and added a verification  for TYPEDBYREF.
6320         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
6321         make native int interchangeable with int32 and some small cleanup and formating.
6322         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
6323         handle byref of byref.
6324         * verify.c (push_local): handle byref of byref.
6325         * verify.c (do_binop): invalid mix of values is unverifiable
6326         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
6327         added visibility checks
6328         * verify.c (field related method): added visibility checks
6329         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
6330
6331 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
6332
6333         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
6334         string.
6335
6336 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
6337
6338         * profiler.c (mono_profiler_load): Fix an off-by-one error.
6339
6340         * marshal.c (emit_marshal_string): When returning a string from managed code,
6341         allways make a copy even for unicode strings. Fixes #81990.
6342
6343 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
6344
6345         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
6346         of byref generic inst types (bug #81997).
6347
6348 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
6349
6350         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
6351         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
6352
6353 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
6354
6355         * marshal.c (emit_marshal_string): Add support for unicode strings in
6356         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
6357
6358 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
6359
6360         * verify.c: field load/store are now verified, missing only access checks now
6361
6362 2007-06-28  Martin Baulig  <martin@ximian.com>
6363
6364         * mono-debug.c (mono_debug_debugger_version): New public variable.
6365
6366 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
6367
6368         * locales.c: When constructing DateTimeFormat or NumberFormat for
6369         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
6370         MonoCultureInfo contructed from the current locale is always
6371         read-only and has UseUserOverride set to true. All MonoCultureInfo
6372         instances returned for GetCultures have both IsReadOnly and
6373         UseUserOverride set to true. Fixes part of bug #81930.
6374
6375 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
6376
6377        * icall-def.h: Update System.__ComObject icalls
6378        * marshal.c: Avoid managed transition (and object creation)
6379        when looking up COM interface in RCW.
6380        * marshal.h: Ditto.
6381        
6382        Code is contributed under MIT/X11 license.
6383
6384 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
6385
6386         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
6387         to avoid crashes during assembly unloading.
6388
6389 2007-06-22  Raja R Harinath  <rharinath@novell.com>
6390
6391         Fix MethodInfo.IsGenericMethodDefinition
6392         * reflection.c (mono_reflection_bind_generic_method_parameters):
6393         Rearrange code to ensure we always uses a generic method definition.
6394         * class.c (mono_class_inflate_generic_method_full): Set
6395         'generic_container' field only for generic method definitions.
6396         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
6397         Use presense of 'generic_container' field as indication of being a
6398         generic method definition.
6399
6400 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
6401
6402         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6403
6404         * object-internals.h: Reflect changes in the layout of the managed Delegate
6405         class.
6406         
6407         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
6408         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
6409         runtime memory used by the dynamic method. Fixes #77146.
6410
6411 2007-06-21  Dick Porter  <dick@ximian.com>
6412
6413         * file-io.h: 
6414         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
6415         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
6416         81767.
6417
6418 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6419
6420         * reflection.c (method_encode_methodspec): Add a tripwire.
6421         * class.c (inflate_generic_type): The fully open generic type is
6422         not the same as the generic type definition.
6423
6424 2007-06-21  Martin Baulig  <martin@ximian.com>
6425
6426         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
6427
6428         * mono-debug-debugger.h
6429         (MonoDebuggerBreakpointInfo): Removed.
6430         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
6431         (mono_debugger_remove_breakpoint): Likewise.
6432         (mono_debugger_breakpoint_callback): Likewise.
6433         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
6434
6435 2007-06-21  Raja R Harinath  <rharinath@novell.com>
6436
6437         * metadata.c (mono_metadata_lookup_generic_class): The fully open
6438         generic type is not the same as the generic type definition.
6439         * class.c (mono_generic_class_get_class): Likewise.
6440
6441 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
6442
6443         * icall.c: The second argument to 
6444         System.Reflection.MethodBase.GetMethodFromHandleInternalType
6445         is a MonoType not a MonoClass.
6446
6447 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6448
6449         * verify.c: support for function pointers in the verifier
6450
6451 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
6452
6453         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
6454
6455 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
6456
6457         * assembly.c: removed Mono.Data.SqliteClient from the list of
6458         forward-compatible assemblies as it breaks the ABI (bug #81899).
6459
6460 2007-06-19  Raja R Harinath  <rharinath@novell.com>
6461
6462         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
6463         lookup/update with the loader lock.
6464         * reflection.c (mono_class_bind_generic_parameters): No need to
6465         protect mono_metadata_lookup_* with the loader lock.
6466         * class.c (inflate_generic_type): Likewise.
6467         
6468         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
6469         on a generic instantiated type.
6470
6471 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
6472
6473         *verify.c: produce meanfull error messages on verification error
6474         *verify.c: fixed some cases of verification errors reported as validation errors
6475         *pedump.c: fixed the error name array, now it shows validation errors properly
6476         *verify.h: fixed the contant that should be used for verification errors
6477
6478 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
6479
6480         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
6481         for bug #77596, 81858 and 80743 (generics data structures on domain
6482         unload).
6483
6484 2007-06-15  Raja R Harinath  <rharinath@novell.com>
6485
6486         Avoid allocating 'MonoGenericContext' on the heap.
6487         * class-internals (_MonoMethodInflated::context): Make field
6488         inline, not a pointer.
6489         * loader.c (method_from_methodspec): Allocate 'new_context' on the
6490         stack.  Use the context embedded within the inflated method as the
6491         hash key, rather than 'new_context'.
6492         * class.c (inflate_generic_context): Simplify.  Return a struct
6493         rather than allocating on the heap.
6494         (mono_class_inflate_generic_method_full): Update to changes.  Now,
6495         doesn't salt away a copy of the context -- simplifying the
6496         lifetime rules of a 'MonoGenericContext *'.
6497         (mono_method_get_context): Return pointer to embedded context.
6498         (setup_generic_array_ifaces): Allocate temporary context on stack.
6499         * reflection.c (inflate_mono_method): Likewise.
6500         (mono_reflection_bind_generic_method_parameters): Likewise.
6501         Use the context embedded within the inflated method as the hash key.
6502
6503         Avoid a source of allocation of 'MonoGenericContext'.
6504         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
6505         and 'cached_context' fields into embedded 'MonoGenericContext' field.
6506         * class.c: Update to changes.
6507         (mono_generic_class_get_context): Simplify drastically.  Now just
6508         returns a pointer to the field.
6509         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
6510         argument as a const pointer.
6511         (mono_metadata_generic_context_equal): Likewise.
6512         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
6513         Update to changes.
6514
6515 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
6516
6517         * verify.c improved the handling of brtrue/brfalse, factored out common code
6518
6519 2007-06-14  Raja R Harinath  <rharinath@novell.com>
6520
6521         Kill MonoGenericMethod.
6522         * class-internals.h (MonoGenericContext::method_inst): Rename from
6523         'gmethod' and convert to a MonoGenericInst.
6524         (MonoGenericMethod): Remove.
6525         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
6526         * loader.c (method_from_methodspec): Update to changes.  Use a
6527         MonoGenericContext as the key to the hashtable.
6528         * metadata.c (mono_metadata_generic_context_equal): Rename from 
6529         'mono_metadata_generic_method_equal' and take MonoGenericContext.
6530         (mono_metadata_generic_context_hash): Likewise from
6531         'mono_metadata_generic_method_hash'.  Change hash function.
6532         (mono_metadata_load_generic_params): Update to changes.
6533         (mono_get_shared_generic_method): Remove.
6534         * metadata-internals.h (mono_get_shared_generic_method): Remove.
6535         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
6536         (inflate_generic_context): Likewise.
6537         (mono_class_inflate_generic_method_full): Likewise.
6538         (setup_generic_array_ifaces): Likewise.
6539         (mono_class_create_from_typespec): Likewise.
6540         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
6541         (method_encode_methodspec): Update callsite.
6542         (reflection_methodbuilder_to_mono_method): Update to changes.
6543         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
6544         MonoGenericContext as the key to the hashtable.
6545         (inflate_mono_method): Update to changes.
6546
6547         * class-internals.h (MonoGenericMethod::container): Remove.
6548         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
6549
6550 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
6551
6552         * profiler-private.h, profiler.c, profiler.h: added API to profile
6553         exception events.
6554
6555 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6556
6557         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
6558
6559 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
6560
6561         * verify.c: method invocation is now validated, now we verify parameter types on stack.
6562         Fixed overflow and underflow not aborting the verification process.
6563
6564 2007-06-13  Mark Probst  <mark.probst@gmail.com>
6565
6566         * class-internals.h (MonoStats): Added stats entries for dynamic
6567         code allocations.
6568
6569 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
6570
6571         * loader.c (mono_free_method): Free header->locals and header->clauses.
6572
6573         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
6574         dynamic case.
6575
6576         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
6577
6578         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
6579
6580 2007-06-12  Raja R Harinath  <rharinath@novell.com>
6581
6582         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
6583         the tables.
6584
6585 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6586
6587         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
6588
6589 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6590
6591         MonoGenericMethod on a diet
6592         * class-internals.h (_MonoMethodInflated::reflection_info): Move
6593         here ...
6594         (_MonoGenericMethod::reflection_info): ... from here.
6595         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
6596         Update to changes.
6597         * reflection.c (inflate_mono_method): Likewise.
6598         (mono_reflection_bind_generic_method_parameters): Likewise.
6599
6600 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6601
6602         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
6603         *verify.c: factored long ldarg forms to share code with short forms
6604
6605 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
6606
6607         *verify.c: fixed code formating factored some duplicate code
6608         into a new function
6609
6610         *verify.h: fixed binary incompatibility introduced earlier
6611
6612         *pedump.c: fixed formating
6613
6614 2007-06-11  Raja R Harinath  <harinath@gmail.com>
6615
6616         Fix assertion when disassembling Mono.C5.dll
6617         * loader.c (method_from_methodspec): Avoid inflating a method
6618         twice with the same context.  If the methodref is inflated, use
6619         the declaring method instead.
6620
6621         * class.c (mono_class_from_generic_parameter): Fix case similar to
6622         bug #81830 handled below, but for method containers.
6623
6624 2007-06-10  Raja R Harinath  <harinath@gmail.com>
6625
6626         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
6627         get_shared_generic_class.  Directly inflate the instance.
6628         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
6629         (inflate_generic_class): Delete.
6630         (get_shared_generic_class): Delete.  Move setting of
6631         'cached_class' and 'cached_context' ...
6632         * metadata.c (mono_metadata_lookup_generic_class): ... here.
6633
6634         * metadata.c (mono_metadata_lookup_generic_class): Change
6635         signature to take the components of a MonoGenericClass rather than
6636         an allocated MonoGenericClass.  Change semantics to be intern-like.
6637         * reflection.c (mono_class_bind_generic_parameters): Update to
6638         changes.  Make locking region tighter.
6639         * class.c (inflate_generic_class): Update to changes.
6640         (get_shared_generic_class): Likewise.
6641         * metadata-internals.h: Likewise.
6642
6643         * reflection.c (mono_class_bind_generic_parameters): Take and
6644         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
6645         (mono_reflection_bind_generic_parameters): Use
6646         'mono_class_bind_generic_parameters' rather than duplicate the code.
6647         * class.c (mono_bounded_array_class_get): Update to changes.
6648         * object-internals.h: Likewise.
6649
6650         * reflection.c (mono_class_bind_generic_parameters): Only support
6651         parameterizing generic type definitions.  Remove support for other
6652         open types.
6653
6654 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
6655
6656         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
6657
6658         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
6659         in the dynamic case.
6660
6661 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
6662
6663         * threads.c: When cleaning up thread, reset the Background bit.
6664         Fixes bug #81720.
6665
6666 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
6667
6668        * metadata.c: Move variable declarations to top of scope.
6669        * verify.c: Move variable declarations to top of scope.
6670
6671        Code is contributed under MIT/X11 license.
6672
6673 2007-06-08  Raja R Harinath  <rharinath@novell.com>
6674
6675         * reflection.c (mono_class_bind_generic_parameters): Replace
6676         open-coded loop with mono_metadata_inflate_generic_inst.
6677
6678         * class.c (get_shared_generic_class): Don't call
6679         mono_get_shared_generic_inst.  Use the container's own
6680         'class_inst'.
6681
6682         * metadata.c (mono_metadata_load_generic_params): Move
6683         initialization of 'context' field here from ...
6684         * class.c (mono_class_create_from_typedef): ... here, and ...
6685         * loader.c (mono_get_method_from_token): ... here.
6686
6687         * class.c (get_shared_generic_class): Rename from
6688         mono_get_shared_generic_class and make static.
6689         (mono_get_shared_generic_inst): Move to metadata.c.
6690         * loader.c (mono_get_shared_generic_method): Likewise.
6691         * class-internals.h, metadata-internals.h: Update to changes.
6692
6693         Fix #81830
6694         * class.c (mono_class_from_generic_parameter): Don't assume a
6695         generic container owner exists.  Generic containers from monodis
6696         don't have any.
6697
6698 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
6699
6700         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
6701         * verify.h: new typedefs to returns the non-verifiable status
6702         * verify.c: initial implementation of generics, stack merging and object compatibility check
6703
6704 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6705
6706         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6707         a MonoInternalHashTable again (fixed bug in internal hash table
6708         code).
6709
6710 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6711
6712         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6713         MonoInternalHashTable again (fixed bug in internal hash table
6714         code).
6715
6716 2007-06-06  Mark Probst  <mark.probst@gmail.com>
6717
6718         * class.c, image.c, class-internals.h, domain.c,
6719         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
6720         changes.  Have to figure out what makes them break the SWF
6721         regression.
6722
6723 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6724
6725         * class.c, image.c, class-internals.h (MonoImage): class_cache is
6726         a MonoInternalHashTable now.
6727
6728 2007-06-04  Mark Probst  <mark.probst@gmail.com>
6729
6730         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
6731         MonoInternalHashTable now.
6732
6733 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
6734
6735         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
6736         invoke_impl code.
6737
6738         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
6739
6740         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
6741         dependent trampoline.
6742
6743         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
6744
6745         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
6746
6747 2007-05-29  Robert Jordan  <robertj@gmx.net>
6748
6749         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
6750
6751 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
6752
6753         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
6754
6755 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
6756
6757        * marshal.c: Fix interface lookup loops for
6758        cominterop_get_com_slot_for_method and 
6759        cominterop_get_method_interface. Only need to lookup
6760        if type is a class, else use interface type method is on.
6761
6762        Code is contributed under MIT/X11 license.
6763
6764 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
6765
6766         * reflection.c: HasSecurity can be present even if no specially 
6767         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
6768         SecurityAttribute). Fix CAS regression tests on buildbot.
6769
6770 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
6771
6772        * appdomain.c: Add configure checks for header files.
6773        * image.c: Add configure checks for header files.
6774        * file-io.c: Add configure checks for header files.
6775        * debug-mono-symfile.c: Add configure checks for header files.
6776        * threadpool.c: Add configure checks for header files.
6777        * console-io.c: Add configure checks for header files.
6778        * profiler.c: Add configure checks for header files.
6779        * rawbuffer.c: Add configure checks for header files.
6780        * icall.c: Add configure checks for header files.
6781        * rand.c: Add configure checks for header files.
6782        * socket-io.c: Add configure checks for header files.
6783
6784        Code is contributed under MIT/X11 license.
6785
6786 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
6787
6788         * reflection.c (mono_custom_attrs_from_builders): Remove the 
6789         assertion as it breaks the build.
6790         
6791         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
6792
6793         * reflection.c (lookup_custom_attr): Make a copy here too.
6794
6795         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
6796         dynamic images.
6797
6798         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
6799         images.
6800
6801         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
6802         info.
6803
6804 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
6805
6806         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
6807         (load_cattr_value): Ditto.
6808
6809 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
6810
6811         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
6812
6813 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
6814
6815         * threads.c: In "start_wrapper", set apartment_state to MTA if
6816         apartment_state is Unknown and we're running on 2.0 profile or
6817         higher.
6818         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
6819         to main method, then set apartment_state to Unknown on 1.0 profile,
6820         and MTA on 2.0 profile.
6821
6822 2007-05-16  Jb Evain  <jb@nurv.fr>
6823
6824         * class-internals.h (MonoDefaults): Add an attribute_class and
6825           customattribute_data_class.
6826         * domain.c (mono_init_internal): Populate them.
6827         * reflection.c: Use them to remove duplicates. Make a vew
6828         MonoClass variables `static'.
6829
6830 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
6831
6832         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
6833         step in implementing IMT, so that all isinst checks now can go
6834         through the bitmap.
6835         This was needed because vtables for TransparentProxy need to look
6836         like the vtable of the "target" class, so they need to point to
6837         its interface bitmap directly.
6838
6839         * object.c: inside "mono_class_create_runtime_vtable" and
6840         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
6841
6842 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
6843
6844         * object-internals.h
6845           culture-info.h : added territory field in MonoCulture and
6846           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
6847         * locales.c : fill territory field above too.
6848         * culture-info-table.h : regenerated.
6849
6850 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
6851
6852         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
6853         Fixes #81599.
6854
6855 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
6856
6857         * object.c: Always initialize apartment, even if 
6858         there is no custom attributes on entry point.
6859         
6860         Code is contributed under MIT/X11 license.
6861
6862 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
6863
6864         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
6865         * metadata.c: If no encoding is set, check for unicode
6866         on class.
6867         
6868         Code is contributed under MIT/X11 license.
6869
6870 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
6871
6872         * threads.c: Handle if mono_thread_current returns NULL 
6873         
6874         Code is contributed under MIT/X11 license.
6875
6876 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
6877
6878         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
6879         in start_wrapper. Added mono_thread_init_apartment_state and
6880         mono_thread_cleanup_apartment_state.
6881         * object.c: Initialize thread apartment state on main thread
6882         by checking for STAThreadAttribute on entry point.
6883         * object-internals.h: Add apartment_state field to MonoThread.
6884         * threads-types.h: Add unmanaged definition of 
6885         System.Threading.ApartmentState, MonoThreadApartmentState.
6886         
6887         Code is contributed under MIT/X11 license.
6888         
6889 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
6890
6891         * class.c: Fix windows build.
6892         * class-internals.h: Fix windows build.
6893         
6894         Code is contributed under MIT/X11 license.
6895
6896 2007-05-08  Robert Jordan  <robertj@gmx.net>
6897
6898         * process.c (CreateProcess_internal):
6899         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
6900         .CreateNoWindow was specified. Fixes #81496.
6901
6902 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
6903
6904         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
6905         step in implementing IMT, replaced it with two compact arrays
6906         (interfaces_packed and interface_offsets_packed) and a bitmap that
6907         is used for isinst checks (interface_bitmap).
6908
6909         * class.c: (compare_interface_ids): compare function to pass to
6910         bsearch when looking for an interface with a given id.
6911         (mono_class_interface_offset): reimplemented using bsearch on
6912         interfaces_packed, getting the offset from interface_offsets_packed.
6913         (print_implemented_interfaces): utility debugging function.
6914         (setup_interface_offsets): reworked to initialize interfaces_packed,
6915         interface_offsets_packed and interface_bitmap.
6916
6917         * object.c: replaced all accesses to "MonoClass.interface_offsets"
6918         with uses of interfaces_packed and interface_offsets_packed.
6919
6920 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
6921
6922         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
6923         mono_class_interface_offset prototype to wrap all accesses to
6924         "MonoClass.interface_offsets".
6925
6926         * class.c: Implemented mono_class_interface_offset, and wrapped all
6927         accesses to "MonoClass.interface_offsets".
6928
6929         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
6930         "MonoClass.interface_offsets".
6931
6932 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
6933
6934         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
6935         GetMethodFromHandle overloads (bug #78637).
6936
6937 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
6938
6939         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
6940         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
6941
6942 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
6943
6944         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
6945         #81498.
6946
6947         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
6948         gracefully.
6949         (mono_custom_attrs_from_index): Ditto.
6950
6951         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
6952         Fixes #81501.
6953
6954 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
6955
6956         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
6957         is now allocated from a mempool.
6958
6959 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
6960
6961         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
6962         caller holds threads_lock, leading to deadlocks. Fixes #81476.
6963
6964 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
6965
6966         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
6967         mono_loader_clear_error () too late. Fixes #81463.
6968
6969 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
6970
6971         * culture-info-table.h : regenerated.
6972
6973 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
6974
6975         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
6976         is missing.
6977
6978 2007-04-25  Dick Porter  <dick@ximian.com>
6979
6980         * Makefile.am: Put the mingw enforced-optimisation back into the
6981         PLATFORM_WIN32 section.
6982
6983 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
6984
6985         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
6986         patch.
6987
6988         * image.c (mono_image_load_module): New API function to load a module reference.
6989
6990         * image.c (load_modules): Load modules lazily. Fixes #80812.
6991
6992         * class.c (mono_class_from_typeref): Use mono_image_load_module.
6993         
6994         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
6995
6996         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
6997         to mono_image_load_module_dynamic.
6998
6999 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
7000
7001         * marshal.c: Fix calling convention for CCW on non-windows
7002         platforms. STDCALL on windows, CDECL everywhere else to work 
7003         with XPCOM and MainWin COM.
7004         
7005         Code is contributed under MIT/X11 license.
7006
7007 2007-04-23  Martin Baulig  <martin@ximian.com>
7008
7009         Fix #80969.
7010
7011         * loader.c
7012         (method_from_memberref): Added `gboolean *used_context' argument.
7013         (mono_get_method_from_token): Likewise.
7014         (mono_get_method_full): Don't insert the method in the cache when
7015         `used_context' is true.
7016
7017 2007-04-23  Raja R Harinath  <rharinath@novell.com>
7018
7019         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
7020
7021         * reflection.c (mono_reflection_bind_generic_parameters): Don't
7022         create new MonoTypes for returned types.
7023         * class.c (mono_generic_class_get_class): Export mono-internal.
7024         * class-internals.h: Update to changes.
7025
7026 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
7027
7028         * threadpool.c, threadpool.h, icall-def.h: patch from
7029         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
7030
7031 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
7032
7033         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
7034         
7035         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
7036
7037         * threads.c (mono_thread_get_stack_bounds): New helper function.
7038
7039         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
7040         Correctly compute stack bounds when attaching. Fixes #81394.
7041
7042 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
7043
7044         * reflection.c: fix handling of doubles in custom attributes
7045         for the arm-fpa format (bug #81368).
7046
7047 2007-04-18  Raja R Harinath  <rharinath@novell.com>
7048
7049         * reflection.c (assembly_add_win32_resources): Mildly relax an
7050         bounds check to let the end pointer point just past the end of the
7051         allocated buffer.  (may fix #81384)
7052
7053 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
7054
7055         * culture-info-table.h : regenerated.
7056
7057 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
7058
7059         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
7060         the thread is aborted early.
7061
7062 2007-04-05  Dick Porter  <dick@ximian.com>
7063
7064         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
7065         FindFirstFile()/FindNextFile() to find entries.  This lets the
7066         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
7067         81038.
7068
7069         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
7070         the parameters of
7071         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
7072
7073 2007-04-04  Martin Baulig  <martin@ximian.com>
7074
7075         * debug-helpers.c
7076         (mono_method_desc_full_match): Add support for nested classes.
7077
7078 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
7079
7080         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
7081
7082 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
7083
7084         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
7085         waiting for too many threads.
7086
7087 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
7088
7089         * environment.c: Fix return value check on uname so we can get the 
7090         executing version on Solaris operating systems.
7091
7092 2007-03-28  Jb Evain  <jbevain@gmail.com>
7093
7094         * class.c (mono_type_get_name_recurse): Complete the
7095         fix for the creation of assembly qualified names for
7096         pointer types. Fixes #81208.
7097
7098 2007-03-27  Dick Porter  <dick@ximian.com>
7099
7100         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
7101         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
7102         changed.
7103
7104         * threads.c
7105         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
7106         the value of ReleaseMutex().
7107
7108 2007-03-27  Dick Porter  <dick@ximian.com>
7109
7110         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
7111         in little-endian order, not network endian, so must be converted
7112         to host endian here.  Fixes bug 80593.
7113
7114 2007-03-22  Jb Evain  <jbevain@gmail.com>
7115
7116         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
7117         qualified names for pointer types. Fixes #81208.
7118
7119 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
7120
7121         * marshal.c: Add support for PreserveSigAttribute. 
7122         
7123         Code is contributed under MIT/X11 license.
7124
7125 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
7126
7127         * process.c: Fix endianness issues. Fixes #81126.
7128
7129         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
7130         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
7131
7132         * image.c (mono_image_lookup_resource): Make this work on big-endian
7133         machines.Change API contract so the caller needs to free the return value.
7134         
7135         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
7136         API change.
7137         
7138 2007-03-14  Martin Baulig  <martin@ximian.com>
7139
7140         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
7141         mono_type_get_desc() as well.
7142
7143 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
7144
7145         * icall.c:  Fix environ access in VS.  
7146         
7147 2007-03-13  Alp Toker  <alp@atoker.com>
7148
7149         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
7150         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
7151         #63841.
7152
7153 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
7154
7155         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
7156         circular references among dynamic methods. Fixes #81091.
7157
7158         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
7159
7160 2007-03-09  Martin Baulig  <martin@ximian.com>
7161
7162         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
7163
7164 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
7165
7166         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
7167         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
7168         
7169         Code is contributed under MIT/X11 license.
7170         
7171 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
7172
7173         * loader.c: Reapply patch for bug #79424.
7174
7175 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7176
7177         * metadata.c (mono_type_to_unmanaged): Only convert object to
7178         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
7179
7180 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
7181
7182         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
7183         (and incorrectly set) is_reference field from MonoGenericInst.
7184
7185 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
7186
7187         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
7188         a little earlier.
7189
7190         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
7191
7192         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
7193
7194 2007-03-05  Miguel de Icaza  <miguel@novell.com>
7195
7196         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
7197         FileOptions.1 value to mean "temporary", map that to
7198         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
7199
7200         Fixes 80688
7201
7202 2007-03-03  Marek Habersack  <mhabersack@novell.com>
7203
7204         * appdomain.c: implement MS .Net style shadow copying. Copies of
7205         the assemblies are made in a subdirectory of the dynamic base
7206         directory, the assembly names are preserved.
7207         Copy .mdb and .config files along with the assemblies being shadowed.
7208
7209 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7210
7211         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
7212         (emit_marshal_handleref): Ditto.
7213
7214         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
7215         on Visual C++. Fixes #80671.
7216
7217 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
7218
7219         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
7220         for clone operations.
7221
7222 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
7223
7224         * marshal.c: Fix warnings.
7225
7226 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
7227
7228         * loader.c: allow case-insensitive matching of the dll name
7229         in dllmap handling when prefixed with "i:".
7230
7231 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
7232
7233         * threads.c: Fix #ifdef for dummy_apc function for VS.
7234
7235 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
7236
7237         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
7238
7239 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
7240         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
7241         giving precedence to the methods with a fully qualified name
7242         (InterfaceName.MethodName) when building the interface sections
7243         of the vtable.
7244
7245 2007-02-16  Dick Porter  <dick@ximian.com>
7246
7247         * threadpool.c (append_job): Fix fast-path array handling, so it's
7248         less likely the array will grow exponentially when the load is
7249         heavy.
7250
7251 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7252
7253         * metadata-internals.h, loader.c: fix dllmap lookup order
7254         for non-function maps, too, and prepare for fallback code.
7255
7256 2007-02-12  Robert Jordan  <robertj@gmx.net>
7257
7258         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
7259         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
7260         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
7261         GlobalFree. Fixes a part of bug #77075.
7262
7263 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
7264
7265         * loader.c: implemented typedef parent in field memberref.
7266
7267 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
7268
7269         * marshal.c: Fix warnings and remember to call Release on
7270         IUnknown of RCW.
7271         
7272         Code is contributed under MIT/X11 license.
7273
7274 2007-02-10  Miguel de Icaza  <miguel@novell.com>
7275
7276         * class-internals.h: Add MonoHandleRef definition, and
7277         handleref_class to mono_defaults. 
7278
7279         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
7280         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
7281
7282         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
7283         (do nothing on this stage)
7284         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
7285         (emit_marshal_handleref): New method, used for argument handling
7286         of HandleRefs. 
7287
7288 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
7289
7290         * class.c (mono_class_setup_parent): Lazily init com types.
7291         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
7292         init com types.
7293         * object.c (mono_remote_class_vtable): Lazily init com types.
7294         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
7295         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
7296         * domain-internals.h: Expose mono_init_com_types.
7297         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
7298         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
7299         Add support for COM Callable Wrapper marshalling.
7300         * marshal.h: Add icall definitions.
7301         * gc.c: Handle freeing of CCWs in finalizer code.
7302         
7303         Code is contributed under MIT/X11 license.
7304
7305 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
7306
7307         * reflection.c: changed all the signature encoding code to use
7308         a variable-sized buffer.
7309
7310 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7311
7312         * marshal.c: locking fixes: never take the loader lock
7313         or other runtime locks when holding the marshal lock
7314         (fixes bug#80664).
7315
7316 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
7317
7318         * marshal.c: make the delegate function pointer mapping
7319         work for the moving GC.
7320
7321 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
7322
7323         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
7324         for bug #80618.
7325
7326 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
7327
7328         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
7329         gmodule.
7330
7331 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
7332
7333         * threadpool.c: made the code moving-GC safe.
7334
7335 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
7336
7337         * assembly.c, boehm-gc.c, class-internals.h, class.c,
7338         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
7339         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
7340         warning cleanup.
7341         * reflection.c: warning cleanup, some threading and moving GC fixes.
7342
7343 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
7344
7345         * class.c, loader.c: create the needed Set/Get/Address array methods
7346         as well as the .ctors in mono_class_init (), fixes bug #80567.
7347
7348 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
7349
7350         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
7351         we doesn't decrease its alignment. Should fix the sparc build.
7352
7353 2007-01-24  Dick Porter  <dick@ximian.com>
7354
7355         * socket-io.c
7356         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
7357         Create the returned object if we need to ignore an unsupported
7358         socket option.  Fixes a segfault reported by Atsushi.
7359
7360 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
7361
7362         * class.c, object.c: restrict GC-tracked fields to
7363         UIntPtr fields used inside corlib, so we provide better
7364         type info to the GC and also allow broken packing as in
7365         bug #80580.
7366
7367 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
7368
7369         * sgen-gc.c: removed duplicated function.
7370
7371 2007-01-19  Miguel de Icaza  <miguel@novell.com>
7372
7373         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
7374         value that means that the value is not supported, but that we
7375         should not return a failure, but instead report this as a
7376         successful operation.
7377
7378 2007-01-19  Raja R Harinath  <rharinath@novell.com>
7379
7380         Fix tests/bug79956.2.il
7381         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
7382         (mono_generic_class_get_class): If the generic definition in an
7383         enum, copy over other fields related to it.
7384
7385 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
7386
7387         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
7388         genericinst enums (bug #79215).
7389
7390 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
7391         * class.c: Fix bug 80307.
7392
7393 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
7394
7395         * image.c: if the file table is not present, try to load
7396         all the modules, since we don't have info about them
7397         having or not metadata (bug #80517).
7398         * assembly.c: allow mono_assembly_load_references () to
7399         work for netmodules.
7400
7401 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
7402
7403         * image.c, metadata-internals.h, object.c: execute module
7404         cctors when running on the 2 runtime if present (bug #80487).
7405
7406 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
7407
7408         * icall.c: optimized InitializeArray() on bigendian.
7409
7410 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
7411
7412         * icall.c: fix for the broken ARM FPA double format.
7413
7414 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
7415
7416         * icall.c: handle endian issues for r4 and r8 types, too, in
7417         the InitializeArray() icall.
7418
7419 2007-01-15  Miguel de Icaza  <miguel@novell.com>
7420
7421         * loader.c (mono_loader_error_prepare_exception): Clear the error
7422         once we have extracted the information from it, do this before we
7423         call into the JIT's class loading mechanisms.
7424
7425         * object.c (mono_class_create_runtime_vtable): Do not clear the
7426         loader error before calling mono_class_get_exception_for_failure
7427         as the loader error is needed inside
7428         mono_class_get_exception_for_failure to throw the error (thinko).
7429
7430         Fixes #80521
7431         
7432 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
7433
7434         * reflection.c: align fields rva data so it's faster to load at
7435         runtime.
7436
7437 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7438
7439         Prepare to simplify GenericMethod handling.
7440         * class-internals.h (mono_method_get_context): New accessor function.
7441         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
7442         rather than directly accessing '->context' field.
7443
7444         * class-internals.h (_MonoGenericParam.method): Move ...
7445         (_MonoGenericContainer): ... here.  Add into union with klass field.
7446         * class.c, icall.c, loader.c, metadata.c, reflection.c:
7447         Update to changes.
7448
7449 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
7450
7451         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
7452         the wrapper type enum and reduce relocations.
7453
7454 2007-01-12  Raja R Harinath  <rharinath@novell.com>
7455
7456         * reflection.c (inflate_mono_method): Reuse method instantiation
7457         from the generic method, if available.
7458
7459 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7460
7461         * marshal.c (emit_marshal_variant): Fix conv_arg
7462         type in last commit, based on whether parameter is byref.
7463         
7464 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7465
7466         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
7467         marshalling.
7468         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
7469         MONO_TYPE_OBJECT back for VARIANT support.
7470
7471 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
7472
7473         * marshal.c, marshal.h, icall-def.h: Implement 
7474         Marshal.ReAllocCoTaskMem.
7475
7476 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
7477
7478         * marshal.c: memory retention fixes: use the proper
7479         image cache for runtime_invoke method lookups.
7480
7481 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
7482
7483         * mempool.c: added code to help debug mempool allocations.
7484
7485 2007-01-11  Dick Porter  <dick@ximian.com>
7486
7487         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
7488         support (experimenting with faking it with IP_MTU_DISCOVER for
7489         systems that don't have IP_DONTFRAGMENT.)
7490         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
7491         icall.
7492
7493         * icall-def.h: new System.Net.Sockets.Disconnect icall.
7494
7495         * socket-io.h: Add new fields to MonoSocketAsyncResult
7496         corresponding to the new ones in Socket.cs.
7497
7498 2007-01-11  Raja R Harinath  <rharinath@novell.com>
7499
7500         Fix IronPython regression mentioned in #80249
7501         * metadata.c (do_mono_metadata_parse_generic_class): Clear
7502         'cached_context' field, since it may have been initialized as a
7503         side-effect of metadata parsing.
7504
7505         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
7506         (_MonoGenericClass.cached_class): Move here and rename from lone
7507         remaining field of ...
7508         (_MonoInflatedGenericClass): ... this.  Remove.
7509         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
7510         to changes.
7511
7512         Fix mcs/tests/test-128.cs regression.
7513         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
7514         2007-01-10 change below.
7515         [MONO_TYPE_OBJECT]: Recurse into array case.
7516
7517 2007-01-11  Raja R Harinath  <harinath@gmail.com>
7518
7519         * class-internals.h (mono_get_inflated_generic_class): Remove.
7520         * class.c (mono_get_inflated_generic_class): Remove.
7521         (mono_generic_class_get_class): Rename from
7522         mono_class_create_generic.
7523         (mono_class_from_mono_type) [GENERICINST]: Use it.
7524         * reflection.c, metadata.c: Update to changes.  Use
7525         'mono_class_from_mono_type'.
7526
7527 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
7528
7529         * reflection.c: use passed type when encoding an array element
7530         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
7531
7532 2007-01-09  Robert Jordan  <robertj@gmx.net>
7533
7534         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
7535         result arguments (someDelegate.EndInvoke (unrelatedAres)).
7536         Fixes bug #80392.
7537
7538 2007-01-09  Raja R Harinath  <rharinath@novell.com>
7539
7540         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
7541
7542         * object.c (set_value): Avoid aliasing between type->data.klass
7543         and type->data.generic_class.
7544
7545         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
7546
7547 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7548
7549         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
7550         between type->data.klass and type->data.generic_class.
7551
7552 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
7553
7554         * marshal.c: In MS.NET, StringBuilder objects are not copied by
7555         value in out parameters.
7556
7557 2007-01-08  Raja R Harinath  <rharinath@novell.com>
7558
7559         Simplify invariant for MonoGenericClass::klass field.
7560         * class.c (mono_class_create_generic): Verify 'klass' is null.
7561         * metadata.c (do_mono_metadata_parse_generic_class): Don't
7562         initialize 'klass' field.
7563
7564 2007-01-05  Raja R Harinath  <rharinath@novell.com>
7565
7566         Ongoing work to avoid redundant data and simplify invariants.
7567         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
7568         'generic_class', and change type to a GenericInst.
7569         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
7570         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
7571
7572 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
7573
7574         * class.c : skip io-layer under PLATFORM_WIN32.
7575
7576 2007-01-03  Tor Lillqvist  <tml@novell.com>
7577
7578         Fix #80305: In a bundled executable, look in the bundled exe
7579         assembly to determine the runtime version. Add the possibility to
7580         bundle also the machine.config file.
7581         
7582         * assembly.c (mono_assembly_open_from_bundle): Make
7583         non-static. Allow being called even if we have no bundled
7584         assemblies, and return NULL right away in that case.
7585
7586         * domain-internals.h: Declare mono_assembly_open_from_bundle()
7587         here.
7588
7589         * domain.c (app_config_parse): Take an assembly exe file name as
7590         parameter instead of a config file name. Check for a bundled
7591         config file for that assembly by calling
7592         mono_config_string_for_assembly_file() (see below) before looking
7593         for one in the file system.
7594         (get_runtimes_from_exe): Corrsponding change to call of
7595         app_config_parse().
7596         (get_runtimes_from_exe): Check for bundled assembly exe file first
7597         by calling mono_assembly_open_from_bundle(). If no bundled
7598         assembly exe file is found, call mono_image_open() as before to
7599         look it up in the file system.
7600
7601         * mono-config.c: Add variable bundled_machinec_onfig.
7602         (mono_config_string_for_assembly_file): New function.
7603         (mono_config_for_assembly): Move code snippet that looks for a
7604         bundled assembly .config file into the above new function. Call
7605         it.
7606         (mono_register_machine_config, mono_get_machine_config): New
7607         functions to set and retrieve
7608
7609         * assembly.h: Declare mono_register_machine_config().
7610
7611         * mono-config.h: Declare mono_get_machine_config() and
7612         mono_config_string_for_assembly_file().
7613
7614         * icall.c: No declaration of environ necessary on Win32. It is
7615         declared (as a macro expanding to a function call) in stdlib.h.
7616         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
7617         New internal mono function. Returns the value of
7618         mono_get_machine_config() as a Mono string.
7619
7620         * icall-def.h: Add get_bundled_machine_config().
7621
7622 2007-01-04  Raja R Harinath  <rharinath@novell.com>
7623
7624         Remove redundant field
7625         * class-internals.h (_MonoGenericContext.container): Remove field.
7626         * loader.c (mono_method_get_signature_full): Don't parse a
7627         "container" for a signature parse when the signature is inflated
7628         immediately.
7629         (method_from_methodspec): Likewise, for a generic_inst.
7630         * class.c, metadata.c, reflection.c: Update to changes.
7631
7632 2006-01-04  Raja R Harinath  <rharinath@novell.com>
7633
7634         * class-internals.h (_MonoGenericClass): Rename 'context' field to
7635         'cached_context', and change semantics -- it starts off NULL, and
7636         is initialized on demand.
7637         * class.c (mono_generic_class_get_context): New accessor to
7638         replace 'context' field accesses.
7639         (mono_class_get_context): New helper.
7640         (*): Update to changes.
7641         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
7642
7643 2007-01-03  Miguel de Icaza  <miguel@novell.com>
7644
7645         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
7646         before the memcpy.   Fixes Marshal2 regression.
7647
7648 2007-01-02  Jb Evain  <jbevain@gmail.com>
7649
7650         * blob.h: add a MONO_TYPE_ENUM definition
7651         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
7652         fix the encoding of arrays of enums in custom attributes.
7653
7654         Fixes #79666.
7655
7656 2007-01-01  Miguel de Icaza  <miguel@novell.com>
7657
7658         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
7659         string is null terminated, but only cut the string short if it
7660         overflows the buffer.   
7661         
7662         (mono_string_to_byvalstr): Also fix this routine.   The code here
7663         was not properly terminating a string (it was only terminated
7664         because of the previous catch-all memset). 
7665
7666         I left the memset, because I do not know if applications expect
7667         the runtime to clear this region. 
7668
7669         Fixes #79944.
7670
7671         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
7672         Clear the error before returning to unmanaged code to prevent the
7673         runtime from being confused later on (fixes  80420).
7674         (ves_icall_type_from_name): Always call mono_loader_clear_error
7675         after parsing a type that could have failed.
7676         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
7677
7678         * loader.c (mono_loader_clear_error): Fix indentation.
7679
7680 2006-12-28  Martin Baulig  <martin@ximian.com>
7681
7682         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
7683
7684 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
7685
7686         * reflection.c: patch from Rolf Bjarne Kvinge to fix
7687         getting a token for an EnumBuilder.
7688
7689 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
7690
7691         * reflection.c: be more careful in case resource generation
7692         fails to create the data array.
7693
7694 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
7695
7696         * sgen-gc.c: write barrier for clone and fix unregister handles.
7697
7698 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
7699
7700         * reflection.c: some fixes needed in the generics code for the moving GC.
7701
7702 2006-12-22  Robert Jordan  <robertj@gmx.net>
7703
7704         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
7705         account. Fixes bug #80299.
7706
7707 2006-12-21  Raja R Harinath  <rharinath@novell.com>
7708
7709         Fix WaitHandle usage in delegates.
7710         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
7711         * object.c (mono_wait_handle_new): Use the property set method to
7712         initialize the handle.
7713         (mono_wait_handle_get_handle): New.
7714         * threadpool.c (mono_async_invoke): Use it.
7715         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
7716         Likewise.
7717         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
7718
7719 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
7720
7721         * marshal.c (emit_marshal): Call emit_marshal_variant and
7722         emit_marshal_com_interface when applicable.
7723         (emit_marshal_variant, emit_marshal_com_interface): Add
7724         methods for this case and remove if's from emit_marshal_object.
7725         
7726 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
7727
7728         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
7729
7730 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
7731
7732         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
7733         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
7734         and GlobalFree on Windows. Remove FIXME.
7735
7736 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
7737
7738         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
7739         implementation for managed objects.
7740
7741 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
7742
7743         * object.c: implemented code to be used for checking
7744         that no reference field overlaps with non-references.
7745
7746 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7747
7748         * threadpool.c: fix queue code to be compatible with the
7749         moving GC.
7750
7751 2006-12-18  Miguel de Icaza  <miguel@novell.com>
7752
7753         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
7754         in structures by throwing ArgumentNullException.
7755
7756         (emit_marshal_safehandle): Also when they are null parameters.
7757
7758         (emit_marshal_safehandle): Add support for ref
7759         SafeHandles parameters
7760
7761 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
7762
7763         * profiler.c: updated to use the mono-dl API instead of
7764         gmodule.
7765
7766 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7767
7768         * profiler.c: updated to use the mono-dl dynamic loading
7769         API instead of gmodule.
7770
7771 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
7772
7773         * profiler.c: use readlink, older versions of glib don't have
7774         g_file_read_link ().
7775
7776 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7777
7778         * profiler.c: try to detect the path to mono if libc fails to provide
7779         a useful name (bug #80286).
7780
7781 2006-12-16  Raja R Harinath  <rharinath@novell.com>
7782
7783         Fix #80242
7784         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
7785         instance, use the generic type definition instead.
7786         (ves_icall_Type_GetNestedTypes): Likewise.
7787         * class.c (mono_class_create_generic): Always set the
7788         nested_classes of a generic instance to NULL, even if the generic
7789         type definition has nested types.
7790
7791 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
7792
7793         * marshal.c (mono_string_from_bstr): Revert previous Windows change
7794         and fix on Linux.
7795         
7796 2006-12-15  Miguel de Icaza  <miguel@novell.com>
7797
7798         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
7799         my arguments were in the wrong order.   I also fixed the Windows
7800         version which seems to have had the same issue.
7801
7802         (mono_free_bstr): On Unix, this is g_free.
7803         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
7804         conversions (for the tests in corlib to pass).
7805
7806 2006-12-14  Miguel de Icaza  <miguel@novell.com>
7807
7808         * marshal.c (emit_ptr_to_object_conv): For now, ignore
7809         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
7810         exception if a ref SafeHandle in a struct has changed).
7811         
7812         (emit_struct_conv): Do not perform layout checks for classes
7813         derived from SafeHandle, as those are specially handled. 
7814
7815         (emit_object_to_ptr_conv): Add support for
7816         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
7817
7818         (emit_marshal_safehandle): Implement conversion of return values
7819         of safehandles (MARSHAL_ACTION_CONV_RESULT).
7820         
7821         * threads.c: WaitHandle now is compiled with two different handles
7822         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
7823         for 2.0.
7824         
7825         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
7826         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
7827         these routines to cope with both kinds of fields.
7828
7829 2006-12-12  Miguel de Icaza  <miguel@novell.com>
7830
7831         * metadata.c (mono_type_to_unmanaged): Handle the case where
7832         type->data.klass is a SafeHandle, and in that case, return the
7833         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
7834         MONO_MARSHAL_CONV_SAFEHANDLE. 
7835
7836 2006-12-11  Miguel de Icaza  <miguel@novell.com>
7837
7838         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
7839         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
7840         calling emit_marshal_object.
7841
7842         (emit_marshal_safehandle): Implement marshalling of
7843         SafeHandle parameters (no ref support yet).
7844
7845         (MarshalAction): Document the defines as I implement
7846         them for SafeHandle.
7847
7848         (emit_marshal_object): indentation police.
7849
7850         * class-internals.h: Define MonoSafeHandle.
7851         Add safehandle_class to MonoDefaults type.
7852
7853         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
7854         list of classes to check for fields. 
7855
7856         * domain.c (mono_init_internal): Add SafeHandle to the list of
7857         mono_defaults loaded.
7858
7859 2006-12-15  Raja R Harinath  <rharinath@novell.com>
7860
7861         Fix #80253
7862         * reflection.c (mono_reflection_bind_generic_parameters): If the
7863         generic type definition is a type builder, ensure that it is fully
7864         initialized before instantiating it.  Kill some dead code.
7865
7866 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
7867
7868         * object.c: clear the loader_error () before loading
7869         more metadata stuff (bug #80258).
7870
7871 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
7872
7873         * icall.c, icall-defs.h: type modifiers icalls for
7874         parameters and properties.
7875
7876 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
7877
7878         * object.c, icall.c: fixed warnings.
7879
7880 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
7881
7882         * marshal.c: fixed a couple of leaks and coding style in a few places.
7883
7884 2006-12-08  Dick Porter  <dick@ximian.com>
7885
7886         * process.c: Cope with NULL ProcessStartInfo arguments on windows
7887         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
7888         80173.
7889
7890 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
7891
7892         * process.c: ProcessStartInfo may have only filename set and
7893         arguments can be NULL.
7894
7895 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
7896
7897         * icall.c: fix leak found by Robert Jordan.
7898
7899 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
7900
7901         * marshal.c, marshal.h: generate managed method to access an element
7902         of a multi-dimensional array.
7903
7904 2006-11-30  Paolo Molaro (lupus@ximian.com)
7905
7906         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
7907
7908 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
7909
7910         * icall.c: back out GetFields () fix until the serialization code is
7911         fixed to not depend on the incorrect behaviour.
7912
7913 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
7914
7915         * profiler.c: provide defaults if none are set.
7916
7917 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
7918
7919         * Makefile.am, attrdefs.h: new public header file with
7920         constants for attributes for use by embedders.
7921
7922 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
7923
7924         * icall.c: GetFields () fix for bug #80064.
7925
7926 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
7927
7928         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
7929         removed long unused icalls.
7930
7931 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
7932   
7933         * marshal.c: 
7934                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
7935                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
7936                 can be generated without a delegate class.
7937                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
7938         
7939         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
7940
7941 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
7942
7943         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
7944         #80069.
7945
7946 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
7947
7948         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
7949         icall-def.h: added icalls needed by System.GC.
7950
7951 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
7952
7953         * loader.c: ensure the class in catch clauses is handled
7954         correctly for generics methods (fixes bug#79980).
7955
7956 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
7957
7958         * monitor.h, monitor.c: added mono_locks_dump () function
7959         to help debug deadlocks involving managed locks.
7960
7961 2006-11-13  Dick Porter  <dick@ximian.com>
7962
7963         * file-io.c (get_file_attributes): If the file is a symlink try
7964         and get the stat data for the target, but also add the
7965         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
7966         the specs for the windows symlink support, but will probably have
7967         to be reworked when I have test data from a vista machine.  Fixes
7968         bug 79887.
7969
7970 2006-11-13  Dick Porter  <dick@ximian.com>
7971
7972         * gc.c (mono_domain_finalize): 
7973         * marshal.c (mono_delegate_begin_invoke): 
7974         * threadpool.c (socket_io_init, mono_thread_pool_init)
7975         (mono_thread_pool_finish): 
7976         * monitor.c (mono_monitor_try_enter_internal): 
7977         * threads.c (mono_thread_resume, mono_thread_init)
7978         (mono_thread_suspend_all_other_threads)
7979         (mono_thread_execute_interruption): 
7980         * appdomain.c (mono_domain_unload): Check for NULL error returns
7981         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
7982         75733.
7983
7984 2006-11-11  Miguel de Icaza  <miguel@novell.com>
7985
7986         * process.c
7987         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
7988         Only close the handle if the value of the handle is not
7989         INVALID_HANDLE_VALUE.  This just makes the process a bit more
7990         robust.
7991
7992         Improvement for #75733, so that we do not run into this problem. 
7993
7994         
7995         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
7996         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
7997         internal variables.  Fixes #79462 
7998         
7999
8000 2006-11-09  Dick Porter  <dick@ximian.com>
8001
8002         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8003         Use poll() not select().  Fixes bug 79397.
8004
8005 2006-11-09  Raja R Harinath  <rharinath@novell.com>
8006
8007         Fix #79872
8008         * assembly.c (mono_assembly_load_from_full): Check that the given
8009         image has an assembly manifest.
8010
8011 2006-11-09  Ankit Jain  <jankit@novell.com>
8012
8013         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
8014         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
8015         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
8016
8017 2006-11-07  Dick Porter  <dick@ximian.com>
8018
8019         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8020         Put the old resolver behaviour back for pre-2.0 profiles.
8021
8022 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
8023
8024         * threadpool.c: precise GC and locking fixes.
8025
8026 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
8027
8028         * class.c: don't load types that have an explicit unaligned
8029         managed reference. Provide better info in the TypeLoad exception.
8030         Part of the fix for bug #79744.
8031         * object.c: use the correct check for class type load issues.
8032
8033 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
8034
8035         * class.c: enforce alignment of fields with managed references
8036         even when Pack=1 is forced by the user (bug #77788).
8037
8038 2006-11-03  Dick Porter  <dick@ximian.com>
8039
8040         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
8041         If the address reverse lookup fails, return it as the hostname
8042         anyway.  Fixes bug 79721.
8043
8044 2006-11-03  Dick Porter  <dick@ximian.com>
8045
8046         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
8047         Fix build on Windows.
8048
8049 2006-11-02  Dick Porter  <dick@ximian.com>
8050
8051         * icall-def.h: 
8052         * object-internals.h: 
8053         * exception.c (mono_get_exception_thread_interrupted): 
8054         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
8055         Fixes bug 74525.
8056
8057         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
8058         Check for pending Thread.Interrupt.
8059
8060 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
8061         * loader.c: Fixed bug 79684.
8062
8063 2006-10-27  Dick Porter  <dick@ximian.com>
8064
8065         * file-io.c (get_file_attributes): Force symlinks to directories
8066         to be returned as a regular file.  Fixes bug 79733.
8067 2006-10-26  Dick Porter  <dick@ximian.com>
8068
8069         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
8070         CreateFile to open a directory then we need to set the
8071         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
8072
8073 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
8074
8075         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
8076         friends.
8077
8078 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8079
8080         * sgengc.c: small cleanup of timer code.
8081
8082 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
8083
8084         * sgen-gc.c: fix some warnings and start adding support for
8085         complete object removal on domain unload.
8086
8087 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
8088
8089         * assembly.c: build_assembly_name should not consider a version
8090         number without build or revision number invalid. Fixes bug #79715.
8091
8092 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
8093
8094         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
8095         call kernel32 function OutputDebugString directly.
8096         
8097         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
8098         
8099 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
8100
8101         * reflection.c: small cleanup, using a function to insert a MonoString
8102         in the string heap.
8103
8104 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
8105
8106         * reflection.c: moving GC fixes.
8107
8108 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
8109
8110         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
8111         all the objects with finalizers belonging to an unloading appdomain.
8112
8113 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
8114
8115         * sgen-gc.c: added ability to allocate even when the nursery is fully
8116         pinned and fixed a couple of bugs.
8117
8118 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8119
8120         * threads.h: Revert the last change for now.
8121
8122         * threads.h (mono_thread_get_pending_exception): Rename this to
8123         mono_thread_get_undeniable_exception ().
8124
8125 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
8126
8127         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
8128         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
8129         when fname does not refer to valid assembly. This result in a more
8130         meaningful error message.
8131         * exception.c: added mono_get_exception_bad_image_format2 which 
8132         constructs a BadImageFormatException using the ctor taking a custom
8133         message and the file name. Passing in a NULL msg results in a default
8134         message.
8135         * exception.h: define mono_get_exception_bad_image_format2 function.
8136         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
8137         when file name pointed to an invalid IL image. Use 
8138         mono_get_exception_file_not_found2 to construct FileNotFoundException,
8139         as this results in a more meaningful error message.
8140
8141 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
8142
8143         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
8144         #79465.
8145
8146 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
8147
8148         * metadata.c (mono_type_size): Change the align parameter to guint32 for
8149         consistency with the other _size functions.
8150         (mono_type_stack_size): Ditto.
8151
8152         * class.c object.c icall.c: Fix warnings caused by the above change.
8153
8154         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
8155
8156         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
8157
8158         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
8159
8160 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
8161
8162         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
8163         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
8164         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
8165         threadpool.h, threads-types.h: mark more internal functions.
8166
8167 2006-10-11  Dick Porter  <dick@ximian.com>
8168
8169         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
8170         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
8171         reproduce the bug even before applying the fix.)
8172
8173 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
8174
8175         * reflection.c: allow retrieving attributes for arguments in generic
8176         methods (bug #79241).
8177
8178 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
8179
8180         * debug-mono-symfile.c: properly check fopen () result (found by
8181         coverity).
8182
8183 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
8184
8185         * reflection.c: make error message clearer and fixed two
8186         issuelets found by Coverity.
8187
8188 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
8189
8190         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
8191
8192 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
8193
8194         * object-internals.h, gc-internal.h, profiler-private.h:
8195         mark internal functions.
8196
8197 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
8198
8199         * reflection.c: put data in the text section.
8200         * icall.c: recognize more types in type_from_typename ().
8201         * process.c, marshal.c: added some GC FIXMEs.
8202
8203 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8204
8205         * loader.c: check for NULL before initializing.
8206
8207 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
8208
8209         * gc.c (finalizer_thread): Use a non-alertable wait here.
8210
8211         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
8212         until the correct solution is found.
8213
8214 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8215
8216         * reflection.c (mono_module_get_object): Avoid an assert when operating on
8217         modules with no metadata. Fixes #79596.
8218
8219         * image.c (load_metadata_ptrs): Put back the error message when
8220         the #- heap is encountered since the support is not complete yet.
8221
8222 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
8223
8224         * gc.c: do not allow the user to SuppressFinalize () a
8225         delegate because it would leak the trampoline if present.
8226
8227 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
8228
8229         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
8230         PropertyPtr table.
8231
8232 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
8233
8234         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
8235
8236         * metadata.c (mono_metadata_get_param_attrs): Ditto.
8237
8238         * row-indexes.h: Add definitions for *Ptr tables.
8239
8240         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
8241
8242         * metadata.c (mono_metadata_translate_token_index): New helper function to
8243         translate table indexes used in uncompressed metadata.
8244         (mono_metadata_decode_table_row): Ditto.
8245         (mono_metadata_decode_table_row_col): Ditto.
8246
8247         * metadata.c: Add table schema for *Ptr tables.
8248
8249         * class.c loader.c: Use the new helper function to access the affected metadata
8250         tables.
8251         
8252         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
8253         #38532.
8254         
8255 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
8256
8257         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
8258         sequences which can be unbounded in size. Fixes #79583.
8259
8260 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
8261
8262         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
8263         static initialization.
8264
8265         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
8266
8267         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
8268
8269         * domain.c (mono_domain_free): Free up type_init_exception_hash.
8270
8271         * object.c (mono_runtime_class_init): Implement correct semantics when a static
8272         ctor fails, i.e. throw the same exception on subsequent accesses.
8273         
8274 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
8275
8276         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
8277         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
8278         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
8279         Handle marshalling of interfaces and VARIANTs contained in structs.
8280         
8281         Code is contributed under MIT/X11 license.
8282         
8283 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
8284
8285         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
8286         
8287         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
8288         mempool.
8289
8290 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8291
8292         * console-io.c: ignore previous SIGINT handler.
8293
8294 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
8295
8296         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
8297         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
8298         #79460, #79461, #79485.
8299
8300         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
8301
8302         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
8303         #79217.
8304
8305 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
8306
8307         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
8308         could be generated from it.
8309
8310 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
8311
8312         * rand.c: fix read loop to correctly handle EINTR.
8313
8314 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8315
8316         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
8317         internal calls are defined to keep methods closer to the declaring
8318         type and allow a significant reduction in runtime relocations and
8319         memory usage.
8320
8321 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
8322
8323         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
8324         exception message to have FileNotFoundException use the default
8325         assembly load error message. Fixes bug #79426.
8326         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
8327
8328 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8329
8330         * threadpool.c: (start_thread_or_queue) use the root domain when
8331         creating the thread instead of the async object one.
8332
8333 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
8334
8335         * class.c, object.c, class-internals.h, reflection.c:
8336         for arrays, store element_size inside MonoClass (speedup
8337         for array object creation).
8338
8339 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
8340
8341         * icall.c: fixed CodeBase to use the file name and not the module
8342         name (bug #79365).
8343
8344 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
8345
8346         * mono-debug.c, mono-debug.h: export find_method as
8347         mono_debug_find_method ().
8348
8349 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
8350
8351         * debug-helpers.c, class-internals.h: added a few functions useful
8352         when debugging under gdb.
8353
8354 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8355
8356         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
8357         characters that need special handling.
8358
8359 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
8360
8361         * mono-config.c: make the os/cpu specification more flexible,
8362         allowing lists and negation.
8363
8364 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
8365
8366         * marshal.c: COM Interop fixes. Handle case where method->klass.
8367         is interface. Handle BSTR/MonoString when null. Use CDECL as 
8368         calling convention on non-windows platforms. This is for
8369         compatibility with XPCOM and MainWin COM.
8370         
8371         Code is contributed under MIT/X11 license.
8372         
8373
8374 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
8375
8376         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
8377         correctly. Fixes #79217.
8378
8379         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
8380
8381 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
8382
8383         * mono-config.c: allow both an os and cpu attribute for dllmap
8384         and dllentry elemnets to enable a single config file to be used
8385         for multiple architectures.
8386
8387 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
8388
8389         * loader.c: MonoLoaderError was cleared too soon on load failure.
8390         Fixes bug #79424.
8391
8392 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
8393
8394         * icall.c: use the defining class vtable when accessing a
8395         static field, not a pobblibly derived class.
8396
8397 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
8398
8399         * icall.c string-icalls.c: Remove references to unicode.h.
8400
8401         * unicode.h unicode.c Makefile.am: Remove these unused source files.
8402
8403         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
8404
8405         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
8406         indicating the image where custom marshaller types should be looked up.
8407         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
8408         custom marshallers, instead of corlib. Fixes #79425.
8409
8410 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
8411
8412         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
8413
8414 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
8415
8416         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
8417         Implement Environment.ProcessorCount.
8418         
8419         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
8420         Implement Environment.ProcessorCount.
8421         
8422         * icall.c: 
8423         Add Environment.ProcessorCount icall.
8424         
8425         Patch by Jason McFall.
8426
8427 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8428
8429         * assembly.c: don't append .exe/.dll when the filename already contains
8430         one of those extensions.
8431
8432 2006-09-12  Martin Baulig  <martin@ximian.com>
8433
8434         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
8435         to array interfaces.
8436
8437 2006-09-11  Martin Baulig  <martin@ximian.com>
8438
8439         * reflection.c (mono_image_build_metadata): Create the
8440         MethodImpl's after emitting all types and methods, so we don't
8441         need another fixup pass for them.
8442
8443 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
8444
8445         * class.c (mono_class_from_name_case): Fix regression introduced by the last
8446         change.
8447
8448 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
8449
8450         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
8451         unload.
8452
8453 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
8454
8455         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
8456         args is not set. Fixes #78926.
8457
8458 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
8459
8460         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
8461
8462         * image.c (load_class_names): Move this to class.c, and rename it to 
8463         'mono_image_init_name_cache'.
8464         (load_modules): Fix a warning.
8465
8466         * class.c icall.c image.c: Initialize image->name_cache lazily.
8467
8468         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
8469         on its name using information in the AOT file.
8470
8471         * class.c (mono_class_from_name): Use the new hook function.
8472
8473 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
8474
8475         * reflection.c (mono_param_get_objects): Handle enum default parameter values
8476         correctly.
8477
8478         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
8479         Fixes #79289.
8480         
8481 2006-09-06  Martin Baulig  <martin@ximian.com>
8482
8483         * icall.c (mono_lookup_internal_call): Small fix.
8484
8485 2006-09-05  Raja R Harinath  <rharinath@novell.com>
8486
8487         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
8488         double g_free.
8489
8490 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
8491
8492         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
8493         when --debug is specified.
8494
8495 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
8496
8497         * class.c (setup_generic_array_ifaces): Fix a warning.
8498
8499 2006-09-04  Miguel de Icaza  <miguel@novell.com>
8500
8501         * Temporarily remove the patch to assemly.c that checks the
8502         assembly versions as it breaks our gacutil.
8503
8504 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
8505
8506         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
8507
8508         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
8509         a net 1.0 runtime.
8510
8511         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
8512         created using the default ctor. Fixes #79152.
8513         (mono_string_builder_to_utf16): Ditto.
8514
8515 2006-09-01  Martin Baulig  <martin@ximian.com>
8516
8517         Fix handling of the generic array interfaces.
8518
8519         * class-internals.h
8520         (MonoDefaults): Removed `generic_array_class' and added
8521         `generic_ilist' class.
8522
8523         * class.c
8524         (mono_bounded_array_class_get): Add the new generic array interfaces.
8525         (setup_generic_array_ifaces): New static method; create vtable
8526         entries for each method in the generic array interfaces.
8527
8528         * metadata.c
8529         (select_container): Allow "parent-less" generic methods.
8530
8531         * marshal.c
8532         (mono_marshal_get_generic_array_helper): New public method.
8533
8534         * icall.c
8535         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
8536         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
8537         moved the interncall into System.Array.
8538
8539 2006-09-01  Raja R Harinath  <rharinath@novell.com>
8540
8541         A few more cases of avoiding work on types with ->byref set.
8542         Has the real fix for #79238
8543         * icall.c (is_generic_parameter): New helper.
8544         (ves_icall_Type_GetGenericParameterPosition): Use it.
8545         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
8546         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
8547         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
8548         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
8549         reference types.
8550         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
8551         reference types.
8552         (ves_icall_Type_get_IsGenericInstance): Likewise.
8553         (ves_icall_Type_get_IsGenericType): Likewise.
8554
8555 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
8556
8557         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
8558         class if possible.
8559
8560         * mempool.h (mono_mempool_get_allocated): New helper function.
8561
8562         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
8563         change.
8564
8565         * mempool.c: Fix warnings and the calculation of stats.
8566
8567         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
8568
8569         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
8570
8571         * loader.c (mono_get_method_from_token): Update method_count stat.
8572
8573         * class-internals.h (MonoStats): Add some stats.
8574
8575 2006-08-31 Robert Jordan  <robertj@gmx.net>
8576
8577         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
8578         with managed variants.
8579         All code is contributed under the MIT/X11 license.
8580         
8581 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
8582
8583         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
8584         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
8585
8586         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
8587
8588         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
8589         with cycles in classes.
8590
8591         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
8592
8593         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
8594         missing a [MarshalAs] directive. Fixes #79203.
8595
8596         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
8597         klass->marshal_info. Fixes #79217.
8598
8599 2006-08-30  Martin Baulig  <martin@ximian.com>
8600
8601         Committing a patch from Joachim Ante <joe@otee.dk>:
8602         Add support for binary data symbol stores.
8603
8604         * debug-mono-symfile.c
8605         (mono_debug_open_mono_symbol_file): Renamed into
8606         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
8607         arguments.
8608
8609         * mono-debug.c
8610         (mono_debug_open_image): Added `raw_contents' and `size' args.
8611         (mono_debug_init_2_memory): New public function.
8612
8613 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
8614
8615         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
8616
8617 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8618
8619         * appdomain.c: implement support for ShadowCopyFiles.
8620
8621 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
8622
8623         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
8624         when value is NULL (and should remove CID #51).
8625
8626 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8627
8628         * image.c: moved 2 functions to ../utils.
8629
8630 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
8631
8632         * gc.c: cope with the target object of a GC handle being NULL
8633         (bug #78877).
8634
8635 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
8636
8637         * class.c: recursively check parent's explicit implementations
8638         of interface methods (fixes bug #79125).
8639
8640 2006-08-19  Miguel de Icaza  <miguel@novell.com>
8641
8642         * filewatcher.c: Avoid warnings when building, do not redefine
8643         constants that are defined.
8644
8645         Remove warnings.
8646
8647 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8648
8649         * image.c: don't fail when the link points to an absolute path.
8650
8651 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
8652
8653         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
8654         Fix CID #3.
8655
8656 2006-08-17  Miguel de Icaza  <miguel@novell.com>
8657
8658         * image.c (full_path): A new method used to obtain the actual path
8659         of an assembly even in the presence of symbolic links.  
8660
8661         This is necessary for the case where we are running a binary that
8662         has been GACed, but we are using the "published" path name
8663         ($prefix/mono/1.0/blah.exe) which happens to point to the real
8664         file in the GAC.
8665
8666         This was the source of the failure for the `xsp' command with the
8667         recent AppDomain changes, as far as the runtime was concerned,
8668         there were two different assemblies: $prefix/mono/1.0/blah.exe and
8669         $prefix/mono/gac/blah/version/blah.exe.
8670
8671         (do_mono_image_open): use full path
8672
8673 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8674
8675         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
8676
8677 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
8678
8679         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
8680         domain_id is supplied. Fix CID #241 and corlib's unit tests.
8681
8682 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8683
8684         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
8685         small structures. Fixes #78990.
8686
8687 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
8688
8689         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
8690
8691         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
8692
8693 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8694
8695         * appdomain.c:
8696         * marshal.c: don't load all the assemblies from a domain into newly
8697         created ones. The new domains might have different rules and load
8698         assemblies from different locations. Fixes bug #76757.
8699
8700         Patch by Lluis. Conflicts resolved by Brian Crowell.
8701
8702 2006-08-16  Alp Toker  <alp@atoker.com>
8703
8704         * socket-io.c: First half of the fix for #79084.
8705         Set sa_size to the length of the content, not that of the struct.
8706         Don't add NULL suffix to the content, this should be done in
8707         managed code if needed.
8708
8709 2006-08-14  Raja R Harinath  <rharinath@novell.com>
8710
8711         Fix part of #79012
8712         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
8713         mono_metadata_parse_type returns NULL.
8714
8715 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
8716
8717         * normalization-tables.h : new file for string normalization data.
8718         * locales.c, locales.h, icall.c :
8719           added load_normalization_resource() for string normalization,
8720           and icall as well.
8721         * Makefile.am : added normalization-tables.h to the sources.
8722
8723 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
8724
8725         * marshal.c: Add more helper functions to reduce code duplication and use them
8726         everywhere.
8727
8728 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
8729
8730         * marshal.c: Fix non-x86 stdcall warnings.
8731         
8732         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
8733         them everywhere.
8734
8735 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
8736
8737         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
8738         type check on multi-dimensional arrays. Fixes #79000.
8739
8740 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
8741
8742         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
8743         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
8744         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
8745         * class-internals.h: add is_com_object to class structure.
8746         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
8747         null checks to COM object marshalling. Fix .ctor call on RCW.
8748         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
8749         
8750         All code is contributed under the MIT/X11 license.
8751
8752 2006-08-09  Dick Porter  <dick@ximian.com>
8753
8754         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
8755         racing mono_monitor_allocator_lock() somewhere, so don't delete
8756         the critical section for now.  Found by running and exiting
8757         monodevelop.
8758
8759 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
8760
8761         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
8762         (ves_icall_System_ComObject_FindInterface): Ditto.
8763         (ves_icall_System_ComObject_CacheInterface): Ditto.
8764
8765         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
8766         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
8767
8768 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8769
8770         * threadpool.c: treat pipes from process asynchronous reads as sockets
8771         when reading from them, so we get select/poll or epoll to wait for
8772         data.
8773
8774 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
8775
8776         * loader.c: Fix a typo (CID #233) in the null check.
8777
8778 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
8779
8780         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
8781         Hopefully fixes #78949.
8782         
8783         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
8784         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
8785         bytes. Fixes #78972.
8786
8787 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8788
8789         * filewatcher.c: we need to set errno here.
8790
8791 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8792
8793         * filewatcher.c: let Win32Exception get the error value.
8794
8795 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8796
8797         * filewatcher.c: translate errno into win32 errors for Win32Exception
8798         to know what happened.
8799
8800 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
8801
8802         * threadpool.c: Fix more warnings.
8803
8804         * assembly.c (search_loaded): Fix warnings.
8805
8806         * threadpool.c (mono_thread_pool_finish): Fix warnings.
8807         (mono_async_invoke): Ditto.
8808
8809 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
8810
8811         * object.c (mono_remote_class_vtable): Need to create proxy vtable
8812         entries for __ComObject type in addition to ComImport types.
8813         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
8814         about hash table.
8815         
8816         All code is contributed under the MIT/X11 license.
8817
8818 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
8819
8820         * image.c: avoid tentative loading of modulerefs that contain
8821         no metadata (P/Invoke library names).
8822
8823 2006-07-28  Dick Porter  <dick@ximian.com>
8824
8825         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
8826         mono_loader_lock() somewhere, so don't delete the critical section
8827         for now.  Found by running and exiting monodevelop.
8828
8829 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8830
8831         * filewatcher.c: define the inotify syscalls when we're building on
8832         linux and have sys/syscall.h. The build system might not have support
8833         for inotify but the target system might have it.
8834
8835 2006-07-26  Miguel de Icaza  <miguel@novell.com>
8836
8837         * domain.c: Documentation updates.
8838
8839         * loader.c (mono_free_method): Do not release the method
8840         information if we are being profiled, as profilers will use this
8841         information at shut down to present some data to the user.
8842
8843         This is needed so that the profiler does not crash, as the
8844         profiler tends to keep MonoMethods around, and they might become
8845         invalid if we free these.
8846
8847         (mono_get_method_constrained): Return the original CIL stream
8848         method as well, so verification can be performed against it.
8849
8850 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8851
8852         * filewatcher.[ch]: support for inotify file system watcher.
8853         * icall.c: add new internal calls for the inotify file system watcher.
8854
8855 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
8856
8857         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
8858         #78888.
8859
8860 2006-07-20  Dick Porter  <dick@ximian.com>
8861
8862         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
8863         warning.
8864
8865 2006-07-20  Dick Porter  <dick@ximian.com>
8866
8867         * threads.c (start_wrapper): Do the thread cleanup while we still
8868         hold a reference to its object.  Fixes bug 78123.
8869
8870 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
8871
8872         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
8873         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
8874           "managed-to-managed".
8875         * icall.c: Redirect string constructors that take sbyte* to
8876           ves_icall_System_String_ctor_RedirectToCreateString.
8877         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
8878           to CreateString () methods with matching signature.
8879         * reflection.c: Use original security informations for
8880           MONO_WRAPPER_MANAGED_TO_MANAGED.
8881         * security-manager.c: Use original security informations for
8882           MONO_WRAPPER_MANAGED_TO_MANAGED.
8883         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
8884           that is a placeholder and only its address should be used.
8885         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
8886           that is a placeholder and only its address should be used.
8887
8888 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
8889
8890         Begin implementing COM Interop.
8891         * appdomain.c: Increment corlib version.
8892         * class.c: Set ComImport classes' parent to __ComObject.
8893         * loader.c: Mark cominterop methods as such.
8894         * domain.c: Add __ComObject class to MonoDefaults structure.
8895         * image.c: Add 2 hashtables to the image for COM Interop related methods
8896         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
8897         using the mempool allocator
8898         
8899         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
8900         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
8901         declaration for mono_metadata_type_dup_mp.
8902         
8903         * debug-helpers.c: Added strings for two additional wrapper types
8904         * object.c: Create proxy objects for ComImport classes
8905         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
8906         and added __ComObject class to MonoDefaults structure.
8907         
8908         * object-internals.h: Finish MonoRealProxy definition, and add definition of
8909         MonoComInteropProxy and MonoComObject.
8910         
8911         * marshal.c: Added support for COM Interop
8912         (signature_cominterop): Converts managed signature to corresponding
8913         unmanaged COM signature.
8914         (cominterop_get_function_pointer): gets unmanaged function pointer via
8915         COM object vtable
8916         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
8917         (cominterop_get_method_interface): returns interface type that method is defined on
8918         (mono_mb_emit_cominterop_call): emits native call to function pointer
8919         gotten from vtable
8920         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
8921         that matches signature of unmanaged function.
8922         (cominterop_get_native_wrapper): wrapper around adjusted method call.
8923         (cominterop_get_invoke): forwards call from proxy to __ComObject
8924         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
8925         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
8926         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
8927         
8928         * marshal.h: Added Marshal icall declarations.
8929         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
8930         so we can access them in finalizer
8931         
8932 2006-07-14  Dick Porter  <dick@ximian.com>
8933
8934         * object.c (mono_type_initialization_cleanup): Fix a race
8935         condition by temporarily commenting out the critical section
8936         deletion.
8937
8938 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
8939
8940         * reflection.c (create_custom_attr): Fix some warnings.
8941         (create_custom_attr_data): Ditto.
8942         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
8943         types. Fixes #78855.
8944
8945 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
8946
8947         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
8948
8949         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
8950
8951 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
8952
8953         * reflection.c (resolve_object): Add support for DynamicMethod.
8954
8955         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
8956         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
8957
8958 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
8959
8960         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
8961         don't leak GPtrArray's pdata has we have no use (nor free) for it.
8962
8963 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
8964
8965         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
8966         Fixes #77888.
8967
8968 2006-06-30  Raja R Harinath  <rharinath@novell.com>
8969
8970         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
8971         slightly: remove a shadow local variable.
8972
8973 2006-06-29  Raja R Harinath  <rharinath@novell.com>
8974
8975         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
8976         definition that introduces the virtual function slot.
8977         Also fix Coverity #105.
8978
8979 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
8980
8981         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
8982         for dynamic assemblies. Fixes #78724.
8983
8984 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
8985
8986         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
8987         Fixes #78722.
8988
8989 2006-06-21  Martin Baulig  <martin@ximian.com>
8990
8991         * reflection.c
8992         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
8993         fixes #76484.
8994
8995 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
8996
8997         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
8998
8999 2006-06-20  Raja R Harinath  <rharinath@novell.com>
9000
9001         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
9002         nor TYPEREFs.
9003         * class.c (mono_class_create_from_typespec): Add 'context' argument.
9004         Inflate result if necessary.
9005         (mono_class_get_full): Remove old version.  Rename from
9006         'mono_class_get' and add 'context' argument.  Pass it to
9007         ..._create_from_typespec.
9008         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
9009         (mono_ldtoken): Revert change below.
9010
9011 2006-06-20  Martin Baulig  <martin@ximian.com>
9012
9013         * class.c (mono_ldtoken): Don't pass the generic context to
9014         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
9015
9016 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
9017
9018         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
9019         and later freeing it. Fixes #78638.
9020
9021 2006-06-15  Miguel de Icaza  <miguel@novell.com>
9022
9023         * icall.c (mono_class_get_throw): Revert over-zealous error
9024         throwing, the caller for mono_class_get_throw will cope with
9025         errors when classes are not properly initialized already.
9026
9027         The code still copes with loader exceptions though.
9028
9029         Fixes the regression in reftype1 and reftype3 from the CAS tests.
9030         
9031 2006-06-14  Miguel de Icaza  <miguel@novell.com>
9032
9033         Fixes the `make run1' version of RuntimeAbort (to be commited,
9034         source is in Bugzilla).
9035         
9036         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
9037         FALSE on class loading failure instead of returning true.
9038
9039         * class.c (mono_class_create_from_typedef): It is possible for
9040         mono_metadata_interfaces_from_typedef_full to fail if a class is
9041         not found, cope with this.
9042         
9043
9044 2006-06-14  Dick Porter  <dick@ximian.com>
9045
9046         * socket-io.c: 
9047         * process.c: Fix a bunch of signed/unsigned warnings from gcc
9048         4.1.1
9049
9050 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
9051
9052         * culture-info-table.h : oops, forgot to make it nsync with r61548.
9053
9054 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9055
9056         * icall.c: Another fix for building mono in Visual Studio.
9057
9058 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
9059
9060         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
9061         
9062 2006-06-09  Martin Baulig  <martin@ximian.com>
9063
9064         * debug-mono-symfile.c: Put this back and really fix it this
9065         time. Sorry for all the trouble.
9066
9067 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
9068
9069         * icall.c (mono_class_get_throw): Fix a warning.
9070         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
9071         ReflectionTypeLoadException if needed. Fixes #78606.
9072
9073         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
9074         (mono_class_init): Ditto.
9075
9076         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
9077         ref_only exceptions.
9078         (mono_loader_clear_error): Make this work even if there is no error.
9079
9080 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
9081
9082         * object-internals.h marshal.c marshal.h icall.c: Implement method 
9083         Marshal.GetComSlotForMethodInfo using internal call.
9084
9085 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
9086
9087         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
9088         a function for signalling it.
9089
9090         * class.c (mono_class_from_typeref): Use the new kind of loader error when
9091         a referenced assembly is not found.
9092
9093         * loader.c (mono_loader_error_prepare_exception): Add support for 
9094         LOADER_ERROR_ASSEMBLY. Fix formatting.
9095
9096 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
9097
9098         * domain.c appdomain.c class-internals.h marshal.c: Add support 
9099         for VARIANT marshalling on windows and increment corlib version
9100         since Variant struct was added.
9101
9102 2006-06-03  Miguel de Icaza  <miguel@novell.com>
9103
9104         * debug-mono-symfile.c: Revert Martin's previous patch which broke
9105         stack trace line information:
9106
9107         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
9108         (Martin) when looking up B which is between A and C, return A not C.
9109
9110         Bug is #78573.
9111
9112         Thanks to Alexander Olk for tracking this down.
9113
9114 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
9115
9116         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
9117         
9118         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
9119         avoid clobbering its value.
9120         (mono_string_to_lpstr): Fix a warning on windows.
9121
9122 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9123
9124         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
9125
9126         * reflection.c loader.c: Removed references to 'dummy' flag.
9127
9128         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
9129
9130         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
9131         it gets GC tracking.
9132
9133         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
9134         GC tracking.
9135         
9136         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
9137
9138         * marshal.c threadpool.c: Update callers of mono_async_result_new.
9139
9140         * appdomain.c: Bump corlib version.
9141
9142 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9143
9144         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9145         CEE_STIND_REF when working with object references.
9146
9147 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
9148
9149         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
9150         Fixes #78539.
9151
9152 2006-05-30  Miguel de Icaza  <miguel@novell.com>
9153
9154         * loader.c (method_from_memberref): Fix argument value for
9155         mono_loader_set_error_method_load (I was passing the MonoClass
9156         instead of the class name char *).
9157
9158 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
9159
9160         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
9161         CEE_STIND_REF when working with object references.
9162
9163 2006-05-30  Martin Baulig  <martin@ximian.com>
9164
9165         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
9166         mono_method_full_name() change and replace the ':' with a '.'
9167         here.
9168
9169 2006-05-30  Martin Baulig  <martin@ximian.com>
9170
9171         * debug-mono-symfile.c
9172         (mono_debug_symfile_lookup_location): Fix the algorithm:
9173         when looking up B which is between A and C, return A not C.
9174
9175 2006-05-29  Martin Baulig  <martin@ximian.com>
9176
9177         * mono-debug.h
9178         (MonoDebugMethodInfo): Make the typedef public.
9179         (MonoDebugSourceLocation): New public struct.
9180
9181         * mono-debug.c
9182         (mono_debug_source_location_from_address): Removed.
9183         (mono_debug_source_location_from_il_offset): Removed.
9184         (mono_debug_il_offset_from_address): Removed.
9185         (mono_debug_address_from_il_offset): Removed.
9186         (mono_debug_lookup_method): New public function.
9187         (mono_debug_lookup_source_location): New public function; replaces
9188         the old mono_debug_source_location_from_*() functions; see the
9189         inline documentation.
9190         (mono_debug_free_source_location): New public function.
9191         (mono_debug_print_stack_frame): New public function; see the
9192         inline documentation.
9193
9194         * debug-mono-symfile.c
9195         (mono_debug_find_source_location): Renamed into
9196         mono_debug_symfile_lookup_location(); only take a
9197         `MonoDebugMethodInfo *' and an `offset' argument; added inline
9198         documentation.
9199         (mono_debug_find_method): Renamed into
9200         mono_debug_symfile_lookup_method().
9201
9202 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
9203
9204         * assembly.c (mono_assembly_open_full): Dont overwrite the status
9205         returned by mono_image_open_full ().
9206
9207         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
9208         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
9209         #78517.
9210
9211         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
9212         #78518.
9213
9214 2006-05-27  Miguel de Icaza  <miguel@novell.com>
9215
9216         * class.c (mono_class_from_typeref): handle missing images
9217         earlier, deals with bug #78418.   Refactor code; 
9218
9219         Fix a warning introduced in my previous commit (some stale code
9220         from before I revisited my patch).
9221
9222         * class.c (mono_class_create_from_typedef): On failure, remove the
9223         class from the MonoImage->class_cache as the class is not
9224         initialized;   Fixes the leak pointed out by Paolo.
9225
9226 2006-05-25  Dick Porter  <dick@ximian.com>
9227
9228         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
9229         DeleteCriticalSections until I figure out which one may still be
9230         sometimes locked when mono_thread_cleanup is called.
9231
9232 2006-05-24  Dick Porter  <dick@ximian.com>
9233
9234         * threads.c (mono_thread_cleanup): Move the threading cleanup out
9235         of mono_thread_manage and back into its own function, so it can be
9236         called after the finalizer thread has finished.
9237
9238         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
9239
9240 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
9241
9242         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
9243         Fixes #78495.
9244
9245         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
9246         with non-blittable elements.
9247         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
9248
9249 2006-05-24  Martin Baulig  <martin@ximian.com>
9250
9251         * mono-debug-debugger.h (MonoDebuggerEvent): Added
9252         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
9253
9254         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
9255         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
9256         `mono_debugger_event_handler' to NULL.
9257
9258 2006-05-24  Martin Baulig  <martin@ximian.com>
9259
9260         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
9261
9262 2006-05-24  Martin Baulig  <martin@ximian.com>
9263
9264         * mono-debug-debugger.h
9265         (mono_debugger_create_notification_function): Added
9266         `MonoCodeManager *' argument.
9267
9268 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
9269
9270         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
9271
9272 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
9273
9274         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
9275         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
9276         implementation.
9277
9278 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
9279
9280         * icall.c: precise GC support: objects can't be stored in unmanaged
9281         memory anymore, even if they are kept alive by other references: since
9282         they can move the GC needs to be able to always find them.
9283
9284 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
9285
9286         * object.c: precise GC support for static fields. Support
9287         for moving GCs: write barriers and pinned allocation for interned
9288         strings.
9289
9290 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9291
9292         * domain.c, domain-internals.h: precise GC support for the MonoDomain
9293         structure.
9294
9295 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9296
9297         * class.c, gc.c: sgen and precise GC updates.
9298
9299 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
9300
9301         * marshal.h, marshal.c: added write barrier wrapper and precise type
9302         fixes.
9303
9304 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
9305
9306         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
9307         support.
9308
9309 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
9310
9311         * reflection.c: precise and sgen GC updates.
9312
9313 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
9314
9315         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
9316
9317 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
9318
9319         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
9320
9321 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
9322
9323         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
9324         MONO_TYPE_OBJECT. Fixes #78462.
9325
9326 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
9327
9328         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
9329         and blittable types.
9330
9331 2006-05-17  Miguel de Icaza  <miguel@novell.com>
9332
9333         * class.c (mono_class_get_exception_for_failure): Implement parts
9334         of a TODO: if the loader error is set (instead of the class
9335         error), we return a Loader exception that can be properly thrown
9336         elsewhere.
9337
9338         This was exposed by some Winforms 2.0 code that I tried to run
9339         (Atsushi pointed me to it).
9340
9341 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
9342
9343         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
9344         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
9345         
9346         * marshal.c (emit_marshal_vtype): Add limited support for 
9347         UnmanagedType.LPStruct. Fixes #78427.
9348
9349         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
9350         Applied a patch from kangaroo to fix #77523.
9351
9352 2006-05-17  Martin Baulig  <martin@ximian.com>
9353
9354         * threads.c
9355         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
9356         (debugger_thread_created): Removed.
9357         (debugger_thread_exited): Removed.
9358
9359 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
9360
9361         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
9362
9363         * object-internals.h (MonoReflectionResource): Sync with managed version.
9364
9365 2006-05-12  Wade Berrier <wberrier@novell.com>
9366
9367         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
9368
9369 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
9370
9371         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
9372         functions try to allocate from the image mempool.
9373
9374 2006-05-12  Dick Porter  <dick@ximian.com>
9375
9376         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
9377
9378 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
9379
9380         * object.c: The FieldGetter and FieldSetter methods require the full
9381         name of the class, not only the name. Fixes bug #78277.
9382
9383 2006-05-11  Miguel de Icaza  <miguel@novell.com>
9384
9385         * loader.c (method_from_memberref): Do not pass the NULL klass to
9386         mono_loader_set_error_() methods.  Pass the non-NULL value
9387         (class). 
9388
9389 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
9390
9391         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
9392         (mono_assembly_close): Null out assembly->image->references after freeing it.
9393
9394         * image.c (mono_image_close): Free image->references.
9395         
9396         * reflection.c (mono_image_basic_init): Fix a small memory leak.
9397
9398 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9399
9400         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
9401         before checking if it's NULL (g_assert).
9402
9403 2006-05-10  Martin Baulig  <martin@ximian.com>
9404
9405         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
9406         I thought I already killed that two months ago, but now it somehow reappeared.
9407
9408 2006-05-10  Martin Baulig  <martin@ximian.com>
9409
9410         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
9411
9412 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
9413
9414         * reflection.c: Allocate memory for dynamically created methods in the image
9415         mempools.
9416
9417 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
9418
9419         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
9420         don't use the ad pointer before checking if it's NULL (g_assert).
9421
9422 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
9423
9424         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
9425         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
9426
9427         * marshal.c: Allocate all signatures from mempools.
9428
9429         * marshal.c: Allocate some more signatures from mempools.
9430
9431 2006-05-09  Miguel de Icaza  <miguel@novell.com>
9432
9433         * object.c (mono_load_remote_field): The code used to provide a
9434         temporary variable for returning results if the user did not
9435         provide a result pointer.  But our temporary variable was allocted
9436         on the satck.
9437
9438         Fix calling code to always pass a result area.   Coverity ID 103.
9439
9440 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
9441
9442         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
9443         value, not the old. Fixes #78312.
9444         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
9445
9446         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
9447         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
9448         per-image cache.
9449
9450         * assembly.c (mono_assembly_close): Free image->references.
9451
9452         * assembly.c (mono_assembly_names_equal): Fix a warning.
9453         (mono_assemblies_cleanup): Cleanup more global data.
9454
9455         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
9456
9457         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
9458         ptr_cache and image->modules.
9459
9460         * image.c (mono_image_init): Allocate array_cache lazily.
9461         
9462 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9463
9464         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
9465         behavior was changed recently and has bad side effects.
9466
9467 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
9468
9469         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
9470         
9471         * assembly.c (mono_assembly_close): Remove a debug printf.
9472
9473         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
9474
9475         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
9476         to also allow for temporary references between mono_image_open ()/close ().
9477
9478         * domain.c (get_runtimes_from_exe): Add a FIXME.        
9479
9480 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
9481
9482         * marshal.c: Fix support for dynamic methods.
9483
9484         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
9485
9486         * marshal.c (mono_marshal_cleanup): New cleanup function.
9487
9488         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
9489         image mempools.
9490
9491         * class.c (mono_class_init): Fix leaking class->nested_classes.
9492
9493         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
9494
9495         * image.c (mono_image_init): Initialize the new cashes.
9496
9497         * image.c (mono_image_close): Destroy the new cashes.
9498
9499         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
9500
9501         * mempool.c (mono_mempool_strdup): New helper function.
9502
9503         * class-internals.h: Add prototype for mono_loader_unlock ().
9504
9505         * domain.c (mono_jit_info_table_find): Fix a warning.
9506         (mono_debugger_check_runtime_version): Ditto.
9507
9508         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
9509         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
9510         functions to these modules.
9511
9512         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
9513         metadata modules.
9514         
9515         * marshal.c (mono_free_bstr): Fix a warning.
9516
9517         * assembly.c (mono_assembly_open_full): Fix another small leak.
9518
9519         * object.c: Fix some unload leaks in the remoting code.
9520
9521         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
9522         function.
9523
9524         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
9525
9526         * reflection.c: Fix some unload leaks in dynamic assemblies.
9527
9528 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
9529
9530         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
9531         * marshal.h: Add BSTR support on Win32
9532         * icall.c: Add BSTR icalls
9533         * metadata.h: Add BSTR enums
9534
9535 2006-04-28  Miguel de Icaza  <miguel@novell.com>
9536
9537         Work to catch the crash from #76795 and turn it into an
9538         exception.   As I stubbed out pieces of the VisualBasic support,
9539         I found a number of places where the code was failing and I added
9540         checks to those places. 
9541         
9542         * metadata.c (do_mono_metadata_parse_generic_class): Make this
9543         function return a status code.  If we fail to parse the signature
9544         from mono_metadata_parse_generic_inst, return FALSE.
9545
9546         * loader.c (mono_get_method_from_token): If we fail to load the
9547         method (mono_class_get) return NULL.   
9548
9549         * (method_from_memberref): Return NULL if we are unable to parse
9550         the method signature
9551
9552         (mono_loader_error_prepare_exception): Since we now use the
9553         loader_error flag internally to stop processing, and obtaining
9554         exceptions that might be thrown will walk this code path the
9555         proper way of going from a MonoLoaderError into a
9556         MonoException was convoluted.   This new routine encapsulates the
9557         process of turning the error into an exception and *clearing* the
9558         error afterwards.
9559         
9560 2006-04-27  Miguel de Icaza  <miguel@novell.com>
9561
9562         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
9563         with missing assemblies), and to cope with:
9564
9565                 * Missing fieldref from a non-existing assembly.
9566                 * Missing methodref from a non-existing assembly.
9567
9568         The first batch of work to address *some* of the issues from 76661.
9569         
9570         * object.c (mono_class_create_runtime_vtable): If we fail to
9571         initialize the class raise the exception here. 
9572
9573         * metadata.c (mono_class_get_overrides_full): If any methods fail
9574         to load return the failure to the caller.
9575
9576         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
9577         flagging assemblies that failed to load.   
9578
9579         Do not crash if we are unable to load the assembly.
9580
9581         (mono_assembly_close): Do nothing with REFERENCE_MISSING
9582         assemblies. 
9583
9584         * loader.c (mono_loader_set_error_type_load): Change the
9585         convention to always pass unallocated strings, so we make our own
9586         copies (I know our own code had duplicated strings before, but
9587         this keeps the normal conventions).
9588         (method_from_memberref): Call mono_loader_set_error_method_load
9589         for all possible failures of loading the class. 
9590         Remove assert, turn into a loader error.
9591
9592         (mono_loader_error_to_exception): Move this routine from mini
9593         (mini_loader_error_to_exception) there was no need to have that in
9594         mini. 
9595
9596         * class.c (mono_class_from_typeref): If we were not able to load
9597         the assembly with mono_assembly_load_reference, call the
9598         mono_loader_set_error_type_load to register the problem.
9599
9600         (mono_class_setup_fields): If we fail to load the type from
9601         mono_metadata_parse_type_full, call mono_class_set_failure and
9602         break from the loop.
9603
9604         If class->exception_type is set, we do not layout the fields as
9605         that might crash the runtime, and instead return (from breaking
9606         from the previous loop).
9607
9608         (mono_class_setup_vtable): This now returns a boolean indicating
9609         whether the table was properly setup.   The decision is driven by
9610         mono_class_get_overrides_full which might run into non-existing
9611         methods. 
9612         
9613         (mono_class_init): Returns TRUE on success or FALSE if there was a
9614         problem in loading the type (incorrect assemblies, missing
9615         assemblies, methods, etc).
9616
9617         When we call mono_class_setup_fields we also check for a potential
9618         error inside this call (either a class exception or a general
9619         loader exception).
9620
9621         (mono_class_create_from_typedef): If the parent fails to load
9622         (calling mono_class_get_full) return NULL.
9623         
9624         ** Important **
9625
9626         calls to mono_metadata_parse_type_full should be checked
9627         everywhere and set the mono_class_set_failure
9628         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
9629
9630         The current patch checks the places where my manually constructed
9631         tests show the errors are showing up, but we should do it
9632         everywhere. 
9633
9634         ** Important2 **
9635
9636         mono_class_init return values should be tested everywhere, like
9637         the previous case this is something that we should audit
9638         everywhere and not only on the cases exposed by the tests I
9639         created. 
9640
9641 2006-04-26  Miguel de Icaza  <miguel@novell.com>
9642
9643         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
9644         boolean parameter and instead pass the information on `options'
9645         parameter (FileOptions).
9646
9647         * icall.c: Register the new signature for MonoIO.Open.
9648
9649         * debug-helpers.c (dis_one): Trying to understand how coverity
9650         works.  Fix Run 5, item 78.
9651
9652 2006-04-26  Dick Porter  <dick@ximian.com>
9653
9654         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
9655         dereference.
9656
9657 2006-04-25  Martin Baulig  <martin@ximian.com>
9658
9659         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
9660
9661         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
9662         debugger_thread_created().
9663         (debugger_gc_push_all_stacks): Don't handle the main thread in any
9664         special way.
9665         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
9666         (mono_debugger_finalize_threads): New function; undo the effects
9667         of mono_debugger_init_threads().
9668         (mono_debugger_create_all_threads): Removed.
9669
9670 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
9671
9672         * image.c (mono_image_close): Tidy up trace messages.
9673
9674         * assembly.c (mono_assembly_close): Ditto.
9675
9676         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
9677         no longer references an already freed assembly. Fixes #78168.
9678
9679 2006-04-21  Dick Porter  <dick@ximian.com>
9680
9681         * threads.c (mono_thread_detach): Fix reference counting when
9682         detaching threads.
9683
9684 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
9685
9686         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
9687         #78155.
9688
9689 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
9690
9691         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
9692         (mono_type_to_stind): Ditto.
9693
9694         * marshal.c: Use the new helper functions to simplify code.
9695
9696         * image.c (mono_image_close): Add some code for help debug assembly unloading
9697         problems.
9698
9699         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
9700         image mempool.
9701
9702         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
9703         assembly was already loaded in another appdomain. Fixes #78083.
9704
9705 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
9706
9707         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
9708         referenced assemblies.
9709         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
9710
9711         * domain.c (mono_domain_free): Add a trace message.
9712
9713         * appdomain.c (add_assemblies_to_domain): Ditto.        
9714
9715         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
9716         field.  
9717
9718 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9719
9720         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
9721
9722 2006-04-12  Martin Baulig  <martin@ximian.com>
9723
9724         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
9725         `USE_INCLUDED_LIBGC'.   
9726
9727 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
9728
9729         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
9730         the patch contains ../ and a small directory name later. Hopefully fixes
9731         #78035.
9732
9733 2006-04-10  Martin Baulig  <martin@ximian.com>
9734
9735         Clean up the debugger's thread-handling code.
9736
9737         The debugger's thread-handling code has been moved from
9738         ../mini/debug-debugger.c to threads.c.  We now iterate directly
9739         over the `threads' hash, keep track of exiting threads and also
9740         use proper locking.
9741
9742         We can now debug XSP and XSP based applications with the debugger.
9743
9744         * object-internals.h (MonoThread): Added `gpointer end_stack'.
9745
9746         * threads.h
9747         (MonoThreadCallbacks): Removed; this was only used by the debugger.
9748         (mono_install_thread_callbacks): Likewise.      
9749
9750         * threads.c (mono_thread_callbacks): Removed.
9751         (debugger_thread_created, debugger_thread_exited): New static functions.
9752         (start_wrapper): Call debugger_thread_created().
9753         (thread_cleanup): Call debugger_thread_exited().
9754         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
9755         (mono_debugger_init_threads): New public function.
9756         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
9757         iterate directly over the `threads' hash and also use proper locking.
9758
9759         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
9760
9761         * mono-debug-debugger.h
9762         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
9763
9764 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
9765
9766         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
9767         argument type=array. Fixes #78057.
9768
9769 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
9770
9771         * culture-info-table.h : regenerated. Fixed bug #69652.
9772
9773 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
9774
9775         * loader.c metadata.c: Reapply a variant r59116.
9776         
9777         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
9778
9779         * class.c (mono_class_setup_interface_offsets): New internal function.
9780
9781         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
9782         interfaces too. Fixes #77398.
9783
9784         * reflection.c (encode_cattr_value): Add support for 
9785         parameter type=object, argument type=array.
9786         (load_cattr_value): Ditto. Fixes #77916.
9787
9788         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
9789         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
9790
9791         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
9792         a byval char array and CharSet is Ansi.
9793
9794         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
9795
9796 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
9797
9798         * metadata.c: Add some locking comments.
9799         
9800         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
9801         mempool.
9802         (mono_metadata_free_method_signature): Don't free the signature itself.
9803
9804         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
9805
9806         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
9807         reference the same MonoImage.
9808         (mono_assembly_load_from_full): Add an assert.
9809
9810 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
9811
9812         * image.c (mono_image_close): Don't put the image we are about to free into the
9813         loaded_images_guid_hash.
9814
9815         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
9816         to reduce code duplication.
9817
9818         * marshal.c: Register the native functions called by this module as icalls, to
9819         somewhat centralize the creation of MonoMethodSignature's.
9820
9821         * loader.c (mono_method_signature): Add a cache for method signatures.
9822
9823         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
9824         the parameter attributes of a method.
9825         (mono_metadata_parse_method_signature_full): Refactored the computation of
9826         parameter attributes into a separate function. Also avoid one allocation in
9827         most cases.
9828
9829         * assembly.c (mono_assembly_close): Ditto.
9830
9831         * image.c (mono_image_close): Log trace messages with INFO level.
9832
9833         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
9834
9835         * image.c reflection.c: Correct reference counting of image modules.
9836         
9837         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
9838         of this function from the image mempool.
9839         
9840         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
9841         to allow more cached types to be used.
9842
9843         * mono-debug.c (mono_debug_add_method): Appled patch from
9844         David S. Miller  <davem@sunset.davemloft.net>: Access 
9845         minfo->lexical_blocks[] entry elements using read32().
9846
9847 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
9848
9849         * loader.c (mono_free_method): No longer free the method header for non-dynamic
9850         methods as it is allocated from the mempool.
9851
9852         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
9853         image mempool.
9854
9855         * metadata-internals.h: Add comments describing the reference counting scheme
9856         used for MonoImage and MonoAssembly.
9857
9858         * image.c assembly.c reflection.c: Rework reference counting of images and 
9859         assemblies so they are freed when the runtime is shut down. Free some 
9860         additional memory structures when an image is unloaded.
9861         
9862 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
9863
9864         * class.c loader.c reflection.c: Allocate more data structures in
9865         the image mempool.
9866
9867 2006-03-31  Miguel de Icaza  <miguel@novell.com>
9868
9869         * icall.c
9870         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
9871         build on pre glib 2.4 systems.
9872
9873 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
9874
9875         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
9876
9877         * icall.c: Fix some warnings.
9878
9879 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
9880
9881         * culture-info-table.h : regenerated.
9882
9883 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
9884
9885         * threads.c, object-internals.h, verify.c: changed the culture caching
9886         code to use a normal MonoArray for storage so the GC can keep track of
9887         them easily. Fixed bits of the cache logic, too and simplified the
9888         code.
9889
9890 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
9891
9892         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
9893         thread for non-Boehm GCs.
9894
9895 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
9896
9897         * domain.c, object.c, domain-internals.h: reduce the amount of memory
9898         needed to keep track of the data for static fields.
9899
9900 2006-03-29  Raja R Harinath  <rharinath@novell.com>
9901
9902         Fix #75172
9903         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
9904         for interface classes.  Use 'num_methods' instead.
9905         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
9906         before using '->vtable_size' field.
9907
9908 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
9909
9910         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
9911         doesn't contain managed pointers, so use a normal hashtable.
9912
9913 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
9914
9915         * reflection.c, class-internals.h, domain.c: fixed handling of types
9916         used as values for objects in custom attributes (bug #77915):
9917
9918 2006-03-24  Martin Baulig  <martin@ximian.com>
9919
9920         * class.c (mono_class_setup_fields): Added support for generic
9921         instances; fixes #77580.
9922
9923 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9924
9925         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
9926
9927 2006-03-24  Dick Porter  <dick@ximian.com>
9928
9929         * file-io.c (get_file_attributes): More stat macro breakage.
9930         Fixes bug 77759.
9931
9932 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
9933
9934         * profiler.c: added the file=filename option in the default profiler
9935         to output the profile data to filename.
9936
9937 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9938
9939         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
9940         bug #77877.
9941
9942 2006-03-22  Martin Baulig  <martin@ximian.com>
9943
9944         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
9945         allocated `MonoClassField *' in `fb->handle'.
9946
9947 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
9948
9949         * class.c, image.c, metadata-internals.h: implemented new mechanism to
9950         allocate interface ID to save memory and allow better ID reuse on
9951         appdomain unload. setup_generic_vtable () removal from Martin.
9952
9953 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
9954
9955         * object.h, appdomain.c, domain.c, exception.c, icall.c,
9956         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
9957         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
9958         write barriers for reference stores with managed objects accessed with
9959         C structures in the runtime and in embedding programs.
9960
9961 2006-03-20  Raja R Harinath  <rharinath@novell.com>
9962
9963         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
9964         'interface_id' and 'max_interface_id' fields of MonoClasses
9965         representing open generic types.
9966
9967 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
9968
9969         * object.h, object.c, icall.c: added functions to deal with
9970         storing valuetypes that contain references in managed objects.
9971         * reflection.c, string-icalls.c, threads.c, marshal.c: small
9972         fixes and comments around uses of mono_array_addr ().
9973
9974 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
9975
9976         * object.h, icall.c, monitor.c: object.GetHashCode ()
9977         implementation that supports the moving garbage collector.
9978
9979 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
9980
9981         * icall.c, threads-types.h, threads.c: implemented finalizer for
9982         LocalDataStoreSlot.
9983
9984 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
9985
9986         * metadata.c (mono_type_size): Add a fixme.
9987         (mono_type_stack_size): Ditto.
9988
9989         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
9990         'type_forwarders' field.
9991
9992         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
9993         attribute from net 2.0.
9994
9995         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
9996         from class.c.
9997
9998         * class.c (mono_class_setup_fields): Fix a warning.
9999         
10000         * class.c (mono_class_from_name): Add support for assemblyref entries
10001         in the EXPORTEDTYPE table.
10002
10003         * reflection.c: Add support for handling type forwarders under net 2.0.
10004
10005         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
10006         
10007 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
10008
10009         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
10010         overwriting entries in ModuleBuild->types, also clean up the code
10011         a little. Fixes #77774.
10012
10013 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
10014
10015         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
10016         load friend assembly info when present.
10017
10018 2006-03-14  Raja R Harinath  <rharinath@novell.com>
10019
10020         Fix crasher on gtest-158.cs.
10021         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
10022         the return value if the MonoClass we want is yet in an
10023         inconsistent state.
10024         * class.c (mono_class_create_from_typedef): Add an comment
10025         explaining an order dependency between mono_class_setup_parent and
10026         mono_class_setup_mono_type.
10027
10028 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
10029
10030         * class.c: documentation updates and events bug fix.
10031
10032 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
10033
10034         * class.c: some cleanup, locking fixes.
10035
10036 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
10037
10038         * class.c: fix the generics code to setup nested
10039         type info to the instantiated type (bug #77770).
10040
10041 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
10042
10043         * marshal.c: fixed a few type correctness issues.
10044
10045 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10046
10047         * loader.c: the Set/Get/Addrtess array methods should be public.
10048
10049 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
10050
10051         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
10052         
10053         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
10054         info->wrapper.
10055
10056 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
10057
10058         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
10059
10060         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
10061
10062         * mempool.c (mono_mempool_alloc): Speed this up a bit.
10063         (mono_mempool_alloc0): Ditto.
10064
10065 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10066
10067         * socket-io.c:
10068         (create_object_from_sockaddr): it was allocating 4 extra bytes
10069         for the AF_UNIX data. Fixes bug #77747.
10070
10071 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
10072
10073         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
10074
10075 2006-03-09  Dick Porter  <dick@ximian.com>
10076
10077         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
10078         Fixes bug 76966 again.
10079
10080 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
10081
10082         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
10083         names from r57532
10084         * appdomain.c: Bumped corlib version to 48 (due to r57532)
10085
10086 2006-03-07  Martin Baulig  <martin@ximian.com>
10087
10088         * object.c
10089         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
10090
10091 2006-03-07  Martin Baulig  <martin@ximian.com>
10092
10093         * class.c
10094         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
10095         regression introduced in r56970; see gtest-252.cs.
10096
10097         * loader.c (mono_get_method_constrained): Correctly handle generic
10098         methods; see gtest-253.cs.
10099
10100 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
10101
10102         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
10103
10104 2006-03-04  Martin Baulig  <martin@ximian.com>
10105
10106         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
10107         compute the parent type at runtime, just like we're already doing
10108         it for interfaces.
10109
10110         * reflection.c
10111         (mono_reflection_bind_generic_parameters): Don't compute the
10112         parent type anymore.
10113
10114         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
10115
10116 2006-03-04  Martin Baulig  <martin@ximian.com>
10117
10118         * mono-debug-debugger.h
10119         (mono_debugger_create_notification_function): Allocate memory at
10120         runtime and return a pointer to it.
10121
10122 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
10123
10124         * assembly.c: Fix windows build.
10125         
10126         * assembly.c: Fix build.
10127
10128         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
10129
10130         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
10131         
10132 2006-03-03  Dick Porter  <dick@ximian.com>
10133
10134         * process.c
10135         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
10136         Check parameters before dereferencing them.  Fixes Aaron's part of
10137         bug 77393.
10138
10139 2006-03-03  Raja R Harinath  <rharinath@novell.com>
10140
10141         Fix performance regression.
10142         * loader.c (find_method_in_class): Add 'from_class' argument.
10143         Rename 'klass' argument to 'in_class'.  The signature is compared
10144         against the method in 'in_class', and the corresponding method is
10145         returned from 'from_class'.
10146         (find_method): Walk both 'in_class' and 'from_class' in parallel.
10147         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
10148         type definition and generic instantiation in parallel.
10149         (mono_get_method_constrained): Update to changes.
10150
10151 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
10152
10153         * threads.c: make sure the domain is correct, too when doing
10154         mono_thread_attach ().
10155
10156 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
10157
10158         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
10159         windows. Fixes #77683.
10160
10161 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
10162
10163         * object.h, *: introduced specific way to set elements of an array
10164         of references to be used as write barrier. Still need to audit the
10165         uses of mono_array_addr.
10166
10167 2006-03-01  Miguel de Icaza  <miguel@novell.com>
10168
10169         * object-internals.h: New field to cache the assmebly name, patch
10170         from Tambet Ingo (tambet@ximian.com)
10171
10172 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
10173
10174         * decimal.h, class-internals.h, metadata-internals.h,
10175         file-io.h: mark a few function declarations as internal, to
10176         reduce the number of PLT entries.
10177
10178 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10179
10180         * file-io.c: fix typo in warning message.
10181
10182 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
10183
10184         * loader.c: on unix, lookup the "*A" version of a function
10185         if charset is auto as a second option before failing.
10186
10187 2006-02-28  Raja R Harinath  <rharinath@novell.com>
10188
10189         * class.h (mono_class_inflate_generic_method): Revert to two
10190         argument version.
10191         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
10192         (mono_class_inflate_generic_method_full): Add.
10193         * class.c (mono_class_inflate_generic_method_full): Rename from
10194         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
10195         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
10196         * loader.c, reflection.c: Update to changes.
10197
10198 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
10199
10200         * icall.c: const fixes and small improvements.
10201
10202 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10203
10204         * threadpool.c: for asynchronous connect(), enable the same workaround
10205         for BSD 6 as for the Mac. Fixes bug #77637.
10206
10207 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
10208
10209         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
10210         formatted classes. Fixes #77524.
10211
10212 2006-02-24  Raja R Harinath  <rharinath@novell.com>
10213
10214         * class.c (inflate_generic_type): Add a couple more
10215         micro-optimizations.
10216         (inflate_generic_context): Don't use the 'gmethod' from
10217         'inflate_with'.
10218         (mono_class_inflate_generic_method): If the method has generic
10219         parameters, but the passed-in context doesn't have a 'gmethod',
10220         create one.  Use the possibly simplified generic instantiation
10221         from the declaring class instead of the one passed in.
10222
10223 2006-02-24  Raja R Harinath  <harinath@gmail.com>
10224
10225         Make generic method signature and method header handling lazy.
10226         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
10227         (inflate_generic_header): Likewise.
10228         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
10229         parameter to avoid inflating types.
10230         (mono_get_inflated_method): Empty out.
10231         * class.h (mono_class_inflate_generic_method): Update to changes.
10232         * loader.c (mono_get_method_from_token): Don't parse signature for
10233         generic methods, nor methods of generic classes.
10234         (mono_method_signature): Rename from 'mono_method_signature'.
10235         Inflate signature on demand.
10236         (mono_method_get_header): Inflate method header on demand.
10237         * reflection.c: Update to changes.
10238
10239 2006-02-23  Raja R Harinath  <rharinath@novell.com>
10240
10241         * metadata.c (mono_metadata_inflate_generic_inst): If the
10242         instantiation is closed, don't bother expanding it in the new
10243         context.
10244         * class.c (inflate_generic_class): If the generic instantiation
10245         doesn't change after inflation, return the argument itself.
10246         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
10247         Add bounds checks.
10248         (inflate_generic_context): If neither the generic class nor the
10249         generic method instantiations change, return the original context.
10250         * reflection.c (mono_method_get_object): Do
10251         'mono_get_inflated_method' before accessing the ->klass field.
10252         (inflate_mono_method): Don't create a MonoGenericMethod unless
10253         necessary.
10254         (inflate_method): Don't pass a constructed type as the declaring
10255         type of a methodbuilder.
10256
10257 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
10258
10259         * object.c: fix memory overwrite.
10260
10261 2006-02-22  Dick Porter  <dick@ximian.com>
10262
10263         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
10264         it doesn't work any more.
10265         (mono_threads_request_thread_dump): Fix unused variable warnings.
10266
10267 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
10268
10269         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
10270         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
10271         the public header file.
10272
10273 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
10274
10275         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
10276
10277 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
10278
10279         * class-internals.h, object.c: reduce the size of MonoVTable
10280         and store the interface_offsets array at negative offsets.
10281
10282 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
10283
10284         * metadata.c: tweak table descriptors data structures to reduce
10285         size and runtime relocations.
10286
10287 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10288
10289         * marshal.c: fix some types and opcodes to be type-safe
10290         in marshaling wrappers.
10291
10292 2006-02-21  Ankit Jain  <jankit@novell.com>
10293
10294         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
10295
10296 2006-02-21  Raja R Harinath  <rharinath@novell.com>
10297
10298         * metadata.c (get_constraints): Relax debugging checks for monodis.
10299
10300 2006-02-21  Ankit Jain  <jankit@novell.com>
10301
10302         * metadata.c (mono_metadata_load_generic_params): Move the code
10303         checking for ambiguous generic params from here to mono/dis/get.c
10304         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
10305
10306 2006-02-21  Raja R Harinath  <harinath@gmail.com>
10307
10308         Fix assertion triggered when compiling nemerle.
10309         * class.c (mono_get_shared_generic_inst): Rename from
10310         get_shared_inst and make non-static.
10311         * loader.c (mono_get_shared_generic_method): New.  Used to create
10312         the MonoGenericContext-equivalent of a MonoGenericContainer.
10313         (mono_get_method_from_token): Initialize the 'context' field of
10314         the created MonoGenericContainer.
10315         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
10316         * metadata.c (get_constraints): Add sanity check.
10317         * class-internals.h: Add new internal methods.
10318
10319         * reflection.c (verify_safe_for_managed_space): New sanity check.
10320         Currently checks that owner-less generic parameters aren't allowed
10321         in managed space.
10322         (mono_type_get_object): Use it.
10323         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
10324         that are now in mono_type_get_object.
10325         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
10326
10327 2006-02-19  Raja R Harinath  <harinath@gmail.com>
10328
10329         * metadata.c (mono_type_create_from_typespec): Rename from
10330         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
10331         argument and caching of types in the generic container.
10332         (unwrap_arrays, find_generic_param): Remove.
10333         * metadata-internals.h: Update.
10334         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
10335
10336 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
10337
10338         * class.c (mono_class_get_exception_for_failure): Fix a warning.
10339
10340         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
10341         return values. Fixes #77581.
10342
10343         * class.c (mono_fnptr_class_get): Switch name and name_space.
10344
10345         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
10346         classes and add support for [In, Out] attributes.
10347         (mono_marshal_free_asany): Ditto. Fixes #77524.
10348
10349 2006-02-18  Raja R Harinath  <harinath@gmail.com>
10350
10351         * class.c (mono_class_from_generic_parameter): Make more robust to
10352         incomplete MonoGenericContainers from monodis.
10353
10354 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10355
10356         * class-internals.h: added some more exception types.
10357         * class.c, metadata.c: added a few checks to handle missing
10358         types.
10359
10360 2006-02-17  Raja R Harinath  <rharinath@novell.com>
10361
10362         Use owner-less generic-params some more.
10363         * class.c (my_mono_class_from_generic_parameter): Remove.
10364         (mono_class_from_generic_parameter): Handle null image,
10365         param->name and param->owner.
10366         (mono_class_from_mono_type): Update.
10367         (mono_class_create_from_typespec): Remove 'container' parameter.
10368         If that parameter is non-null, the result is always inflated by
10369         'mono_class_get_full' anyway.
10370         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
10371         parameter.
10372         (mono_class_get_full): Update.
10373
10374         * class.c (inflate_generic_type) [GENERICINST]: If the generic
10375         instance is not open, don't bother inflating.
10376         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
10377         parse metadata for inflated classes.
10378         (_mono_class_get): Change GenericContext* parameter to
10379         GenericContainer*.
10380         (mono_class_create_from_typespec): Likewise.  Simplify, and
10381         implement trivially.  All the cases are handled in
10382         mono_class_from_mono_type.  Don't inflate returned class.
10383         (mono_class_get_full): Delegate GENERICINST optimization to
10384         inflate_generic_type.
10385         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
10386
10387 2006-02-16  Dick Porter  <dick@ximian.com>
10388
10389         * socket-io.c (create_object_from_sockaddr): Fix typo.
10390         (create_sockaddr_from_object): Check array lengths before
10391         potentially accessing items off the end.
10392         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
10393         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
10394         (ves_icall_System_Net_Sockets_Socket_Send_internal)
10395         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
10396         length checks to avoid wraparound overflows.
10397         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
10398         contents of the array of sockets
10399         (hostent_to_IPHostEntry2)
10400         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
10401         Check return value of inet_ntop ().
10402         (addrinfo_to_IPHostEntry): Fix typo
10403
10404 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10405
10406         Type metadata parsing doesn't use generic-instantiation information.
10407         * metadata.c (mono_metadata_parse_array_full): Change
10408         MonoGenericContext* parameter to MonoGenericContainer*.
10409         (mono_metadata_parse_type_full): Likewise.
10410         (mono_type_create_from_typespec_full): Likewise.
10411         (mono_metadata_parse_mh_full): Likewise.
10412         (mono_metadata_parse_generic_inst): Likewise.
10413         (do_mono_metadata_parse_generic_class): Likewise.
10414         (do_mono_metadata_parse_type): Likewise.
10415         * metadata-internals.h: Update to changes.
10416         * class.c (mono_class_find_enum_basetype): Likewise.
10417         (mono_class_setup_fields): Likewise.
10418         (mono_class_create_from_typespec): Likewise.
10419         * loader.c (method_from_methodspec): Likewise.
10420         (mono_get_method_from_token): Likewise.
10421         (mono_method_get_header): Likewise.
10422
10423 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
10424
10425         * marshal.c: handle additional GENERICINST case (patch from
10426         Thong Nguyen <tum@veridicus.com>).
10427         Fix a few cases where LDIND_I/STIND_I was used for references.
10428
10429 2006-02-16  Raja R Harinath  <rharinath@novell.com>
10430
10431         * reflection.c (mono_reflection_get_token): Remove unused variable.
10432
10433 2006-02-16  Martin Baulig  <martin@ximian.com>
10434
10435         * reflection.c (mono_reflection_get_token): Add support for fields
10436         in instantiated generic types.
10437
10438         * icall.c
10439         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
10440
10441 2006-02-15  Martin Baulig  <martin@ximian.com>
10442
10443         * icall.c
10444         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
10445         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
10446         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
10447         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
10448
10449 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
10450
10451         * class.c, metadata.c, metadata.h, object.c, icall.c,
10452         marshal.c: changed mono_type_get_underlying_type () to do
10453         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
10454         Fixed handling of instantiated generic valuetypes (bug #75479).
10455
10456 2006-02-15  Raja R Harinath  <rharinath@novell.com>
10457
10458         * metadata.c (mono_metadata_decode_signed_value): Simplify.
10459         Delegate to mono_metadata_decode_value, and work on the returned value.
10460
10461         * icall.c (ves_icall_MonoType_GetGenericArguments):
10462         Add consistency check here too.
10463         
10464 2006-02-15  Ankit Jain  <jankit@novell.com>
10465
10466         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
10467         char/short etc.
10468
10469 2006-02-15  Ankit Jain  <jankit@novell.com>
10470
10471         * metadata.c (mono_metadata_decode_signed_value): New function to decode
10472         signed values, used only for representing lower bounds of arrays.
10473         (mono_metadata_parse_array_full): Use new
10474         mono_metadata_decode_signed_value to decode lower bounds.
10475
10476 2006-02-14  Martin Baulig  <martin@ximian.com>
10477
10478         * reflection.c
10479         (mono_reflection_get_token): Support "MonoGenericMethod" and
10480         "MonoGenericCMethod" and allow generic instances / methods.
10481
10482 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
10483
10484         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
10485         to obtain the terminal size using an ioctl.
10486
10487         * object.c (mono_nullable_init): Revert this as nullable reference
10488         types are not valid.
10489         (mono_nullable_box): Ditto.
10490
10491 2006-02-09  Dick Porter  <dick@ximian.com>
10492
10493         * threads.c (mono_thread_detach): Drop a reference to the thread
10494         we're detaching.
10495
10496 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
10497
10498         * object.c (mono_nullable_init): Handle nullable reference types.
10499         (mono_nullable_box): Ditto. Fixes #77446.
10500
10501 2006-02-07  Martin Baulig  <martin@ximian.com>
10502
10503         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
10504
10505 2006-02-07  Ankit Jain  <jankit@novell.com>
10506
10507         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
10508         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
10509         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
10510         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
10511         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
10512         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
10513
10514 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
10515
10516         * class.c (mono_class_create_generic): Set type_token as well.
10517
10518         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
10519         compatible with MS.
10520
10521 2006-02-02  Martin Baulig  <martin@ximian.com>
10522
10523         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
10524         has never been used so far.
10525
10526 2006-02-02  Martin Baulig  <martin@ximian.com>
10527
10528         * mono-debug-debugger.h: Changed comment at the top of this file;
10529         the header is not installed, but it's safe to #include it from
10530         within the JIT.
10531
10532         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
10533         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
10534
10535 2006-02-02  Martin Baulig  <martin@ximian.com>
10536
10537         * mono-debug.h
10538         (MonoSymbolTable): Removed the `metadata_info' field.
10539
10540         * mono-debug.c
10541         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
10542
10543         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10544         (mono_debugger_add_builtin_types): Removed.
10545         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
10546         (mono_debugger_create_notification_function): We now operate on a
10547         pre-allocated area; take a `gpointer' and return `void'.
10548
10549         * mono-debug-debugger.c
10550         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
10551         (mono_debugger_add_builtin_types): Removed.
10552
10553 2006-02-02  Martin Baulig  <martin@ximian.com>
10554
10555         * threads.c (mono_debugger_create_all_threads): New public method.
10556
10557 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
10558
10559         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
10560         breaks on several platforms.
10561
10562 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
10563
10564         * assembly.c: the VS.NET build doesn't supply default values for
10565         MONO_ASSEMBLIES and MONO_CFG_DIR.
10566
10567 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
10568
10569         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
10570         helper function.
10571
10572         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
10573
10574         * loader.c (method_from_memberref): Fix a warning.
10575
10576         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
10577
10578         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
10579         with explicit layout. Fixes #77433.
10580
10581 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
10582
10583         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
10584         max_interface_id is initialized before using it. Fixes #77398.
10585         (ves_icall_Type_GetInterfaces): Ditto.
10586
10587 2006-01-30  Raja R Harinath  <rharinath@novell.com>
10588
10589         * metadata.c (mono_metadata_parse_method_signature_full): Don't
10590         allocate memory for parameter attributes when parsing memberref
10591         signatures.
10592         * loader.c (mono_loader_set_error_method_load): Don't warn.
10593         (method_from_memberref): Ensure MissingMethodException gets thrown
10594         if method is not found.  Make warning more informative.
10595
10596 2006-01-29  Raja R Harinath  <harinath@gmail.com>
10597
10598         Fix #77397
10599         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
10600         return true if is byref.
10601         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
10602         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
10603         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
10604
10605 2006-01-27  Raja R Harinath  <rharinath@novell.com>
10606
10607         Fix tests/find-method.2.il
10608         * loader.c (find_method, find_method_in_class): Remove is_inflated
10609         argument.  Revert 2006-01-18 change.
10610         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
10611         is generic, search for method in its generic definition.
10612         * class.c (mono_class_setup_vtable_general): Print generic
10613         arguments of generic types in debugging printf.
10614
10615 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
10616
10617         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
10618
10619         * threads.c (mono_threads_request_thread_dump): New helper function.
10620
10621 2006-01-25  Raja R Harinath  <rharinath@novell.com>
10622
10623         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
10624
10625 2006-01-25  Ankit Jain  <jankit@novell.com>
10626
10627         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
10628         move definition to ..
10629         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
10630         
10631 2006-01-25  Ankit Jain  <jankit@novell.com>
10632             Raja R Harinath  <rharinath@novell.com>
10633
10634         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
10635         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
10636         as necessary.
10637
10638 2006-01-25  Martin Baulig  <martin@ximian.com>
10639
10640         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
10641         `MonoDebuggerThread' into debug-debugger.c.
10642
10643 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
10644
10645         * profiler.c: fix printing of data.
10646
10647 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
10648
10649         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
10650           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
10651
10652 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
10653
10654         * object.c: fix deadlock related to string interning.
10655
10656 2006-01-23  Martin Baulig  <martin@ximian.com>
10657
10658         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
10659
10660         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
10661
10662 2006-01-23  Martin Baulig  <martin@ximian.com>
10663
10664         * mono-debug.h: Moved the prototypes of some functions which are
10665         used by the JIT here from mono-debug-debugger.h.
10666
10667 2006-01-21  Martin Baulig  <martin@ximian.com>
10668
10669         * Makefile.am: Don't install mono-debug-debugger.h.
10670
10671 2006-01-21  Martin Baulig  <martin@ximian.com>
10672
10673         * mono-debug-debugger.h: Enforce the private status of this header
10674         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
10675         Moved some stuff from mono-debugger-jit-wrapper.h here.
10676
10677 2006-01-20  Raja R Harinath  <rharinath@novell.com>
10678
10679         * class.c (mono_class_from_typeref): Add a sanity test to help
10680         catch lack of assembly load/search hooks.
10681
10682 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
10683
10684         * marshal.c (emit_struct_conv): Relax the fields with same offset
10685         check even more. Fixes #77230.
10686
10687 2006-01-18  Martin Baulig  <martin@ximian.com>
10688
10689         * loader.c (find_method_in_class): Added `gboolean is_inflated'
10690         argument; if false, we compare the uninstantiated signatures.
10691         (method_from_memberref): Compare the uninstantiated signatures;
10692         fixes #76417.
10693
10694 2006-01-18  Robert Jordan  <robertj@gmx.net>
10695
10696         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
10697         Clear the weak link. Fixes bug #77170.
10698
10699         * gc.c (mono_gchandle_free):
10700         Reflect *-gc.c changes (tiny optimization).
10701
10702 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
10703
10704         * metadata.c (mono_metadata_signature_dup): Applied patch from
10705         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
10706         Fixes #77288.
10707
10708 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
10709
10710         * marshal.c (emit_struct_conv): Allow fields with the same offset when
10711         marshalling from native to managed code. Fixes #77230.
10712
10713 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10714
10715         * threadpool.c: fix problem (Mac only) when more than one asynchronous
10716         connect. Fixes bug #77020.
10717
10718 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
10719
10720         * class.c: fixed id assignement for nested interfaces (bug #77275).
10721         Added also better info for --print-vtable debugging.
10722
10723 2006-01-12  Martin Baulig  <martin@ximian.com>
10724
10725         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
10726         interfaces on-the-fly; fixes #76625.
10727
10728         * class-internals.h
10729         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
10730         don't need that anymore.
10731
10732 2006-01-12  Miguel de Icaza  <miguel@novell.com>
10733
10734         * socket-io.c
10735         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
10736         To avoid initing the nested_classes when not needed I turned the
10737         PeerCredData as a toplevel internal class, as it has to be shared
10738         anyways. 
10739
10740         Fixes the CASA issue.
10741
10742 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
10743
10744         * domain.c: Accessors for MonoJitInfo
10745
10746         * profiler-private.h: Add jitinfo to the end jit hook
10747
10748         * profiler.[ch]: Define new hooks, called after jitting which give
10749         the MonoJitInfo that was compiled
10750
10751 2006-01-10  Martin Baulig  <martin@ximian.com>
10752
10753         * class.c (mono_class_setup_events): Add support for generic
10754         classes; fixes #76440.
10755
10756 2006-01-06  Raja R Harinath  <rharinath@novell.com>
10757
10758         Fix #77160.
10759         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
10760         on passed-in method.
10761
10762 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
10763
10764         * object.c (mono_runtime_invoke_array): Add Nullable support.
10765
10766         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
10767
10768 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
10769
10770         * file-io.c: Don't consider sockets as directory and avoid an endless
10771         loop. Fix bug #76966.
10772
10773 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
10774
10775         * object.c (mono_nullable_init): New helper function.
10776         (mono_nullable_box): Ditto.
10777
10778         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
10779
10780         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
10781
10782         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
10783         
10784 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
10785
10786         * class.c (mono_class_is_assignable_from): Make T assignable to 
10787         Nullable<T>.
10788
10789 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
10790
10791         * appdomain.c: Bump corlib version to 46.
10792         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
10793         serialization purpose) and changed ves_icall_System_Reflection_
10794         Assembly_get_code_base signature to accept a boolean (to escape, or 
10795         not, the assembly code base).
10796
10797 2005-12-23  Dick Porter  <dick@ximian.com>
10798
10799         * icall.c: 
10800         * threads-types.h: 
10801         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
10802         CreateEvent icall now returns "created" boolean parameter.
10803
10804 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
10805
10806         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
10807         #76967.
10808
10809         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
10810         when attr_klass is an interface. Fixes #77045.
10811
10812 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
10813
10814         * marshal.c (emit_struct_conv): Fix previous patch.
10815         
10816         * marshal.c (emit_struct_conv): Add a check for fields with the same
10817         offset.
10818
10819 2005-12-20  Raja R Harinath  <rharinath@novell.com>
10820
10821         Fix regression in Mono.C5.
10822         * class.c (mono_class_create_generic): If 'klass' is an interface
10823         set up the interface offsets.
10824         (mono_class_is_assignable_from): Don't throw away generic arguments.
10825
10826 2005-12-19  Raja R Harinath  <rharinath@novell.com>
10827
10828         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
10829         type parameters.
10830
10831 2005-12-15  Raja R Harinath  <rharinath@novell.com>
10832
10833         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
10834         dead store.
10835         (do_mono_metadata_parse_generic_class): Don't pass the current
10836         generic context when parsing the type being instantiated: it
10837         cannot use it, anyway.
10838
10839         * loader.c (method_from_memberref): Don't inflate a signature if
10840         it doesn't contain any type parameters.
10841
10842 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
10843
10844         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
10845
10846 2005-12-14  Martin Baulig  <martin@ximian.com>
10847
10848         * class.c
10849         (mono_type_get_name_recurse): Don't return null for type
10850         parameters and open generic classes.
10851         (mono_class_setup_methods): Don't exclude generic instances.
10852         (mono_get_unique_iid): Use different IDs for different
10853         instantiations of the same generic type.
10854         (mono_class_setup_vtable): Only use setup_generic_vtable() for
10855         open generic instances; create a normal vtable for closed generic
10856         instances.
10857         (mono_class_setup_vtable_general): We're now also called for
10858         closed generic instances.
10859
10860         * reflection.c
10861         (mono_reflection_bind_generic_parameters): Correctly use
10862         mono_metadata_lookup_generic_inst() everywhere.
10863
10864 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
10865
10866         * object.c (mono_class_create_runtime_vtable): Call 
10867         mono_class_setup_vtable ().
10868
10869         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
10870         function.
10871         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
10872         #76959.
10873
10874         * loader.c (mono_loader_set_error_type_load): Print the type load
10875         warnings to the console so they are more visible to the user.
10876         (mono_loader_set_error_method_load): Ditto.
10877
10878         * reflection.c (ensure_runtime_vtable): Revert the last change as it
10879         is still broken.
10880         
10881         * reflection.c (ensure_runtime_vtable): Fix build.
10882
10883         * reflection.c (ensure_runtime_vtable): Disable an optimization which
10884         doesn't work in all cases.
10885
10886 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
10887
10888         * object.c (mono_array_new_full): Treat a single dimensional array
10889         with 0 lower bounds as an szarray. Fixes #76973.
10890
10891         * reflection.c (custom_attr_visible): Really fix this.
10892
10893 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
10894
10895         * reflection.c (custom_attr_visible): Allow nested public attributes
10896         as well.
10897
10898         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
10899         interface check.
10900
10901 2005-12-12  Raja R Harinath  <harinath@gmail.com>
10902
10903         * class.c (set_generic_param_owner): Delete.
10904         (mono_class_create_from_typedef): Don't set ->owner field of
10905         generic parameters to "param containers" of enclosing classes.
10906         * reflection.c (mono_reflection_initialize_generic_parameter):
10907         Likewise.
10908
10909 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
10910
10911         * reflection.c (custom_attr_visible): Fix build.
10912
10913 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
10914
10915         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
10916         private attributes.
10917         
10918         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
10919         handling of null parameter defaults.
10920
10921 2005-12-09  Raja R Harinath  <rharinath@novell.com>
10922
10923         * class.c (mono_class_from_generic_parameter): Don't set
10924         klass->generic_container.
10925         (my_mono_class_from_generic_parameter): Likewise.
10926
10927 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
10928
10929         * reflection.c (load_public_key): Fix a warning.
10930         (method_encode_code): Fix unaligned accesses.
10931
10932 2005-12-07  Martin Baulig  <martin@ximian.com>
10933
10934         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
10935
10936         * reflection.c
10937         (write_generic_param_entry): Encode our custom attrs.
10938
10939         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
10940
10941 2005-12-07  Martin Baulig  <martin@ximian.com>
10942
10943         * reflection.c (encode_new_constraint): Removed; we don't use the
10944         `NewConstraintAttribute' anymore.
10945
10946 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
10947
10948         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
10949         not fire a TypeResolve event when Assembly.GetType () is called.
10950
10951 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
10952
10953         Beginning of support for nullable types in the runtime. Parts of
10954         this patch are from Martin.
10955
10956         * appdomain.c (MONO_CORLIB_VERSION): Bump
10957
10958         * domain.c (mono_init_internal): get the nullable type
10959
10960         * class.c (mono_class_is_nullable): New method
10961         (mono_class_get_nullable_param): New mehod
10962         (mono_class_create_generic): In types T? set cast_class to T
10963
10964         * class-internals.h (MonoDefaults): new nullable default class
10965         (mono_class_get_nullable_param, mono_class_get_nullable_param):
10966         new methods.
10967
10968 2005-12-05  Raja R Harinath  <rharinath@novell.com>
10969
10970         * metadata.c (select_container): New.  Refactor code to select the
10971         appropriate GenericContainer given the type of generic parameter
10972         we are looking for.
10973         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
10974         not a MonoGenericContext.  Use select_container.  Update parameters.
10975         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
10976         and MONO_TYPE_MVAR.
10977         (unwrap_arrays): Remove duplicate tests.
10978         (find_generic_param): Rename from 'has_same_context'.  Now walks a
10979         generic instantiated class to find any arguments that are generic
10980         parameters.
10981         (mono_type_create_from_typespec_full): Use find_generic_param to
10982         avoid evicting some generic instantiations from the typespec
10983         cache.
10984
10985 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
10986
10987         * reflection.c: fixed writing of doubles on ARM FPA.
10988
10989 2005-12-02  Robert Jordan  <robertj@gmx.net>
10990
10991         * icall.c: Fixed EventInfo.ReflectedType (#76829).
10992
10993 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10994
10995         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
10996         least on SUSE 10 they are not the same (on debian, they are just the
10997         same thing).
10998
10999 2005-12-01  Raja R Harinath  <rharinath@novell.com>
11000
11001         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
11002         DeclaringType for VARs and MVARs.
11003         * class.c (set_generic_param_owner): Fix initialization of owner
11004         fields.
11005
11006 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
11007
11008         * icall.c: fixed Enum.ToObject() to correctly convert the values.
11009
11010 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11011
11012         * threadpool.c: workaround for a bug that shows up on the Mac:
11013         select()+connect() on a blocking socket is not like it should
11014         be, so we proceed to connect() in that case, wasting the I/O
11015         threadpool thread until connect succeedes. Fixes bug #75436.
11016
11017 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11018
11019         * threadpool.c: fix typo when setting file descriptor states.
11020
11021 2005-11-28  Raja R Harinath  <rharinath@novell.com>
11022
11023         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
11024         * metadata.c (mono_metadata_parse_method_signature_full): Don't
11025         create a temporary signature container.
11026         (mono_metadata_parse_generic_param): Update to changes.
11027         (mono_type_create_from_typespec_full): Update to changes.
11028         * loader.c (method_from_memberref): Don't use a
11029         MonoGenericContainer while parsing a memberref signature.
11030         (method_from_methodspec): Remove dead-store of the 'container'
11031         variable.  It's overwritten before use.
11032
11033         * metadata.c (mono_type_create_from_typespec_full): Make debugging
11034         checks tighter.
11035         (mono_metadata_parse_generic_param): Likewise.
11036         * loader.c (find_method_in_class): Does not need a
11037         MonoGenericContainer.  Use 'mono_method_signature' rather than
11038         'mono_method_signature_full'.
11039         (find_method, mono_get_method_constrained, method_from_memberref):
11040         Update to changes.
11041
11042         * metadata.c (mono_type_create_from_typespec_full): Ensure that
11043         owner-less generic-parameters are never evicted from the typespec
11044         cache.
11045
11046         * loader.c (method_from_memberref): Don't use the current context
11047         when parsing signatures.
11048         (method_from_methodspec, mono_get_method_from_token): Update to changes.
11049
11050         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
11051         side-effects in g_assert.
11052         * loader.c (mono_get_method_from_token): Resolve klass earlier so
11053         that we don't potentially lose information.
11054
11055 2005-11-26  Dick Porter  <dick@ximian.com>
11056
11057         * icall.c:
11058         * threads.c: icalls to implement basic (ie, not named)
11059         System.Threading.Semaphore.
11060
11061 2005-11-24  Dick Porter  <dick@ximian.com>
11062
11063         * process.c
11064         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11065         Use GetProcessId() if it's available.
11066
11067 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
11068
11069         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
11070
11071 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11072             Ankit Jain  <jankit@novell.com>
11073
11074         * loader.c (mono_get_method_from_token): Initialize 'method' field
11075         of all generic parameters before parsing the signature.  Remove
11076         code that "fixed"-up MVAR references.
11077
11078 2005-11-23  Ankit Jain  <jankit@novell.com>
11079
11080         * metadata.c (mono_metadata_has_generic_params):
11081         (mono_metadata_load_generic_param_constraints):
11082         (mono_metadata_load_generic_params): Move duplicate code ...
11083         (mono_metadata_get_generic_param_row): ... here. Returns the
11084         first row-id in GenericParam table for a given owner (token).
11085         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
11086         prototype.
11087
11088 2005-11-23  Raja R Harinath  <rharinath@novell.com>
11089             Ankit Jain  <jankit@novell.com>
11090
11091         * metadata.c (mono_metadata_class_equal): Pass signature_only when
11092         comparing VARs too.
11093         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
11094         type->data.generic_param only if the type is an MVAR.
11095         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
11096         leak owner-less VARs and MVARs into managed space.
11097
11098 2005-11-21  Martin Baulig  <martin@ximian.com>
11099
11100         * class-internals.h
11101         (MonoMethod): Moved the `generic_container' here from
11102         `MonoMethodNormal' since we now also need it for
11103         `MonoMethodPInvoke';
11104         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
11105         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
11106         an union containing both `MonoMethodNormal' and
11107         `MonoMethodPInvoke'.
11108
11109         * loader.c
11110         (mono_get_method_from_token): Allow implementing generic methods
11111         as interncalls.
11112
11113         * threads.c
11114         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
11115         icall.
11116
11117 2005-11-17  Dick Porter  <dick@ximian.com>
11118
11119         * icall.c: 
11120         * process.h: 
11121         * process.c: Split the Process Start_internal icall into
11122         ShellExecuteEx_internal and CreateProcess_internal, which are
11123         called depending on whether UseShellExecute is true.  Fixes bug
11124         76670.
11125
11126         * appdomain.c (MONO_CORLIB_VERSION): Incremented
11127
11128 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
11129
11130         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
11131         'msize' parameters, use the information in 'mspec' instead.
11132         (emit_object_to_ptr_conv): Ditto.
11133
11134         * marshal.c (emit_struct_conv): Handle explicit layout structs with
11135         fields out of order. Fixes #76733.
11136
11137 2005-11-17  Ankit Jain  <jankit@novell.com>
11138
11139         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
11140
11141 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
11142
11143         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
11144           bug #76575.
11145
11146 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11147
11148         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
11149         for types with non-auto layout. Fixes #76717.
11150
11151 2005-11-16  Ankit Jain  <jankit@novell.com>
11152
11153         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
11154         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
11155         if generic_context is null.
11156           (mono_metadata_generic_param_equal): param->owner can be null.
11157           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
11158         null.
11159
11160 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
11161
11162         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
11163         the correct value.
11164
11165 2005-11-15  Martin Baulig  <martin@ximian.com>
11166
11167         * object.c (set_value): Use mono_class_from_mono_type() instead of
11168         the hack for generic instances; fixes #76136.
11169
11170 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
11171
11172         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
11173         fields.
11174
11175         * image.c (load_metadata_ptrs): Initialize the new fields.
11176
11177         * reflection.c (create_dynamic_mono_image): Ditto.
11178
11179         * reflection.c (build_compressed_metadata): Use the new fields.
11180
11181         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
11182         icall.
11183
11184         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
11185         icall.
11186         
11187 2005-11-15  Ankit Jain  <jankit@novell.com>
11188             Raja R Harinath  <harinath@gmail.com>
11189
11190         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
11191         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
11192         new per-generic_container cache if the cached MonoType's context matches
11193         the current context.
11194           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
11195         to the expected context.
11196           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
11197
11198 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11199
11200         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
11201         we changed the signature of an icall.
11202         * icall.c: Modify to mono_double_ParseImpl return true/false 
11203         depending on the success, instead of throwing the exception. This will
11204         help us in Double.TryParse methods.
11205         
11206 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
11207
11208         * marshal.c (emit_marshal_object): Throw an exception when
11209         marshalling 'object' instead of crashing. Fixes #76696.
11210
11211 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11212
11213         * class-internals.h: Add prototype for mono_type_get_full_name ().
11214
11215 2005-11-11  Dick Porter  <dick@ximian.com>
11216
11217         * threads.c (mono_thread_manage): Make sure the main thread has
11218         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
11219
11220 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
11221
11222         * loader.c (mono_loader_set_error_type_load): Log a warning to the
11223         console about the missing type.
11224         (mono_loader_set_error_method_load): Ditto.
11225
11226 2005-11-09  Miguel de Icaza  <miguel@novell.com>
11227
11228         * mono-config.c (mono_get_config_dir): Set the system defaults if
11229         none is specified.
11230
11231         * assembly.c (mono_set_dirs): New API entry point to set the
11232         assembly and the config directory in one call
11233
11234 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
11235
11236         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
11237         the ftnptr was created from a delegate in a domain other than the
11238         current domain. Fixes #75377.
11239
11240         * exception.h exception.c: Add mono_get_exception_not_supported ().
11241
11242 2005-11-08  Martin Baulig  <martin@ximian.com>
11243
11244         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
11245
11246 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
11247
11248         * security-manager.h: Added definitions to deal with strongname key 
11249         pairs bigger (and smaller) than 1024 bits.
11250         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
11251         adjust wrt the public key length being used.
11252
11253 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
11254
11255         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
11256           Windows build (r51396-51397).
11257
11258 2005-11-03  Martin Baulig  <martin@ximian.com>
11259
11260         * class.c (mono_class_setup_vtable_general): Also add generic
11261         methods to the vtable; fixes #76581.
11262
11263 2005-11-01  Miguel de Icaza  <miguel@novell.com>
11264
11265         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
11266         sure that we lookup GetString method from the System.Text.Encoding
11267         class, not the derived class or we get an empty method.
11268
11269         Fixed class #76612.
11270
11271 2005-10-25  Miguel de Icaza  <miguel@novell.com>
11272
11273         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
11274         if it has been previously set (embedders). 
11275
11276         Make mono_set_rootdir available also on Unix.
11277
11278 005-10-24  Robert Jordan  <robertj@gmx.net>
11279
11280         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
11281
11282 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
11283
11284         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
11285         only calls which are made to native code use this flag.
11286
11287         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
11288
11289 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
11290
11291         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
11292         Add support for FieldBuilders.
11293
11294 2005-10-29  Martin Baulig  <martin@ximian.com>
11295
11296         * mono-debug.c
11297         (mono_debug_using_mono_debugger): New public method; returns
11298         whether we're running inside the debugger.
11299
11300 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
11301
11302         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
11303         for Method/Constructor/FieldBuilders.
11304
11305 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
11306
11307         * reflection.c (module_add_cattrs): Save custom attributes for global methods
11308         and fields as well.
11309
11310 2005-10-26  Martin Baulig  <martin@ximian.com>
11311
11312         * mono-debug-debugger.c
11313         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
11314
11315 2005-10-24  Raja R Harinath  <harinath@gmail.com>
11316
11317         * icall.c (base64_to_byte_array): Don't pass an out-of-range
11318         integer to isspace.
11319
11320 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
11321
11322         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
11323         when passing valuetypes byref. Fixes #76502.
11324
11325 2005-10-19  Jackson Harper  <jackson@ximian.com>
11326
11327         * profiler.c: Don't put a . in front of types that are not in a
11328         namespace.
11329
11330 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
11331
11332         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
11333
11334 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
11335
11336         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
11337         #76436.
11338         (mono_marshal_get_ldflda_wrapper): Fix a warning.
11339
11340 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11341
11342         * assembly.c metadata-internals.h icall.c: Define an additional
11343         parameter for mono_assembly_name_parse_full, so we can avoid creating
11344         S.R.AssemblyName.Version when no version info wasn't passed.
11345         
11346 2005-10-09  Miguel de Icaza  <miguel@novell.com>
11347
11348         * class.c (mono_type_get_full_name): Reimplement method that was
11349         removed. 
11350
11351         * image.c: Some docs
11352
11353 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
11354
11355         * profiler.c (output_newobj_profile): Fix printing of Total memory
11356         on x86.
11357
11358 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11359
11360         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
11361
11362 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
11363
11364         * threads.c: remove debug output.
11365
11366 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
11367
11368         * threads.c (mono_thread_manage): Fix crashes if more than 64
11369         threads need to be aborted. Hopefully fixes #75899.
11370
11371         * assembly.c (mono_stringify_assembly_name): New helper function.
11372
11373         * class.c: Use mono_stringify_assembly_name instead of the similar
11374         static function.
11375
11376         * assembly.h assembly.c: Add support for calling a postload search 
11377         hook if an assembly cannot be loaded.
11378
11379         * appdomain.c: Register new search hooks which call the AssemblyResolve
11380         events in AppDomain. Fixes #75231
11381
11382 2005-10-07  Martin Baulig  <martin@ximian.com>
11383
11384         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
11385         methods without debug info.
11386
11387 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
11388
11389         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
11390         wrappers.
11391
11392 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11393
11394         * file-io.c: now that we return symlinks, use lstat and, when the file
11395         is a symbolic link, stat, to get the file attributes. Also avoid the
11396         conversion to/from utf16/external.
11397
11398 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
11399
11400         * class.c (mono_class_layout_fields): Compute klass->has_references
11401         correctly if an embedded valuetype is not yet initialized. Fixes
11402         #76331.
11403
11404 2005-10-04  Martin Baulig  <martin@ximian.com>
11405
11406         * metadata.c
11407         (mono_metadata_load_generic_param_constraints): New public
11408         function; splitted the constraints loading out from
11409         mono_metadata_load_generic_params().
11410
11411         * class.c (mono_class_create_from_typedef): Call
11412         mono_metadata_load_generic_param_constraints() after setting up
11413         the type and creating our parent; fixes #75329.
11414
11415 2005-10-04  Martin Baulig  <martin@ximian.com>
11416
11417         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
11418         non-dynamic parent classes.
11419
11420 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
11421
11422         * file-io.c : win32 build fix (ETXTBSY seems not found).
11423
11424 2005-10-04  Martin Baulig  <martin@ximian.com>
11425
11426         * reflection.c
11427         (mono_image_get_methodspec_token): Make the cache actually work;
11428         fixes #75974.
11429
11430 2005-10-04  Martin Baulig  <martin@ximian.com>
11431
11432         * class.c (mono_class_name_from_token): Removed the unneccessary
11433         `MonoGenericContext *' argument.
11434
11435 2005-10-04  Martin Baulig  <martin@ximian.com>
11436
11437         * loader.c
11438         (method_from_methodspec): Make the caching work again; fixes the
11439         performance regression from #76262.
11440
11441 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11442
11443         * file-io.c:
11444         * file-io.h:
11445         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
11446         GetFileSystemEntries that performs the same work but without going
11447         into io-layer, locking, etc.
11448
11449 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
11450
11451         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
11452         ThreadState_Stopped as well. Fixes #76047.
11453
11454 2005-09-29  Martin Baulig  <martin@ximian.com>
11455
11456         * class.c
11457         (inflate_generic_context): If the new context has a `gmethod', set
11458         its `container' that that gmethod's `container'.
11459
11460         * metadata.c
11461         (mono_metadata_parse_generic_param): Simplify things;
11462         `generic_container = generic_context->container;' is just fine.
11463
11464         * loader.c (method_from_methodspec): Code cleanups.
11465
11466 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
11467
11468         * decimal.c: fix warning (and let gcc generate correct
11469         code on ARM with optimizations).
11470
11471 2005-09-28  Martin Baulig  <martin@ximian.com>
11472
11473         * loader.c
11474         (method_from_memberref): Added `MonoGenericContext *class_context'
11475         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
11476         (method_from_methodspec): If we're a memberref, use the enclosing
11477         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
11478
11479 2005-09-28  Martin Baulig  <martin@ximian.com>
11480
11481         * object.c (mono_runtime_invoke_array): Added support for
11482         MONO_TYPE_GENERICINST; fixes #75917.
11483
11484 2005-09-27  Martin Baulig  <martin@ximian.com>
11485
11486         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
11487         `k->byval_arg.type' to determine the actual type.
11488
11489         * loader.c (method_from_methodspec): Removed some hacks.
11490
11491 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
11492
11493         * class-internals.h (mono_field_is_deleted): Do the test for
11494         rtspecialname before we check the actual name of the field. This
11495         prevents us from dereferencing a pointer into the string table,
11496         saving us from accessing a few pages
11497
11498         * *.c: Replace the use of {Enter,Leave}CriticalSection with
11499         macros. This will allow a deadlock debugger to easily be plugged
11500         in.
11501
11502 2005-09-27  Martin Baulig  <martin@ximian.com>
11503
11504         * loader.c (method_from_methodspec): Create a "signature"
11505         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
11506
11507 2005-09-27  Martin Baulig  <martin@ximian.com>
11508
11509         * class.c
11510         (inflate_generic_class): Correctly set the new context's
11511         container.
11512
11513         * loader.c
11514         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
11515         instead of a `MonoGenericContext *'.
11516         (mono_method_signature_full): Take a `MonoGenericContainer *'
11517         instead of a `MonoGenericContext *'.
11518
11519         * metadata.c
11520         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
11521         instead of a `MonoGenericContext *'.
11522         (mono_metadata_parse_method_signature_full): Likewise.
11523
11524 2005-09-26  Martin Baulig  <martin@ximian.com>
11525
11526         * class.c
11527         (mono_class_from_generic_parameter): Set `klass->generic_container'
11528         (mono_class_from_generic_parameter): Likewise.
11529         (mono_bounded_array_class_get): We inherit the generic container
11530         from the element class.
11531
11532         * loader.c
11533         (find_method, find_method_in_class): Take a `MonoGenericContext *'
11534         argument rather than computing it here.
11535         (method_from_memberref): Correctly set the generic context before
11536         parsing the signature.  Fixes #75681.
11537
11538 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
11539
11540         * object.c (mono_class_has_special_static_fields): Fix warnings.
11541
11542 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11543
11544         * assembly.c: Add parse_public_key function, to
11545         par the public keys. Also added mono_assembly_name_parse_full,
11546         to define it the parsed key should be freed or not.
11547         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
11548         to parse a long format assembly name.
11549         * metadata-internals.h: Keep mono_assembly_name_parse_full as
11550         private, since calling it to preserve the key requires
11551         freeing it manually.
11552         
11553 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
11554
11555         * locales.c : removed HAVE_ICU part.
11556
11557 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
11558
11559         * object.c (mono_class_create_runtime_vtable): Avoid calling 
11560         field_is_special_static if the klass has no special static fields.
11561
11562         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
11563         (MonoCachedClassInfo): Likewise.
11564
11565         * object.c (mono_class_has_special_static_fields): New helper function.
11566
11567 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11568
11569         * class.c (mono_class_create_from_typedef): Don't call 
11570         interfaces_from_typedef_full for enums.
11571         (mono_class_create_from_typedef): Compute the base types of enums directly
11572         without calling mono_class_setup_fields ().
11573         (mono_class_find_enum_basetype): New helper function.
11574
11575         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
11576         one place inside the string heap.
11577         
11578 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
11579
11580         * class.c: locking fixes, code cleanups, some docs added.
11581         Allocate some data structures in the image mempool.
11582
11583 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11584
11585         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11586         the example code.
11587         
11588 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
11589
11590         * class-internals.h, class.c, reflection.c: reduce memory taken by
11591         MonoClass.
11592
11593 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
11594
11595         * metadata.c, metadata.h, loader.h: documentation updates, code and
11596         API cleanups.
11597
11598 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
11599
11600         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
11601         the example code.
11602
11603         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
11604         page faults caused by the runtime while reading metadata.
11605
11606 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11607
11608         * socket-io.c: the field names were changed 3 months ago and no one
11609         realized until bug #76077 got filed!
11610
11611 2005-09-20  Martin Baulig  <martin@ximian.com>
11612
11613         * icall.c (assembly_icalls): Removed some unused debugger icalls.
11614
11615 2005-09-20  Martin Baulig  <martin@ximian.com>
11616
11617         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
11618         write the rank into the class entry.
11619
11620 2005-09-20  Martin Baulig  <martin@ximian.com>
11621
11622         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
11623
11624 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
11625
11626         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11627
11628         * icall.c (custom_attrs_defined_internal): New icall.
11629
11630         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
11631         function.
11632         (mono_custom_attrs_construct_by_type): New helper function.
11633
11634 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
11635
11636         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
11637         terminate the resulting string. Fixes #76123.
11638
11639 2005-09-16  Martin Baulig  <martin@ximian.com>
11640
11641         * mono-debug.c
11642         (mono_debug_add_method): Ignore inflated methods for the moment.
11643
11644 2005-09-14  Martin Baulig  <martin@ximian.com>
11645
11646         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
11647
11648 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
11649
11650         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
11651         return a success/failure indication.
11652         (mono_metadata_interfaces_from_typedef_full): Ditto.
11653         (get_constraints): Ditto.
11654
11655 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
11656
11657         * marshal.c (emit_marshal_array): Fix handling of null arrays.
11658         
11659         * marshal.c (emit_marshal_array): Add support for returning string
11660         arrays from delegates. Fixes #76063.
11661
11662         * marshal.c: Use the emit_ldloc/stloc macros where possible.
11663
11664 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
11665
11666         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
11667         icall.
11668
11669 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
11670
11671         * reflection.c icall.c: Fix after mono_get_exception_type_load
11672         signature change.
11673
11674         * assembly.c (mono_assembly_get_assemblyref): New helper function.
11675         (mono_assembly_load_reference): Use the new helper.
11676
11677         * class-internals.h (MonoLoaderError): New structure containing 
11678         information about type loading errors.
11679
11680         * class-internals.h loader.c: Add APIs to store per-thread loader
11681         error information.
11682
11683         * loader.c class.c: Set the loader error if needed.
11684
11685         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
11686
11687 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
11688
11689         * decimal.c: fixed to handle the broken ARM fp format.
11690
11691 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
11692
11693         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
11694         broken.
11695
11696 2005-09-06  Martin Baulig  <martin@ximian.com>
11697
11698         * domain.c (supported_runtimes): Added v2.0.50727.
11699
11700 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
11701
11702         * culture-info.h: reduce the size of some structures.
11703
11704 2005-09-05  Martin Baulig  <martin@ximian.com>
11705
11706         Reflect latest API changes in the August CTP.
11707
11708         * icall.c
11709         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
11710         ("MonoType.HasGenericArguments"): Removed.
11711         ("MonoMethod.BindGenericParameters"): Renamed to
11712         "MakeGenericMethod".
11713         ("MethodBuilder.BindGenericParameters"): Renamed to
11714         "MakeGenericMethod".    
11715
11716 2005-09-05  Martin Baulig  <martin@ximian.com>
11717
11718         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
11719
11720 2005-09-05  Martin Baulig  <martin@ximian.com>
11721
11722         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11723
11724         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
11725         generic_container is non-NULL.
11726
11727 2005-09-05  Martin Baulig  <martin@ximian.com>
11728
11729         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11730
11731         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
11732
11733 2005-08-29  Michal Moskal  <malekith@nemerle.org>
11734
11735         * reflection.c (encode_locals,
11736         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
11737         for large generic types.
11738
11739 2005-09-05  Martin Baulig  <martin@ximian.com>
11740
11741         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11742
11743         * class.c (mono_dup_array_type): New public method.
11744         (mono_metadata_signature_deep_dup): New public method.
11745         (dup_type): Correctly duplicate array and function types.
11746
11747 2005-09-05  Martin Baulig  <martin@ximian.com>
11748
11749         Applying a patch from Michal Moskal <malekith@nemerle.org>.
11750
11751         * reflection.c (get_default_param_value_blobs): Handle generic types
11752         and generic methods.
11753
11754 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
11755
11756         * class.c: Fixed error reporting (method/class were inversed) for 
11757         inheritance demands.
11758         * security-manager.c|h: Added the AppDomain when calling the managed
11759         System.Security.SecurityManager.InheritanceDemand method.
11760
11761 2005-09-01  Raja R Harinath  <rharinath@novell.com>
11762
11763         * reflection.c (encode_marshal_blob): 'marshaltype' and
11764         'marshaltyperef' are alternate sources for the custom marshaler
11765         name.
11766
11767 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
11768
11769         * class.c: fix creation of array classes with rank == 1
11770         (patch by Ankit Jain <jankit@novell.com>).
11771
11772 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
11773
11774         * object.c: fix check for creating the bound data for arrays vs
11775         szarrays.
11776
11777 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11778
11779         * object.c: configuration file name is now based on the executable name,
11780         not the image name. Fixes bug #75931.
11781
11782 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
11783
11784         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
11785         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
11786
11787 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
11788
11789         * rand.c: Use wincrypt.h instead of WinCrypt.h.
11790
11791 2005-08-24  Ankit Jain  <jankit@novell.com>
11792             Raja R Harinath  <rharinath@novell.com>
11793
11794         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
11795           called by it recursively.
11796           (mono_class_init): Remove special case in pending_init handling, since it's
11797           superseded by the fix to mono_class_from_typeref.
11798
11799 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
11800
11801         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
11802         BROKEN_THREAD_START stuff.
11803
11804 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
11805
11806         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
11807         trampoline.
11808
11809         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
11810         
11811         * object.c (mono_delegate_ctor): Replace the original function address with
11812         a delegate trampoline.
11813
11814 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
11815
11816         * icall.c: add boolean argument to base64_to_byte_array and 
11817         InternalFromBase64String to control whether a whitespace-only string
11818         is allowed (or should casue a FormatException to be thrown). We need
11819         this as the behavior has changed between MS.NET 1.x and 2.0, and we
11820         to match the MS behaviour in both profiles.
11821         * appdomain.c: Bump corlib version.
11822
11823 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
11824
11825         This patch implements a big portion of publisher policy
11826         support, used to bind assembly versions and redirect
11827         one assembly from version A to version B.
11828
11829         * assembly.c:
11830         New GSList loaded_assembly_bindings, for storing the cached
11831         assembly bindings.
11832         (assembly_binding_maps_name): New static function for checking if a 
11833         assembly binding information maps an assembly name.
11834         (mono_assembly_binding_info_free): New function for freeing
11835         assembly binding information resources.
11836         (get_publisher_policy_info): New static function for retrieving 
11837         assembly binding information from a MonoImage.
11838         (compare_versions): New static function for comparing an assembly
11839         binding information data and the version of an assembly name.
11840         (check_policy_versions): New static function for checking if an
11841         assembly binding info mapping an assembly name is valid for it.
11842         (mono_assembly_load_publisher_policy): New static function for
11843         loading the 'policy.major.minor.MyAssembly' image for an assembly
11844         with an assembly name 'aname'.
11845         (mono_assembly_bind_version): New static function for updating
11846         assembly redirection.
11847         (mono_assembly_apply_binding): New static function for applying
11848         assembly binding.
11849         (search_binding_loaded): New static function for searching 
11850         loaded assembly binding infos in the cache domain.
11851         (mono_assembly_load_full): Don't apply assembly binding for
11852         reflection only assemblies.
11853
11854         * metadata-internals.h: Add MonoAssemblyBindingInfo,
11855         which contains information about assembly binding. Also
11856         declare signature for mono_config_parse_publisher_policy ()
11857         function, used to retrieve pub policy info.
11858         
11859         * mono-config.c:
11860         (publisher_policy_start): New static function used to parse publisher 
11861         policy config files.
11862         (publisher_policy_parser): New static MonoParseHandler containing 
11863         the functions used when parsing config files.
11864         (mono_config_parse_publisher_policy): New function for parsing
11865         publisher policy files.
11866         
11867 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
11868
11869         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
11870
11871         * marshal.c (mono_delegate_free_ftnptr): Ditto.
11872
11873         * object.c (mono_get_addr_from_ftnptr): New helper function.
11874
11875         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
11876
11877         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
11878
11879 2005-08-19  Dick Porter  <dick@ximian.com>
11880
11881         * threads.c, threads.h, appdomain.c, appdomain.h,
11882         profiler-private.h, monitor.c, object.c, object-internals.h,
11883         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
11884         store the thread ID, so it can hold a 64 bit value if needed.
11885
11886 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
11887
11888         * reflection.c (mono_reflection_create_dynamic_method): Store the
11889         handle class into the method references as well so ldtoken works in
11890         dynamic methods.
11891
11892         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
11893         types.
11894
11895 2005-08-19  Ankit Jain <jankit@novell.com>
11896
11897         Fix #75847.
11898         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
11899           here rather than using the method signature of a arbitrary function
11900           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
11901           two arguments.
11902           Hack done with Harinath.
11903
11904 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11905
11906         * threadpool.c: disable printing stack traces when we get a exception
11907         in a threadpool thread. I need to do more testing to figure out which
11908         cases actually print this. Fixes bug #75828.
11909
11910 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11911
11912         * icall.c: there might be ignored whitespace after the last '='. This
11913         fixes length computation and bug #75840.
11914
11915 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
11916
11917         * assembly.c (mono_assembly_load_full): Consider .exe extension as
11918         well. Fixes #75809.
11919
11920         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
11921         #75784.
11922         
11923         * reflection.c (create_custom_attr_data): Ditto.
11924
11925 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
11926
11927         * locales.c, culture-info.h : removed RegionLCIDMap.
11928         * culture-info-tables.h : regenerated.
11929
11930 2005-08-16  Martin Baulig  <martin@ximian.com>
11931
11932         * class.c (mono_type_get_name_recurse): Small fix.
11933
11934 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
11935
11936         * locales.c : indentation fixie.
11937
11938 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
11939
11940         * object-internals.h,
11941           locales.h,
11942           locales.c,
11943           culture-info.h,
11944           icall.c : added RegionInfo table support.
11945         * culture-info-table.h : regenerated for region support.
11946
11947 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
11948
11949         * reflection.c (resolve_object): handle all kinds of MonoMethod
11950         including generic ones
11951
11952 2005-08-12  Ankit Jain <jankit@novell.com>
11953
11954         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
11955           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
11956
11957 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
11958
11959         * process.c: Don't close a thread handle when it's NULL. This is a
11960         workaround for bug #75733.
11961
11962 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
11963
11964         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
11965
11966 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
11967
11968         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
11969
11970 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11971
11972         * threadpool.c: if a work item in the thread pool has a callback that
11973         catches a exception, don't propagate it after invoking the callback.
11974         Fixes bug #75336.
11975
11976 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
11977
11978         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
11979
11980         * class-internals.h (MonoCachedClassInfo): Add some new fields.
11981
11982         * class.c (mono_class_init): Load field info lazily in the AOT case.    
11983
11984         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
11985
11986 2005-08-03  Ankit Jain  <jankit@novell.com>
11987
11988         Fix #75683.
11989         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
11990           PInvoke calling convention is 0.
11991
11992 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
11993
11994         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
11995         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
11996
11997 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
11998
11999         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
12000         to handle threads not started by the GC (patch by Michael Meeks
12001         <michael.meeks@novell.com>).
12002
12003 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
12004
12005         * reflection.c: Make buffer used in emitting types larger for some
12006         big generic types (patch by Michal Moskal).
12007
12008 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
12009
12010         * mono-debug.c: Fix some (not all) alignment problems.
12011
12012 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12013
12014         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
12015         Invoke mono_image_load_from_data_full passing the refonly
12016         parameter.
12017
12018         * assembly.c
12019         (mono_assembly_open_from_bundle): Add the refonly argument, 
12020         in order to pass it to other methods it calls to.
12021         (do_mono_assembly_open): Add the refonly argument, in order 
12022         to pass it to other methods it calls to.
12023         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
12024         the refonly parameter to it.
12025
12026         * image.c: Add loaded_images_refonly_hash and
12027         loaded_images_refonly_guid_hash to cache the reflection
12028         only loaded images.
12029         (mono_images_init): Initialize the hash tables used for
12030         caching the reflection only images.
12031         (load_modules): Invoke mono_image_open_full passing the refonly
12032         parameter to load the modules the correct way.
12033         (build_guid_table): Add the refonly argument, to re-build the 
12034         correct hash table.
12035         (do_mono_image_open): Added the refonly argument, in order to
12036         define it for the loaded image.
12037         (mono_image_loaded_full): New function, which receives an
12038         additional parameter to look for the image in the refonly or
12039         non-refonly section.
12040         (mono_image_loaded): Updated, using mono_image_loaded_full.
12041         (mono_image_loaded_by_guid_full): The same case that happens
12042         with mono_image_loaded_full.
12043         (mono_image_loaded_by_guid): Likewise.
12044         (register_image): Use the ref_only variable inside MonoImage
12045         to decide in which hash table store the current image.
12046         (mono_image_open_from_data_full): Rename
12047         mono_image_open_from_data to mono_image_open_from_data_full,
12048         adding the refonly argument, to define the ref_only variable 
12049         inside MonoImage.
12050         (mono_image_open_from_data): Return 
12051         mono_image_open_from_data_full.
12052         (mono_image_open_full): Rename mono_image_open to
12053         mono_image_open_full, receiving the new refonly argument,
12054         to pass it to inner methods.
12055         (mono_pe_file_open): Update this function, to open
12056         a MonoImage as a non-refonly image.
12057         (mono_image_close): Use the refonly variable inside
12058         MonoImage to remove the image from the correct caches.
12059
12060         * image.h: Add the signatures of mono_image_open_full,
12061         mono_image_open_from_data_full, mono_image_loaded_full,
12062         mono_image_loaded_by_guid_full.
12063
12064         * metadata-internals.h: Add the ref_only field to 
12065         MonoImage.
12066         
12067 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12068
12069         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
12070         Fix the last behavior, which used to load the assemblies and
12071         extract MonoReflectionAssemblyName information, instead of
12072         extract it from the metadata tables. Needed for Reflection
12073         Only assemblies.
12074         
12075 2005-07-29  Martin Baulig  <martin@ximian.com>
12076
12077         * mono-debug-debugger.c
12078         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
12079         not initialized.
12080
12081         * mono-debug.c
12082         (mono_debug_address_from_il_offset): Check whether we have
12083         debugging support before attempting to take the lock.
12084         (mono_debug_source_location_from_address): Likewise.
12085         (mono_debug_source_location_from_il_offset): Likewise.
12086         (mono_debug_il_offset_from_address): Likewise.
12087         (mono_debug_address_from_il_offset): Likewise.
12088
12089 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
12090
12091         * class.c (mono_class_from_name_case): Add support for dynamic images.
12092         Fixes #75650.
12093
12094         * object.c (mono_class_compute_gc_descriptor): Add a workaround
12095         for #75479.
12096
12097 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12098         
12099         * reflection.c (mono_method_get_object): Fix warning.
12100
12101 2005-07-28  Martin Baulig  <martin@ximian.com>
12102
12103         * mono-debug.c
12104         (mono_debug_add_wrapper): Also write the wrapper type.
12105
12106 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
12107
12108         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
12109         
12110         * class.c (mono_class_init): Avoid reading nested classes if the AOT
12111         data indicates the class has none.
12112
12113 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
12114
12115         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
12116         loader lock with the debugger lock. Prevents deadlocks for beagle.
12117
12118         Beagle can now run on an smp box for a weekend without any
12119         issues. Woohoo!
12120
12121 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
12122
12123         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
12124         in a module. Fixes #75629.
12125
12126 2005-07-26  Martin Baulig  <martin@ximian.com>
12127
12128         * mono-debug.c (mono_debug_add_wrapper): New static method.
12129         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
12130         interncall or a wrapper.
12131
12132         * mono-debug.h (MonoDebugWrapperData): New public typedef.
12133         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
12134         (MONO_DEBUGGER_VERSION): Bump to 51.
12135
12136         * mono-debug-debugger.c
12137         (mono_debugger_add_type): Removed this empty function.
12138         (mono_debugger_add_method): Likewise.
12139
12140 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
12141
12142         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
12143         before accessing method->slot.
12144
12145 2005-07-21  Jb Evain  <jbevain@gmail.com>
12146
12147         * reflection.c (method_encode_clauses/class): Handle filters clauses.
12148         Fixes #75010.
12149
12150 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
12151
12152         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
12153         #75587.
12154
12155 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
12156
12157         * image.h image.c: Add mono_image_get_guid () API function.
12158
12159 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
12160
12161         There were issues when multiple threads tried to load
12162         assemblies. A deadlock was created between assemblies_mutex and
12163         mono_domain_assemblies_lock. This fixes the issue by making the
12164         assembly ref counting be lock free. See bug 75586.
12165         
12166         * image.c (mono_image_close): The add ref function here was using
12167         Interlocked operations while the unref was using a mutex and a
12168         --. I don't think this was ever a bug that would be exposed in a
12169         non-pendantic way (ie, by an embedder doing a ref on one thread
12170         and an unref on another), but for the sake of correctness, this is
12171         now Interlocked.
12172
12173         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
12174         (mono_assembly_load_reference): Call mono_assembly_addref rather
12175         than touching the refcount ourselves.
12176         (mono_assembly_close): Use InterlockedDecrement to unref the
12177         assembly. Don't acquire the lock unless it is actually needed.
12178
12179 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12180
12181         * class.c (mono_class_layout_fields): Fix calculation of has_references
12182         for generic types.
12183
12184 2005-07-12  Martin Baulig  <martin@ximian.com>
12185
12186         Applying a patch from Michal Moskal <malekith@nemerle.org>.
12187
12188         * metadata.c
12189         (mono_type_hash): Provide better hashing for generic instances.
12190         (mono_generic_inst_hash): Improve hashing.
12191         (mono_generic_class_hash): Likewise.
12192
12193         * reflection.c (mymono_metadata_type_hash): Improve hashing for
12194         generic instances.
12195
12196 2005-07-12  Martin Baulig  <martin@ximian.com>
12197
12198         * reflection.c (mono_reflection_create_runtime_class): Remove the
12199         hack for generic type definitions and non-`Run' assemblies.
12200         (mono_reflection_bind_generic_parameters): Also use
12201         `klass->wastypebuilder' to check for TypeBuilders.
12202
12203 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
12204
12205         * class.c (mono_class_layout_fields): Fix calculation of has_references
12206         for generic types.
12207
12208         * class.c (inflate_generic_class): Fix a leak.
12209         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
12210         for generic types.
12211
12212 2005-07-11  Martin Baulig  <martin@ximian.com>
12213
12214         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
12215         on error.
12216
12217 2005-07-11  Martin Baulig  <martin@ximian.com>
12218
12219         * loader.c (find_method): Also lookup in
12220         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
12221
12222 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12223
12224         * appdomain.c (mono_domain_unload): Don't free the error message
12225         before passing it to mono_get_exception_...
12226
12227         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
12228         
12229 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
12230
12231         * threads.c: try to better guess an available RT signal (bug #75387).
12232
12233 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12234
12235         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
12236         and CACHE_OBJECT.
12237
12238 2005-07-07  Martin Baulig  <martin@ximian.com>
12239
12240         * class.c (mono_type_get_name_full): Return NULL for
12241         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
12242         fixes #75408.
12243
12244 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
12245
12246         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
12247         exit the appdomain as well being aborted.
12248
12249         * threadpool.c: Create all threadpool threads inside the root appdomain, and
12250         change back to the root domain after calling managed code. This enables
12251         appdomains using threadpools to be unloaded.
12252
12253 2005-07-07  Martin Baulig  <martin@ximian.com>
12254
12255         * class-internals.h
12256         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
12257         into `MonoDynamicGenericClass' since we only need it for dynamic
12258         types.
12259
12260         * reflection.c (mono_class_bind_generic_parameters): We don't need
12261         to compute the `parent' here.
12262
12263 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
12264
12265         * culture-info-table.h : regenerated.
12266
12267 2005-07-06  Martin Baulig  <martin@ximian.com>
12268
12269         * icall.c
12270         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
12271
12272         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
12273
12274 2005-07-06  Martin Baulig  <martin@ximian.com>
12275
12276         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
12277         we're doing a signature-only comparision; fixes #74945.
12278
12279 2005-07-06  Martin Baulig  <martin@ximian.com>
12280
12281         * class-internals.h (MonoGenericClass): Moved some things out into
12282         a new `MonoInflatedGenericClass' type.  
12283         (MonoInflatedGenericClass): New type; the `klass' of a
12284         `MonoGenericClass' is now computed lazyly in
12285         mono_get_inflated_generic_class().      
12286
12287         * class.c (mono_get_inflated_generic_class): New public function.
12288         (mono_class_inflate_generic_method): Removed the unused
12289         `MonoClass *' argument.
12290         (setup_generic_vtable): Don't call mono_get_inflated_method() on
12291         all the methods.
12292         (mono_class_create_generic): Make this static and merge it with
12293         mono_class_create_generic_2(); we're now called automatically from
12294         mono_get_inflated_generic_class().
12295
12296         * loader.c (mono_method_signature): Call
12297         mono_get_inflated_method() here.
12298
12299 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
12300
12301         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
12302         type of fields with RVA.
12303
12304         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
12305         for this pseudo class.
12306         (my_mono_class_from_generic_parameter): Likewise.
12307         (mono_class_init): Allow interfaces to have cctors.
12308
12309 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12310
12311         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
12312         lazily for AOT methods.
12313
12314 2005-07-05  Martin Baulig  <martin@ximian.com>
12315
12316         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
12317         returns FALSE for a successful match, not TRUE.
12318
12319 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
12320
12321         * loader.c (mono_method_get_index): Optimize this a bit.
12322
12323 2005-07-04  Martin Baulig  <martin@ximian.com>
12324
12325         * class.c
12326         (class_compute_field_layout): Move the check for generic type
12327         definitions into mono_class_layout_fields().  Fixes #74684.
12328         (mono_class_from_generic_parameter): Correctly compute
12329         `klass->parent'; fixes #75457.
12330
12331         * reflection.c (register_assembly, register_module): Make sure
12332         `domain->rejobject_hash' is already created.
12333
12334 2005-07-02  Martin Baulig  <martin@ximian.com>
12335
12336         * class-internals.h
12337         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
12338         `MonoDynamicGenericClass'.      
12339
12340 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
12341
12342         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
12343         returned by a field getter is null, since null is a valid value.
12344
12345 2005-07-01  Martin Baulig  <martin@ximian.com>
12346
12347         * reflection.c (mono_reflection_generic_class_initialize): Update
12348         the `dgclass->fields [i].parent' to the correct class.
12349         (mono_image_get_fieldref_token): Use the declaring type, not the
12350         reflected type.
12351
12352 2005-07-01  Martin Baulig  <martin@ximian.com>
12353
12354         * loader.c (find_method): Also look in the interfaces; fixes #75429.
12355
12356 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
12357
12358         * threads.c (thread_cleanup): assert that thread != NULL
12359         (wait_for_tids_or_state_change): We were using the wrong variable
12360         when accessing wait->threads. `i' was always out of the bounds of
12361         the array.
12362
12363 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12364
12365         * loader.c: map user32 and kernel32 to libMonoSupportW
12366
12367 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
12368
12369         * appdomain.c (unload_thread_main): Mark this as WINAPI.
12370
12371 2005-06-28  Martin Baulig  <martin@ximian.com>
12372
12373         * loader.c (method_from_methodspec): Fix #75334.
12374
12375 2005-06-28  Martin Baulig  <martin@ximian.com>
12376
12377         Fix #74953 - Arrays now implement the generic IList<T> interface
12378         on the 2.0 platform.
12379
12380         * class-internals.h (MonoDefaults): Added `generic_array_class'.
12381
12382         * reflection.c (mono_class_bind_generic_parameters): New public
12383         function; similar to mono_reflection_bind_generic_parameters(),
12384         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
12385
12386         * domain.c (mono_init_internal): Try to initialize.
12387         `mono_defaults.generic_array_class' here; this'll only succeed if
12388         we're using the 2.0 corlib.
12389
12390         * icall.c
12391         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
12392         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
12393         (mono_lookup_internal_call): Added support for nested classes.
12394
12395         * loader.c
12396         (mono_get_method_from_token): Set `result->signature->pinvoke' if
12397         we're an interncall and have generic arguments.
12398
12399         * class.c
12400         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
12401         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
12402         instance of System.Array.InternalArray<T> for arrays, so they
12403         implement the generic IList<T> interface.
12404
12405 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
12406
12407         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
12408         (chastamar@yahoo.com). Fixes #75374.    
12409
12410 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
12411
12412         * culture-info-table.h: regenerated.
12413
12414 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12415
12416         * icall.c: handle spaces correctly for base64 strings.
12417
12418 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
12419
12420         * *.c: Kill some warnings.
12421
12422 2005-06-23  Duncan Mak  <duncan@novell.com>
12423
12424         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
12425         that this builds on Solaris 10 (x86).
12426
12427 2005-06-23  Martin Baulig  <martin@ximian.com>
12428
12429         * class.c
12430         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
12431         generic type definitions.
12432
12433 2005-06-23  Martin Baulig  <martin@ximian.com>
12434
12435         Fix #75331.
12436
12437         * metadata.c (mono_class_get_overrides): Renamed to
12438         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
12439         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
12440         pass it to mono_get_method_full().
12441
12442 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
12443
12444         * reflection.c (mono_reflection_create_runtime_class): take the
12445         mono_domain_lock in this method. Prevents deadlocks
12446
12447 2005-06-22  Martin Baulig  <martin@ximian.com>
12448
12449         * loader.c (method_from_methodspec): Fix #75330.
12450
12451 2005-06-22  Martin Baulig  <martin@ximian.com>
12452
12453         * reflection.c (type_get_qualified_name): Use
12454         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
12455         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
12456         argument; use it if we don't have an assembly name.
12457
12458 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
12459
12460         * object.c: In mono_message_init, set "copy out" flag for in
12461         parameters with the [Out] flag.
12462
12463 2005-06-21  Martin Baulig  <martin@ximian.com>
12464
12465         * class.c
12466         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
12467         and MONO_TYPE_PTR.
12468
12469 2005-06-21  Martin Baulig  <martin@ximian.com>
12470
12471         * class.c (mono_class_init): Don't initialize `class->fields' for
12472         generic instances since they're initialized again in
12473         compute_field_layout(). 
12474         (compute_field_layout): Set the field's `generic_info' here; fix
12475         #75320. 
12476
12477 2005-06-21  Martin Baulig  <martin@ximian.com>
12478
12479         * class-internals.h
12480         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
12481
12482         * metadata.c (mono_metadata_generic_method_equal): Also
12483         distinguish the `generic_class'; fixes #75334.
12484
12485 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12486
12487         * domain.c:
12488         * appdomain.c:
12489         * domain-internals.h:
12490         * reflection.c: 'domain_assemblies' field is now protected by its own
12491         lock. Don't call into managed code to run the AssemblyLoad event if we
12492         now there are no registered delegates for it.
12493
12494 2005-06-20  Martin Baulig  <martin@ximian.com>
12495
12496         * class.c (mono_class_is_assignable_from): Use a custom version of
12497         mono_class_has_parent() to make things work for generic instances;
12498         fix #75300.
12499
12500 2005-06-20  Martin Baulig  <martin@ximian.com>
12501
12502         * loader.c (method_from_methodspec): Apply a patch from
12503         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
12504
12505 2005-06-20  Martin Baulig  <martin@ximian.com>
12506
12507         * class.c (mono_class_init): Reverted Zoltan's last change; it
12508         breaks generics.
12509
12510 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
12511
12512         * threads.c (wait_for_tids_or_state_change): Add missing locking.
12513
12514 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12515
12516         * socket-io.c: fix the index in the socket array for writable/error
12517         sockets. Fixes bug #75306.
12518
12519 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
12520
12521         * class.c (mono_class_init): Allow interfaces to have static ctors.
12522
12523 2005-06-17  Martin Baulig  <martin@ximian.com>
12524
12525         * loader.c (method_from_methodspec): Use `context->container' when
12526         parsing the `gmethod->inst'.
12527
12528 2005-06-17  Martin Baulig  <martin@ximian.com>
12529
12530         * class.c (mono_type_get_name_recurse): Don't add the assembly
12531         name for type arguments.
12532
12533 2005-06-15  Martin Baulig  <martin@ximian.com>
12534
12535         * reflection.c (mono_image_get_inflated_method_token): Encode
12536         correct klass; fixes #75260.
12537
12538 2005-06-13 Michal Moskal <malekith@nemerle.org>
12539
12540         * icall.c: Make GetCorrespondingMethod/Constructor take
12541         MonoReflectionMethod method not MonoMethod. Removed
12542         MonoType.GetCorrespondingField, and make
12543         MonoGenericType.GetCorrespondingField take name not
12544         MonoClassField.
12545
12546 2005-06-13  Michal Moskal <malekith@nemerle.org>
12547
12548         * reflection.c (field_encode_signature, encode_locals):
12549          Make sizes of buffers for types larger (for big generic types).
12550          (create_generic_typespec,
12551          mono_reflection_sighelper_get_signature_local,
12552          mono_reflection_sighelper_get_signature_field):
12553          Add asserts for too small buffers.
12554
12555 2005-06-15  Martin Baulig  <martin@ximian.com>
12556
12557         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
12558         if our parent is not a dynamic type.
12559
12560 2005-06-15  Martin Baulig  <martin@ximian.com>
12561
12562         * class-internals.h (MonoTypeNameFormat): New enum.
12563
12564         * class.c
12565         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
12566         (mono_type_get_full_name): Removed.
12567         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
12568         argument instead of the boolean's.
12569
12570         * icall.c (ves_icall_System_MonoType_getFullName):
12571         Added `gboolean assembly_qualified'.    
12572
12573         * reflection.h
12574         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
12575
12576         * reflection.c (mono_reflection_parse_type): Parse the new type
12577         name format.
12578
12579 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12580
12581         * icall.c: no need to convert from utf16 to utf8 and then back again
12582         after the call to GetLogicalDrives.
12583
12584 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12585
12586         * icall.c: frombase64. Fix problems exposed by new tests.
12587
12588 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12589
12590         * icall.c: added internal calls for converting char [] and strings in
12591         base64 into byte [].
12592
12593 2005-06-10  Martin Baulig  <martin@ximian.com>
12594
12595         * class.c (mono_class_create_generic_2): Read the nested classes
12596         from the metadata rather than from `gklass->nested_classes' since
12597         `gklass' might not be initialized yet.
12598
12599 2005-06-09  Duncan Mak  <duncan@novell.com>
12600
12601         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
12602         all public headers. Fixes #74919.
12603
12604 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
12605
12606         * domain.c: The key for proxy_vtable_hash is now a pointer
12607         array. Added new GHashFunc and GCompareFunc functions for this.
12608
12609         * class.h: The list of interfaces in MonoRemoteClass is known in
12610         advance and can't grow (we create a new MonoRemoteClass if needed),
12611         so now the interface array can be allocated together with
12612         MonoRemoteClass.
12613         
12614         * object.c: Added a new method create_remote_class_key.
12615         Fixed mono_remote_class so it does not depend on
12616         mono_upgrade_remote_class.
12617         Removed extend_interface_array.
12618         Added new method clone_remote_class(), which makes a copy of a remote
12619         class and adds a new interface or class to it.
12620         mono_upgrade_remote_class() now creates a new remote class (or gets
12621         it from the cache) if an vtable upgrade is needed. In this way
12622         we make sure that other objects sharing the same remote class
12623         don't get the new vtable with unwanted interfaces.
12624         
12625         * object-internals.h:
12626         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
12627         
12628         * marshal.c: Track changes in mono_upgrade_remote_class().
12629
12630 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
12631         * icall.c: Add runtime methods for obtaining members of inflated
12632         class, which were created from supplied non-inflated members. It
12633         is used in internal Get{Method,Constructor,Field} methods in
12634         System.Type
12635
12636 2005-06-09  Martin Baulig  <martin@ximian.com>
12637
12638         * reflection.c
12639         (mono_reflection_bind_generic_method_parameters): Fix #75169.
12640
12641 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12642         * reflection.c (mono_image_basic_init): Define
12643         Version in MonoDynamicAssembly. 
12644         
12645 2005-06-08  Martin Baulig  <martin@ximian.com>
12646
12647         Fix #75136.
12648
12649         * loader.c
12650         (mono_method_signature_full): New public method; takes a
12651         `MonoGenericContext *'.
12652         (find_method): Use mono_method_signature_full() and pass the
12653         klass'es context to it.
12654
12655         * class.c (mono_class_is_inflated_method): Use
12656         mono_method_signature_full() and pass the context to it.
12657
12658 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
12659
12660         * object.c: add proper locking in mono_remote_class_vtable(),
12661         fixes possible memory corruption.
12662
12663 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
12664
12665         * marshal.c (mono_remoting_marshal_init): set
12666         initialized after initialization.
12667
12668 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
12669
12670         * locales.c : hush.
12671
12672 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
12673
12674         * object.c (extend_interface_array): fix really silly
12675         memory corrupting / comparison bug.
12676
12677 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12678
12679         * reflection.c: Functions added to support the creation
12680         of CustomAttributeData, which includes Attribute data
12681         used by ReflectionOnly methods.
12682
12683         * reflection.h:  mono_reflection_get_custom_attrs_data and
12684          mono_custom_attrs_data_construct added (functions exposed).
12685
12686          * icall.c: Added mono_reflection_get_custom_attrs_data
12687          as icall.
12688         
12689 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
12690
12691         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
12692         lupus's request.
12693
12694 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
12695
12696         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
12697
12698         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
12699         dynamic DllImportAttribute.
12700
12701         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
12702         dynamic DllImportAttribute.
12703
12704         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
12705         Fixes #75162.
12706
12707 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12708
12709         * threads.c: avoid segfault when an unstarted thread is aborted.
12710
12711 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
12712
12713         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
12714         Returns the name and version of the runtime for reporting.
12715
12716 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12717
12718         * appdomain.c: bump corlib version.
12719         * object-internals.h: new field in MonoReflectionAssembly.
12720
12721 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12722
12723         * object-internals.h: Carlos forgot to add this field.
12724
12725 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12726
12727         * icall.c: Added create_version to create instances
12728         of Version of MonoReflectionAssemblyName. This change helps
12729         the AssemblyName tests to keep running fine.
12730         
12731 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
12732   
12733         * object.c (mono_method_return_message_restore): A somehow less
12734         intrusive fix for #75138.
12735
12736 2005-06-03  Raja R Harinath  <rharinath@novell.com>
12737
12738         * object.c (mono_method_return_message_restore): Fix computation
12739         of expected number of out args.
12740
12741 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12742
12743         * reflection.c (mono_image_get_method_info): Fix the case when the
12744         charset is empty.
12745
12746 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
12747
12748         * object.c: Added missing null check in
12749           mono_method_return_message_restore.
12750
12751 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
12752
12753         * reflection.c (mono_image_get_method_info): Handle the case when
12754         dllentry is empty.
12755
12756 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
12757
12758         * object.c: When creating the vtable for a proxy, take into account
12759         all inherited interfaces, not only the ones registered in
12760         iclass->interfaces. This fixs bug #74996.
12761         Also, in mono_method_return_message_restore, verify that the array
12762         of out args has the expected lengh.
12763
12764 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12765
12766         * socket-io.c: update the timeout in Poll when the call is interrupte.
12767
12768 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12769
12770         * socket-io.c: support abort/suspend in Select_internal after last
12771         change.
12772
12773 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12774
12775         * threadpool.c: remove warning.
12776
12777 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12778
12779         * icall.c:
12780         * socket-io.[ch]: Select_internal uses poll() now when available, thus
12781         removing the 1024 limit from select(). Runtime part of the fix for
12782         bug #71203.
12783
12784 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12785
12786         * socket-io.c: when resolving the addresses for the same
12787         host returned by gethostname(), get the local IPs from the interface
12788         list. Loopback addresses are discarded if the are interfaces up with
12789         non-loopback ones. Fixes bug #63265.
12790
12791 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
12792
12793         * appdomain.c, verify.c, object-internals.h, reflection.c:
12794         bumped corlib number to 36, and added new extra_flags field
12795         to ReflectionMethodBuilder and friends.  Fixes #75060.
12796
12797 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
12798
12799         * gc.c: register a new weak link only if the object is non-null
12800         (fixes bug#75047).
12801
12802 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12803
12804         * culture-info.h : short time pattern too.
12805
12806 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
12807
12808         * culture-info.h : expand long time pattern string length.
12809
12810 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12811
12812         * culture-info-table.h : update (more French date format; #72788).
12813
12814 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
12815
12816         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
12817         the method is static. Fixes #75029.
12818
12819 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
12820
12821         * reflection.c: Update the table_idx field of method builders after
12822         saving the module, since it can change. This is a workaround for
12823         bug #74914. 
12824
12825 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
12826
12827         * culture-info-table.h : update (additional French date format).
12828
12829 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
12830
12831         * icall.c (ves_icall_type_Equals): Revert last change.
12832         
12833         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
12834
12835         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
12836
12837 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
12838
12839         * class-internals.h: Added executioncontext_class field to 
12840         MonoDefaults structure.
12841         * domain.c: Cache System.Threading.ExecutionContext class in 
12842         mono_defaults.
12843         * object.c: Capture the ExecutionContext for asynchroneous calls in
12844          mono_async_result_new.
12845         * object-internals.h: Added execution_context and original_context 
12846         fields to MonoAsyncResult. Added execution_context to MonoThread.
12847         * security-manager.c|.h: Added mono_get_context_capture_method to 
12848         return the capture method (if required by the security manager or by
12849         the framework version used).
12850         * threadpool.c: Apply capture (if present) ExecutionContext in 
12851         mono_async_invoke and revert to original context after it completes.
12852
12853 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
12854
12855         * culture-info-table.h : updated (real hacky solution for zh-CHT).
12856
12857 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
12858
12859         * culture-info-table.h : zh-CHT related workaround.
12860
12861 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
12862
12863         * marshal.c (emit_marshal_custom): Add some error checking and call the
12864         methods in the ICustomMarshaler interface. Fixes #74875.
12865         
12866         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
12867         native->managed wrappers.
12868
12869 2005-05-12  Martin Baulig  <martin@ximian.com>
12870
12871         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
12872         here and use the loader lock.
12873
12874         * mono-debug.c: Properly lock when the debugger is not attached.
12875         (mono_debug_init): Release the initial lock if we're not running
12876         in the debugger.
12877
12878 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
12879
12880         * marshal.c (emit_marshal_custom): Pass through NULL values without
12881         calling the custom marshalling routines.
12882
12883         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
12884         conversion in structures. Fixes #74882.
12885
12886 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
12887
12888         * culture-info-table.h : zh-* cultures were missing.
12889
12890 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
12891
12892         * threads.c: Added a new event background_change_event which is signaled
12893         when a thread changes its background mode.
12894         Moved here several checks previously done in managed code. The checks
12895         require the thread lock, and using the thread lock in managed code
12896         can result in deadlocks.
12897         Merged Start_internal and Thread_internal into a single method. Now 
12898         Thread_internal does all work of creating and starting a thread.
12899         Added icalls for setting and getting the state of the object. Moved from
12900         managed code to avoid locking there.
12901         Added wait_for_tids_or_state_change() which is called instad of
12902         wait_for_tids when waiting for non-backround threads to end. This method
12903         will return if one of the threads ends or the background_change_event
12904         is signaled.
12905         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
12906         the background mode. This method signals the background_change_event
12907         event.
12908         * icall.c:
12909         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
12910         removed Start_internal.
12911         
12912 2005-05-11  Martin Baulig  <martin@ximian.com>
12913
12914         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
12915         to order of some fields to get proper alignment on 64-bit machines.
12916
12917 2005-05-11  Martin Baulig  <martin@ximian.com>
12918
12919         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
12920         changes as they're broken and completely fuck up the debugger.
12921
12922         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
12923
12924 2005-05-10  Martin Baulig  <martin@ximian.com>
12925
12926         * reflection.c (mono_reflection_generic_class_initialize): Don't
12927         call mono_class_setup_parent() here.
12928
12929 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12930
12931         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
12932         send/receive timeout use an integer in milliseconds. We were using a
12933         struct timeval.
12934
12935 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12936
12937         * locales.c:
12938         (internal_get_cultures): reserve the first slot of the array for the
12939         InvariantCulture, which will be filled in managed code.
12940
12941 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
12942
12943         * reflection.c (mono_image_fill_module_table): Initialize the
12944         GENERATION field as well.
12945
12946 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12947
12948         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
12949         Monitor.Enter on the object.
12950
12951 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
12952
12953         * threads.c: Enable the wait for running threads when exiting.
12954         * icall.c: Suspend all threads before exiting.
12955
12956 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
12957
12958         * assembly.c (mono_assembly_load_reference): Fix warning.
12959
12960 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12961
12962         * threadpool.c: changed the default number of threads per cpu. From now
12963         on, the default will be 20 + (5 * number of cpus) instead of 50.
12964
12965 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
12966
12967         * loader.c (mono_method_get_signature_full): Add locking here.
12968
12969 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
12970
12971         * appdomain.c: Moved methods for parsing and freeing assembly
12972         names to assembly.c.
12973         * assembly.c, domain-internals.h: Created public methods for parsing
12974         assembly names. Fixed mono_assembly_load_with_partial_name:
12975         it now finds the best match, taking into account the version,
12976         token and culture specified in the partial name. Also return
12977         the latest version if no version information is specified.
12978
12979 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
12980
12981         * threadpool.c: replace check for SocketAsyncCall class.
12982
12983 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12984
12985         * threadpool-internals.h:
12986         * Makefile.am: added threadpool-internals.h
12987
12988         * threadpool.c: call mono_unhandled_exception on exceptions not handled
12989         that happen in threadpool threads (tested on MS).
12990         (mono_thread_pool_remove_socket): new function that dispatch any pending
12991         AIO call on a socket that is closing. By now only epoll really needs it,
12992         as select/poll wake up when the socket closes.
12993
12994
12995         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
12996
12997 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
12998
12999         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
13000
13001 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
13002
13003         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
13004
13005 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
13006
13007         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
13008         has an abort request, convert it into a suspend request.
13009
13010 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
13011
13012         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
13013         warning for the usage of `UnmanagedFunctionPointerAttribute' which
13014         is not supported yet.
13015
13016 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13017
13018         * image.c: register assemblies loaded from data (bundles) in the loaded
13019         assemblies hash. Fixes bug #74772.
13020
13021 2005-04-29  Martin Baulig  <martin@ximian.com>
13022
13023         * class.c (mono_type_get_name_recurse): Update to the new naming
13024         schema from the latest .NET 2.x beta2.
13025         (mono_class_setup_vtable_general): If we're a generic instance,
13026         copy the vtable from our generic type definition and inflate all
13027         the methods in it.
13028
13029         * loader.c (find_method): Update to the new naming schema from the
13030         latest .NET 2.x beta2.
13031
13032 2005-04-29  Raja R Harinath  <harinath@gmail.com>
13033
13034         * class.c (mono_class_init): Add a mono_loader_unlock to the
13035         #74734 fix.
13036
13037 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
13038
13039         * icall.c (ves_icall_System_Environment_Exit): Remove the 
13040         suspend_all_other_threads () call for the time being, since it can hang.
13041
13042         * threads.c (mono_thread_manage): Similarly, disable the waiting for
13043         the background threads to exit, since it can also hang.
13044
13045         * class.c (mono_class_init): Applied patch from Ankit Jain 
13046         (radical@gmail.com). Avoid pending init errors when a field refers
13047         to a nested class using a typeref. Fixes #74734.
13048
13049         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
13050         this for dynamic modules.
13051
13052 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13053
13054         * threads.c: don't wait for threads that are in the process of aborting
13055         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
13056         and waiting for background threads to finish. This makes xsp and
13057         mod-mono-server exit without random length delays and/or hangs.
13058
13059 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13060
13061         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
13062
13063 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
13064
13065         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
13066         dynamic types to prevent infinite loops. Fixes #74727.
13067
13068         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
13069         ..._is_assignable_to.
13070
13071 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
13072
13073         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
13074
13075 2005-04-25  Martin Baulig  <martin@ximian.com>
13076
13077         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
13078
13079         * domain.c
13080         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
13081
13082         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
13083
13084         * reflection.c (build_compressed_metadata): Set metadata header
13085         version to 2.0.
13086
13087 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
13088
13089         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
13090         number into an integral and a decimal part. Fixes #70473.
13091
13092         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
13093
13094 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
13095
13096         * culture-info-table.h : reflected the latest locale-builder output.
13097
13098 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13099
13100         * threadpool.c: check for SuspendRequested too when deciding if
13101         mono_thread_interruption_checkpoint should be called.
13102
13103 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13104
13105         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
13106         * threads.c: remove interruption_mutex and use Interlocked instead. When
13107         suspending all the threads, wait for all the suspended events at once.
13108         If we're shutting down and get an APC that is going to be queued,
13109         call mono_thread_execute_interruption immediately, as the thread might
13110         be sleeping on a pthread condition or mutex.
13111
13112         * icall.c: call mono_runtime_set_shutting_down before suspending the
13113         threads.
13114
13115         Fixes bug #74693. And now xsp is happier when exiting.
13116
13117 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
13118
13119         * loader.c (mono_stack_walk): Fix #74690.
13120
13121 2005-04-22  Martin Baulig  <martin@ximian.com>
13122
13123         * mono-debug.h (MonoDebugMethodJitInfo): Added
13124         `MonoDebugMethodJitInfo *jit'.
13125
13126         * mono-debug.c (mono_debug_read_method): Cache the
13127         MonoDebugMethodJitInfo in `address->jit'.
13128         (mono_debug_free_method_jit_info): New public method.
13129
13130 2005-04-22  Martin Baulig  <martin@ximian.com>
13131
13132         * class.c (mono_class_is_assignable_from): Disallow
13133         type parameter -> interface.
13134
13135 2005-04-21  Dick Porter  <dick@ximian.com>
13136
13137         * threads.c (mono_thread_create): Turn an assertion into an error.
13138
13139 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
13142         
13143         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
13144         Fix some gcc 4.0 warnings.
13145
13146 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
13147
13148         * file-io.c: fix alt dir separator char on unix systems
13149         and cleanup (fixes bug #71214).
13150
13151 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
13152
13153         * marshal.c: Use CALLVIRT instead of CALL when dispatching
13154         a call to a remote domain, since the method may be an
13155         interface method in the client domain. This fixes bug #74192.
13156
13157 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13158
13159         * threadpool.c: recv/send are now performed before going back to managed
13160         code to save one transition.
13161
13162 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13163
13164         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
13165
13166         * metadata/threadpool.c: removed hack to workaround the bug above.
13167
13168         Fixes bug #74618.
13169
13170 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
13171
13172         * reflection.c reflection.h: Fix handling of parameter defaults in
13173         dynamic methods. Also fixes handling of parameter attributes.
13174         Fixes #74609.
13175
13176         * mono-debug.c (mono_debug_close_image): Fix warning.
13177
13178 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13179
13180         * socket-io.h: replaced old unused field with new 'blocking'.
13181         * threadpool.c: restore socket blocking state on windows(tm).
13182
13183 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
13184
13185         * icall.c: don't return the codebase in the AssemblyName[] returned by
13186         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
13187         * object-internals.h: Removed FIXME (fields were presents) and fixed
13188         versioncompat declaration.
13189
13190 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13191
13192         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
13193         not closed, so don't cleanup when it happens.
13194
13195 2005-04-13  Chris Toshok  <toshok@ximian.com>
13196
13197         * mono-debug-debugger.h: change prototype for
13198         mono_debugger_lookup_type.
13199
13200         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
13201         this function, although it should probably be named
13202         mono_debugger_init_type.
13203
13204 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13205
13206         * threadpool.c: fix non-AIO case.
13207
13208 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
13209
13210         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
13211         the built-in profiler to measure just JIT compilation times.
13212
13213 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13214
13215         * threadpool.c: the epollfd might be closed by another thread at
13216         any time, so ignore EBADF at treat it as a "we're closing" sign.
13217
13218 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13219
13220         * threadpool.c: release the semaphores with a count equals to the number
13221         of working threads in both IO and regular pools. Fixed typo that messed
13222         up the count of IO pool threads. Don't initialize the pipe handles if
13223         we're using epoll.
13224
13225 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13226
13227         * threadpool.c: some systems don't like a NULL when deleting the socket
13228         from epoll.
13229
13230 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13231
13232         * threadpool.c: fix semaphore allocation.
13233
13234 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13235
13236         * threadpool.c: added epoll() based implementation for asynchronous IO
13237         that is used instead of the default poll() when available.
13238         It can be disabled by setting MONO_DISABLE_AIO.
13239
13240 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13241
13242         * threadpool.c: windows needs 'closesocket' and instead of returning
13243         0 when the stream is closed while in select, it returns -1. Fixes bug
13244         #74573.
13245
13246 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
13247
13248         * class.c (class_compute_field_layout): Fix the regression caused by
13249         the previous try.
13250
13251 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13252
13253         * threadpool.c: separate pool for socket async. IO.
13254         * threadpool.h: mono_max_worker_threads is not a global any more.
13255
13256 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
13257
13258         * class.c (class_compute_field_layout): Fix #74549.
13259
13260 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13261
13262         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
13263         use 2 connected sockets instead.
13264
13265 2005-04-08  Miguel de Icaza  <miguel@novell.com>
13266
13267         * mono-config.c: Add new entry point for mkbundle
13268         mono_config_parse_memory. 
13269
13270 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13271
13272         * threadpool.c: removed another unused function.
13273
13274 2005-04-08  Ankit Jain  <radical@corewars.org>
13275
13276         * reflection.c (get_default_param_value_blobs): Add 'types'
13277         parameter to get the types encoded in the constant table.
13278         (mono_param_get_objects): Use the type from the constant table,
13279         not the type of the parameter, when creating default values.
13280         Handle null default values correctly.
13281
13282 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13283
13284         * file-io.c:
13285         * file-io.h:
13286         * threadpool.c:
13287         * threadpool.h:
13288         * icall.c:
13289         * socket-io.c: removed dead code for async IO.
13290
13291 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13292
13293         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
13294
13295         * threadpool.c: intercept socket async. calls and pass them to a thread
13296         that is polling and dispatching the job items to the threadpool as
13297         socket become ready. Fixes bugs #71217, #71933.
13298
13299         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
13300         between char and short/ushort arrays.
13301
13302         * socket-io.c: remove dead code.
13303
13304 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13305
13306         * locales.c,
13307           icall.c : removed InternalToUpper_Comp() and
13308           InternalToLower_Comp().
13309
13310 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
13311
13312         * char-conversions.h : The tables were incorrectly generated. Should
13313           be generated against invariant culture.
13314
13315 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
13316
13317         * object.c (mono_runtime_invoke_array): Fix return value when 
13318         passing pre-created valuetype objects to ctors.
13319
13320         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
13321         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
13322         Fixes #74338.
13323
13324 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
13325
13326         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
13327         only used with --security and hides the wrong corlib version error.
13328
13329 2005-03-30  Joshua Tauberer  <tauberer@for.net>
13330
13331         * class.c: Changed mono_class_name_from_token so that types
13332         outside of a namespace don't have an initial period.  Improved
13333         the g_warning message used in _mono_class_get when loading
13334         fails.
13335         * assembly.c: In mono_assembly_load_reference, when an assembly
13336         can't be found, "No such file or directory" is misleading and
13337         unhelpful because a few paths were checked for the presence of
13338         the assembly.  When that happens (ENOENT), display a nicer
13339         message indicating the directories that were searched.  In all
13340         cases, the warning is made easier to read for non-hackers.
13341
13342 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
13343
13344         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
13345         project/solution.
13346         * appdomain.h|domain.c: Removed inline from functions.
13347         * appdomain.c: Reduced warnings when compiling on windows.
13348         * icall.c: Fixed output_debug declaration to gunichar2*.
13349         * mono-config.c: Reduced warnings when compiling on windows.
13350         * rand.c: Added missing "windows.h". Added missing return value.
13351         * rawbuffer.c: Added missing winsock2.h for windows.
13352         * sysmath.h: Added mono-compiler.h header to allow/ease 
13353         compilation with non-GCC compilers.
13354         * threads.c: Fixed declarations to compile with VS.NET C compiler.
13355         Removed cast warnings.
13356
13357         Adapted from the work of J Lothian (for VC6).
13358
13359 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
13360
13361         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
13362         from default_path.
13363
13364 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
13365
13366         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
13367         the 2.0 profile.
13368
13369 2005-03-27  Raja R Harinath  <harinath@gmail.com>
13370
13371         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
13372         has to be in $(exec_prefix).  $(prefix) is for arch-independent
13373         stuff, and it would probably use $(prefix)/share rather than
13374         $(prefix)/lib.
13375
13376 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13377
13378         * console-io.c: added 2 includes that might be missing.
13379
13380 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
13381
13382         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
13383         profile.
13384
13385         * reflection.c (create_custom_attr): Allocate the params array using
13386         alloca so it gets GC tracking.
13387
13388 2005-03-23  Chris Toshok  <toshok@ximian.com>
13389
13390         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
13391         out some spew.
13392
13393 2005-03-24  Raja R Harinath  <rharinath@novell.com>
13394
13395         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
13396         changes to pick up any changes in prefix, etc.
13397
13398 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13399
13400         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
13401         
13402         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
13403         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
13404
13405 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
13406
13407         * class-internals.h object-internals.h class.c reflection.c: Extend the
13408         mono_lookup_dynamic_token () function to return the class of the
13409         token as well. 
13410
13411         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
13412         well. Fixes #73848.
13413
13414 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
13415
13416         * security-manager.c: Skip inheritance checks for intra-corlib
13417         class inheritance and method overrides. This skips a lot of checks
13418         and (anyway) permissions cannot work until corlib is loaded.
13419
13420 2005-03-23  Martin Baulig  <martin@ximian.com>
13421
13422         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
13423         MONO_TYPE_GENERICINST.  
13424
13425 2005-03-23  Martin Baulig  <martin@ximian.com>
13426
13427         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
13428
13429 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
13430
13431         * class.c: added locking comments to some functions.
13432         Cache the interface offsets arrays (saves about 20 KB
13433         of runtime memory in a typical app).
13434         Reduce the time overhead in mono_class_setup_supertypes ().
13435
13436 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
13437
13438         * icall.c: speedup and fix leaks in GetMethodsByName and
13439         GetPropertiesByName.
13440
13441 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
13442
13443         * reflection.c: some locking fixes.
13444
13445 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
13446
13447         * metadata.c: added missing break in case statement.
13448
13449 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
13450
13451         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
13452         typedbyref return values. Fixes #73941.
13453
13454 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
13455
13456         * security-manager.c|h: Added demandunmanaged method and 
13457         suppressunmanagedcodesecurity class to MonoSecurityManager.
13458         Renamed aptc class to allowpartiallytrustedcallers.
13459
13460 2005-03-17  Martin Baulig  <martin@ximian.com>
13461
13462         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
13463
13464 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13465
13466         * file-io.c: disabled file async. IO using aio_*. It uses the
13467         threadpool now. Workaround for bug #73718.
13468
13469 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
13470
13471         * assembly.h, mono-config.c: added code to deal with bundled configs
13472         for bundled assemblies.
13473
13474 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
13475
13476         * *.c, private.h: cleanup, removing old private.h header file.
13477
13478 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
13479
13480         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
13481         and throw_on_unmappable_char attributes.
13482
13483 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
13484
13485         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
13486         _ProcessName_internal.
13487
13488 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
13489
13490         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
13491         #73631.
13492
13493         * icall.c threads.c threads-types.h: Remove slothash icalls as they
13494         are no longer used.
13495
13496 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
13497
13498         * object.c (compute_class_bitmap): Add support for generics. Fixes
13499         #73527.
13500
13501 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13502
13503         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
13504
13505 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13506
13507         * filewatcher.c: commented out the code for windows watcher, as we don't
13508         use it (we use the managed implementation instead).
13509
13510 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
13511
13512         * object-internals.h (MonoThread): Remove 'unused1' field.
13513
13514         * appdomain.c: Bump corlib version.
13515
13516         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
13517
13518         * reflection.c (mono_reflection_create_runtime_class): Remove the
13519         AssemblyBuilder.Save optimization since it causes too many problems.
13520
13521 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
13522
13523         * exception.c|h: Added mono_get_exception_reflection_type_load to
13524         create a ReflectionTypeLoadException object.
13525         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
13526         to return NULL is a InheritanceDemand fails during reflection. Updated
13527         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
13528         ReflectionTypeLoadException if an InheritanceDemand fails during 
13529         reflection. Added icall mapping for GetLinkDemandSecurity.
13530         * security-manager.c|h: Added ves_icall_System_Security_
13531         SecurityManager_GetLinkDemandSecurity internal call to return the
13532         class and methods permissions set for a LinkDemand. Removed unused
13533         fields in MonoSecurityManager.
13534
13535 2005-03-10  Martin Baulig  <martin@ximian.com>
13536
13537         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
13538         it's a generic instance.
13539
13540 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
13541
13542         * reflection.c (mono_get_object_from_blob): Applied patch from
13543         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
13544
13545         * class.c (mono_class_is_assignable_from): Another try at fixing 
13546         #73469 without breaking anything.
13547
13548 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
13549
13550         * class.c: (mono_class_is_assignable_from): Revert the last changes
13551         since they don't work with generics.
13552         
13553         * class.c (mono_class_is_assignable_from): Fix build bustage.
13554
13555         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
13556         the managed IsAssignableFrom method. Fixes #73469.
13557
13558         * reflection.c (mono_reflection_call_is_assignable_from): New helper
13559         function.
13560
13561 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
13562
13563         * object.c (mono_load_remote_field_new): Fix returning uninitialized
13564         memory when the remoting callback does not sets the out arguments.
13565         Fixes #73007.
13566
13567         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
13568         by mistake.
13569
13570         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
13571
13572         * object-internals.h (MonoStackFrame): Sync with managed object layout.
13573
13574         * appdomain.c: Bump corlib version.
13575
13576 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
13577
13578         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
13579         function.
13580
13581         * threads.c (mono_thread_attach): Detect threads which are not started
13582         by the GC pthread wrappers.
13583
13584 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
13585
13586         * icall.c: Added new icall for RNG.
13587         * rand.c|h: Added new icall to open the RNG. This allows to share a 
13588         single handle on Linux to access /dev/urandom and fix #73183.
13589
13590 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
13591
13592         * object.c: setting the new vtable in a transparent proxy object must
13593         not change the GC descriptor.
13594
13595 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13596
13597         * object.c: fixed compilation without GCJ support.
13598         * reflection.c: for runtime-created types ensure klass->has_references
13599         is correct (bug #73215).
13600
13601 2005-03-02  Martin Baulig  <martin@ximian.com>
13602
13603         * class.c (mono_class_is_assignable_from): Make this work if
13604         `oklass' is a generic instance; fixes #72831.
13605
13606 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13607
13608         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
13609         with hasthis set.
13610         
13611         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
13612
13613         * marshal.c: Reorganize native->managed marshalling code to also use
13614         the emit_marshal_... functions.
13615
13616 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13617
13618         * object.c: typed allocs have issues with bitmap sizes > 30,
13619         so check for max_set >= 30.
13620
13621 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
13622
13623         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
13624         managed code. Fixes #73012.
13625
13626         * metadata.h (MonoMarshalSpec): Add elem_mult field.
13627
13628         * metadata.c reflection.c: Load/Emit elem_mult as well.
13629         
13630         * metadata.h (MonoMarshalSpec): Add comment.
13631
13632         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
13633
13634         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
13635         num_elem to -1 if not given.
13636
13637         * object-internals.h (MonoReflectionMarshal): Add has_size field.
13638
13639         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
13640         given values.
13641
13642 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
13643
13644         * null-gc.c (mono_gc_free_fixed): Was not compilable.
13645
13646 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
13647
13648         * reflection.c (encode_marshal_blob): Encode param_num field as well.
13649
13650         * object-internals.h (MonoReflectionMarshal): Add param_num field.
13651
13652 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
13653
13654         * object.c: generalized the reference bitmap creation
13655         and added hooks for the new GC.
13656         * class-internals.c: removed the gc_bitmap field from MonoClass.
13657
13658 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13659
13660         * domain.c: help the compiler to produce better code
13661         in mono_jit_info_table_find ().
13662
13663 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
13664
13665         * object.c: make all allocations look typed.
13666
13667 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
13668
13669         * socket-io.c: load Mono.Posix if it's not loaded already
13670         (fixes bug#73033).
13671
13672 2005-02-24  Martin Baulig  <martin@ximian.com>
13673
13674         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
13675         * reflection.c (dup_type): Likewise.
13676
13677 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
13678
13679         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
13680         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
13681
13682 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13683
13684         * domain.c, threads.c, object-internals.h: make the critical thread
13685         local vars use the fast access mode (even when we're compiled in
13686         a lib). Provide accessors to be used by the jit during codegen.
13687
13688 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13689
13690         * appdomain.c: Changed hook functios behavior to include
13691         support for the reflection only assemblies. Some icalls were changed
13692         to support the mentioned assemblies too. Signatures of static methods
13693         try_assembly_resolve and real_load now have an additional parameter:
13694         refonly.
13695
13696         * assembly.c: General changes to mono_assembly_ methods to support
13697         reflection only api. Functions mono_assembly_open, mono_assembly_load,
13698         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
13699         suffix, to support an additional gbool parameter to specify whether
13700         the assembli is reflection only or not. Created some new hook functions 
13701         to add support for reflection only assemblies. Signatures of static 
13702         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
13703         have now an additional parameter: refonly.
13704
13705         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
13706         indicating whether the assembly is reflection only or not.
13707
13708         * exception.c: Add mono_get_exception_invalid_operation.
13709
13710         * icall.c: Throw an InvalidOperationException when trying to invoke
13711         a property/method/event, or trying to set/get the value of a field.
13712         Also add an icall to retrieve the ref_only flag to the
13713         MonoReflectionAssembly.
13714
13715 2005-02-23  Chris Toshok  <toshok@ximian.com>
13716
13717         Part of fix for #72827.
13718         * mono-debug.c (mono_debug_add_method): add lexical block data to
13719         the info we write.  Kind of a hack at the moment - we copy the
13720         lexical block info from the MonoDebugMethodInfo to the
13721         MonoDebugMethodJitInfo here, before writing it.
13722         (mono_debug_read_method): read the lexical block info.
13723
13724         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
13725
13726         * debug-mono-symfile.h: add lexical block support.
13727
13728         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
13729         support.
13730
13731 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13732
13733         * loader.c (mono_lookup_pinvoke_call): Fix warning.
13734
13735         * object.c (mono_runtime_free_method): Call mono_free_method () and
13736         put the TODOs there.
13737
13738         * loader.c (mono_free_method): Free up most memory allocated for 
13739         dynamic methods.
13740
13741 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
13742
13743         * reflection.c: properly flag a Type argument to a
13744         named custom attr value (bug #72248).
13745
13746 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
13747
13748         * reflection.c: reduce code duplication in named custom
13749         attribute encoding.
13750
13751 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
13752
13753         * reflection.c: properly encode custom attrs of type object
13754         (bug #72649).
13755
13756 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
13757
13758         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
13759
13760 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
13761
13762         * socket-io.c: load System.dll if it's not loaded already
13763         (bug #72850 and #70477).
13764
13765 2005-02-21  Martin Baulig  <martin@ximian.com>
13766
13767         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
13768         generic instances.
13769
13770 2005-02-21  Martin Baulig  <martin@ximian.com>
13771
13772         * reflection.c (mono_image_build_metadata): We also need to
13773         "fixup" the MethodImpl table after we computed the final method
13774         indices.  Call fixup_methodimpl() to do that.
13775         (fixup_methodimpl): New private method.
13776
13777 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
13778
13779         * assembly.c: special case mscorlib.dll (bug#72536),
13780         patch from Carlos Alberto Cortez.
13781
13782 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
13783
13784         * threads-types.h threads.c: Fix build bustage.
13785
13786         * threads.c: Use a union for long<->double conversions.
13787
13788         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
13789         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
13790
13791         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
13792         containing the checkpoint call with NOT_TAKEN.
13793         
13794         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
13795         checkpoint before pushing the arguments, so they won't have to be
13796         spilled to stack.
13797
13798 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
13799
13800         * domain.c, assembly.c, domain-internals.h: make some data
13801         const and relocation-free.
13802
13803 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
13804
13805         * object.c, appdomain.c, class-internals.h: introduce the
13806         MonoClassRuntimeInfo structure to hold the info needed to
13807         use a class at runtime. Made mono_class_vtable() lock-free
13808         for all the appdomains.
13809
13810 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
13811
13812         * metadata-internals.h, image.c: introduce a per-image mempool to
13813         be used for memory that has the same lifetime as the image.
13814
13815 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
13816
13817         * domain.c: In mono_init_internal(), instead of selecting the first
13818         runtime version supported by an executable, get a list of all
13819         supported versions and select the one for which an mscorlib exists
13820         (since even if the runtime supports a given version, it doesn't mean
13821         that the framework for that version is installed).
13822         Modified get_runtimes_from_exe to support this behavior.
13823         In supported_runtimes, added information about additional system
13824         assembly versions.
13825         
13826         * assembly.c: Added support for more than one system assembly version
13827         per runtime version. Updated the assembly list.
13828         In mono_assembly_remap_version, removed the initial version check,
13829         since we don't know to which version we need to compare until we
13830         get the version set on which the assembly is based.
13831         Moved the code for loading corlib into the new method
13832         mono_assembly_load_corlib(), so it can be used by the initialization
13833         code.
13834         
13835         * domain-internals.h: Updated data structures and added declaration
13836         for mono_assembly_load_corlib.
13837
13838 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
13839
13840         * reflection.c (resolve_object): Fix the creation of the signature in 
13841         the SignatureHelper case.
13842
13843         * assembly.c (mono_assembly_remap_version): Fix binary search.
13844         
13845 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
13846  
13847         * class.c: Added inheritance check when a method is overloaded (from a
13848         virtual method or when implementing an interface) and when a class is
13849         inherited. Added functions to set a failure for a class and to 
13850         retreive the exception from a failure.
13851         * class-internals.h: Added fields to MonoClass to keep the exception
13852         information status for inheritance (or other exceptions) to be thrown
13853         later (i.e. not at load time).
13854         * object.c: Throw the inheritance SecurityException when a type is to 
13855         be created with either class or method inheritance violations.
13856         * reflection.c|h: Fix when getting declsec from a class. Removed 
13857         unrequired code for class. Improved sanity in parameter naming.
13858         * security-manager.c|h: Added functions to check for class and method
13859         inheritance.
13860
13861 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
13862
13863         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
13864         and has_finalize in dynamic types as well.
13865
13866 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
13867
13868         * culture-info-table.h : fixed currency format for en-GB (and so on).
13869
13870 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
13871
13872         * gc.c: ensure the GC handles never have 0 as a value.
13873
13874 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
13875
13876         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
13877         a pointer to a struct to unmanaged code. Fixes #72625.
13878
13879 2005-02-16  Martin Baulig  <martin@ximian.com>
13880
13881         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
13882
13883 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
13884
13885         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
13886
13887 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
13888
13889         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
13890
13891         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
13892         UnmanagedFunctionPointerAttribute, use it for determining calling convention
13893         etc. Fixes #71471.
13894
13895         * reflection.c (mono_custom_attrs_get_attr): New helper function.
13896
13897         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
13898
13899 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
13900
13901         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
13902         changes to make the current context a field in MonoThread.
13903
13904 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
13905
13906         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
13907         the last change.
13908         
13909         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
13910         extracted from mono_marshal_get_native_wrapper.
13911
13912         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
13913         to create wrappers around native functions.
13914
13915         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
13916         delegates for arbitrary function pointers. Fixes #71472.
13917
13918 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
13919
13920         * threads.c: cleaned up the code a little.
13921
13922 2005-02-15  Martin Baulig  <martin@ximian.com>
13923
13924         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
13925         the data table.
13926
13927         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
13928         allocate larger chunks if needed.
13929
13930 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
13931
13932         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
13933         in by mistake.
13934
13935 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
13936
13937         * domain.c: keep the domains in an array and ensure the domain ids
13938         are kept small, so they can be used as indexes to domain-specific data
13939         with a small memory overhead.
13940
13941 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
13942
13943         * icall.c: Handle byref types in Type icalls. Fixes #72544.
13944
13945 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
13946
13947         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
13948
13949 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
13950
13951         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
13952
13953         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
13954         values.
13955
13956         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
13957         
13958 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
13959
13960         * domain-internals.h: add the hashtable here.
13961
13962         * class-internals.h: Remove `info' from MonoMethod
13963
13964         * domain.c: Add a new hashtable, jit_trampoline_hash
13965
13966 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
13967
13968         * object.c: don't set the value of static fields
13969         (fixes bug#72494).
13970
13971 2005-02-11  Martin Baulig  <martin@ximian.com>
13972
13973         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
13974         (mono_debug_add_method): Silently ignore the method if it's too big.
13975         (mono_debug_add_type): Likewise.
13976
13977 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
13978
13979         * threads.c, appdomain.c: remove #ifdefs from the code.
13980
13981 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
13982
13983         * metadata-internals.h: Added flags to MonoAssembly to cache the most
13984         common security informations. This allows us to stay in unmanaged code
13985         when doing LinkDemand and it's special cases (except for the first 
13986         time for initialization). The flags a very much used with --security.
13987         * reflection.c|h: Added code to get declarative security attributes 
13988         for LinkDemand and InheritanceDemand. This required to refactor the
13989         existing code for Demand.
13990         * security-manager.c|h: Added new method fields for the special cases
13991         of LinkDemand.
13992
13993 2005-02-10  Martin Baulig  <martin@ximian.com>
13994
13995         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
13996         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
13997
13998 2005-02-10  Martin Baulig  <martin@ximian.com>
13999
14000         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
14001         debugging code; this is almost a complete rewrite.
14002
14003         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
14004
14005 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14006
14007         * domain.c, object.h: expose mono_string_equal () and 
14008         mono_string_hash ().
14009         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
14010         it's implemented in managed code.
14011
14012 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14013
14014         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
14015         lo leak objects between appdomains.
14016
14017 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14018
14019         * assembly.c: old compilers compilation fix from 
14020         robertj@gmx.net (Robert Jordan).
14021
14022 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
14023
14024         * class-internals.h: Little reminder for the future.
14025
14026         * debug-helpers.c: Fix up wrapper_type_names
14027
14028 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14029
14030         * image.c, metadata-internals.h: when loading an image from a file,
14031         mmap all of it and use the same codepaths as when using a
14032         in-memory image: the code is simpler and we use less memory
14033         (both writable and readonly).
14034
14035 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14036
14037         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
14038         API to alloc runtime data structures that need to be tracked by the
14039         GC and contain pointers.
14040         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
14041         make the code more readable and eventually use a different GC.
14042
14043 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
14044
14045         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
14046         for out arguments.
14047         
14048 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
14049
14050         * object.c: In release_type_locks(), don't release the cctor lock
14051         if it has already been released. This fixes a crash in the
14052         thread5 test.
14053
14054 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
14055
14056         * gc.c, marshal.c, icall.c: register a delegate for finalization
14057         only when the native function pointer has been allocated for it.
14058
14059 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14060
14061         * object.c: cleaned up some code, allocate objects that are
14062         pointer free with the atomic malloc variant. Allocate memory
14063         for static data from the mempool if it's pointer-free.
14064         Allocate the bounds array at the end of the array data, when needed.
14065         * object-internals.h, object.h: move a private function in a private
14066         header.
14067         * class.c: handle missing case in tracking references in fields.
14068
14069 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
14070
14071         * class.c, class-internals.h: keep track if a type has
14072         reference fields in either the instance or static fields.
14073
14074 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
14075
14076         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
14077         and renamed to MonoRuntimeInfo. Added fields to store the expected
14078         framework assembly version. Changed mono_get_framework_version and
14079         mono_get_runtime_version for a single mono_get_runtime_info method.
14080         
14081         * assembly.c: Added method to remap system assembly versions to the
14082         current executing runtime version. Removed old mapping code.
14083         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
14084         
14085         * icall.c, reflection.c: Track api changes.
14086
14087 2005-02-06  Miguel de Icaza  <miguel@novell.com>
14088
14089         * loader.c (method_from_memberref): Improve error reporting,
14090         produce the class name instead of the typeref/typedef index. 
14091
14092 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
14093
14094         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
14095
14096 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14097
14098         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
14099         stdcall and charset name mangling.  Reorganize the code and add
14100         some tracing stuff.
14101
14102 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14103
14104         * monodiet.c: More iters!
14105
14106         * marshal.c: Iter usage.
14107
14108         * icall.c: Iter usage.
14109
14110         * object.c: Use iters.
14111
14112         * debug-helpers.c: More iters
14113
14114 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14115
14116         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
14117         under win32.
14118
14119 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
14120
14121         * mono-debug-debugger.c: use iters
14122
14123         * class.c, class-internals.h: mono_class_setup_events is static
14124         now
14125
14126         * All callers: use iters
14127
14128 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
14129
14130         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
14131         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
14132
14133 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14134
14135         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
14136
14137         * marshal.h: Add prototypes for ldfld/stfld_remote.
14138
14139         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
14140         this is called during startup.
14141         
14142 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
14143
14144         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
14145         MonoThreadsSync struct private in monitor.c. Changed the way
14146         MonoThreadsSync is allocated so it's faster and there is no
14147         need to keep track of it with a finalizer and it uses less memory.
14148         This also finally allows us to allocate mono objects as ptrfree when
14149         there are no reference fields.
14150
14151 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
14152
14153         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
14154         disappearing link to the GC interface and use them to simplify
14155         the gchandles code.
14156
14157 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
14158
14159         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
14160         stfld_remote which call mono_load/store_field_new. This allows methods
14161         calling ldfld/stfld wrappers to be AOTed.
14162
14163         * console-io.c: Include sys/filio.h under solaris.
14164         
14165         * console-io.c: Include curses.h if needed correctly.
14166
14167 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14168         
14169         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
14170         method->klass as well.
14171
14172         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
14173
14174         * class.c (mono_class_init): Switch on lazy initialization of 
14175         methods.
14176
14177         * class.c (mono_class_get_finalizer): Handle the case when the 
14178         finalizer is inherited.
14179
14180 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14181
14182         * console-io.c: <curses.h> is needed by term.h on solaris.
14183
14184 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
14185
14186         * icall.c, class-internals.h, monodiet.c, class.c: Remove
14187         mono_class_setup_properties where possible. Remove this ftn from
14188         the header file, and make it static.
14189
14190 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
14191
14192         * loader.c: Add missing setup_... call.
14193
14194         * class.c: Add missing setup_... calls.
14195
14196         * class.c (mono_class_init): Switch on lazy initialization of 
14197         the generic vtable.
14198         
14199         * class.c (mono_class_init): Fix generics broken by the recent changes.
14200
14201         * monodiet.c (handle_type): Add missing setup_... calls.
14202
14203         * class.c: Back out garbage in previous patch.
14204         
14205         * class.c: Add missing setup_... calls.
14206
14207         * class.c (mono_class_get_method_from_name_flags): Avoid calling
14208         mono_class_setup_methods () if possible.
14209
14210         * class-internals.h (MonoClass): Add 'has_cctor' flag.
14211
14212         * class-internals.h (MonoCachedClassInfo): New structure.
14213
14214         * class.c: Initialize properties and events fields of MonoClass lazily.
14215
14216         * class.c: Add infrastructure for lazily initializing the methods and
14217         vtable fields of MonoClass. Not yet used.
14218
14219         * class.c (mono_class_get_finalizer): New helper function.
14220
14221         * class.c: Add infrastructure for loading some class related data from
14222         an AOT file.
14223
14224         * object.c: Add infrastructure for initializing the vtable from data
14225         in the AOT file.
14226
14227         * gc.c (run_finalize): Use mono_class_get_finalizer ().
14228
14229         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
14230         appropriate initialization function before accessing parts of the
14231         MonoClass structure.
14232
14233         * marshal.c: Fix warnings.
14234         
14235         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
14236
14237         * mono-debug-debugger.c (get_exception_message): Use 
14238         mono_class_get_method_from_name_flags ().
14239
14240 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
14241
14242         * reflection.c, appdomain.c: Replace a few manual searches that
14243         Zoltan missed. (Paolo approved this part of my initial patch).
14244
14245 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
14246
14247         * profiler.c: disable recording statistical events at report time.
14248
14249 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14250
14251         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
14252         to byteswap arrays of enum values, too (bug #72080).
14253
14254 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
14255
14256         * appdomain.c (set_domain_search_path): Allow this to be called if
14257         domain->setup is not yet set.
14258
14259         * loader.c (mono_method_get_index): New helper function.
14260
14261         * loader.c reflection.c: Use mono_method_get_index ().
14262
14263         * class.c (mono_class_get_method_from_name_flags): New helper method.
14264
14265         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
14266         this.
14267
14268         * class.c (mono_class_get_cctor): New helper method.
14269
14270         * string-icalls.c object.c class.c marshal.c reflection.c: Use
14271         mono_class_get_method () to look up methods.
14272
14273 2005-02-01  Miguel de Icaza  <miguel@novell.com>
14274
14275         * console-io.c: Fix the build, this should work on Windows.
14276
14277 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
14278
14279         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
14280         be set to null to keep things valid
14281
14282 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14283
14284         * icall.c: added Console 2.0 icalls.
14285         * Makefile.am: added console-io.[ch]
14286         * console-io.[ch]: internal calls for Console 2.0 API.
14287
14288 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14289
14290         * class.c: make sure we consider all the interfaces
14291         when calculating max_interface_id (bug found by
14292         Jeroen Frijters running ikvm).
14293
14294 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
14295
14296         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
14297         valuetype fields to null.
14298
14299         * object.c (set_value): Ditto. Fixes #71669.    
14300
14301 2005-01-31  Martin Baulig  <martin@ximian.com>
14302
14303         * metadata.c (mono_metadata_has_generic_params): New public
14304         function; checks whether something is a generic method.
14305
14306 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
14307
14308         * appdomain.c: fix infinite recursion when adding assemblies.
14309
14310 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
14311
14312         * object.c: Fix small typo to return all items for Environment.
14313         GetCommandLineArgs.
14314
14315 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
14316
14317         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
14318         reflection.c: more domain and assembly-unload related fixes
14319         and memory leaks plugs.
14320
14321 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
14322
14323         * 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.
14324
14325 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
14326
14327         * loader.c (mono_method_signature): Make this method lazy
14328         (mono_get_method_from_token): Don't computate the signature here.
14329
14330         Doing this saves quite a bit of memory. I got 90 kb on starting up
14331         monodoc. It should also save some disk reads on startup.
14332
14333         * *: MonoMethod->signature might be NULL now. You *MUST* use
14334         mono_method_signature.
14335
14336 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
14337
14338         * object.c (mono_runtime_get_main_args): Return an array from the
14339         current domain here. Fixes #71938.
14340
14341 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
14342
14343         * monitor.c: formatting changes to comply with the
14344         mono coding style and remove #ifdefs from the code.
14345
14346 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14347
14348         * metadata.c, private.h: remove some unneeded data
14349         and use a more compact representation for table schemas.
14350
14351 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
14352
14353         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
14354         to get a better distribution in hash tables.
14355         * *.c: use mono_aligned_addr_hash() where appropriate.
14356         * assembly.c: make var static.
14357
14358 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
14359
14360         * domain-internals.h: Put MonoJitInfo on a diet.
14361
14362         * domain.c: Fix a warning.
14363
14364 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14365
14366         * gc.c: rework the gc handles code to reuse handles
14367         when freed.
14368
14369 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
14370
14371         * domain.c: fixed long standing bug in mono_string_equal() which
14372         was brought to light with the ldstr changes.
14373
14374 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
14375
14376         * reflection.c: Remove warning by adding missing include for marshal.h
14377
14378 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
14379
14380         * domain.c, object.c: change the ldstr_table to hold
14381         MonoString* as keys: makes the runtime isinterned lookup
14382         faster and simplifies memory management.
14383
14384 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
14385  
14386         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
14387         possible to add imperative security checks before calling the icall.
14388         * reflection.c: Return security attributes on the original MonoMethod
14389         (and not the wrapped one). This fix permissions on icalls.
14390
14391 2005-01-25  Dick Porter  <dick@ximian.com>
14392
14393         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
14394         the check for mktime() support actually test the mktime() return
14395         value.  "Fixes" bug 71682, though the output is still different to
14396         MS.
14397
14398 2005-01-25  Martin Baulig  <martin@ximian.com>
14399
14400         * class.c (mono_class_is_assignable_from): Make this work for
14401         generic instances.
14402
14403 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
14404
14405         * marshal.c (mono_string_utf8_to_builder)
14406         (mono_string_builder_to_utf16): We might not have ownership of the
14407         string. In thise case, we need to create a new buffer.
14408
14409         * object-internals.h (mono_stringbuilder_capacity): sb->str might
14410         be null, in which case, use the default capacity.
14411
14412 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
14413
14414         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
14415         GC events to the profiler.
14416
14417 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
14418
14419         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
14420         if you don't want the GC to run.
14421
14422 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
14423
14424         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
14425         start providing a GC API and keeping different implementations in
14426         their own file.
14427         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
14428
14429 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
14430
14431         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
14432         mmap rather than allocating a huge buffer.
14433         (mono_debug_close_mono_symbol_file): Free the buffer allocated
14434         above.
14435
14436 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
14437
14438         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
14439         and CheckExecutionRights.
14440         * reflection.c|h: Keep the index of the declarative security to be 
14441         used, instead of the pointer, when AOT compiler is used. Also add 
14442         class initialization when requesting demands.
14443         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
14444         CheckExecutionRights. Both properties are now FALSE by default, and
14445         unmodifiable, unless the --security option is used.
14446
14447 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14448
14449         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
14450         reflection.c: properly refcount images and assemblies, many leaks fixed.
14451
14452 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14453
14454         * threadpool.c: increase the timeout for threads in the thread pool to
14455         10s.  Fixes bug #67159.
14456
14457 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
14458
14459         * class-internals.h: Sun's compiler insists on explicit
14460         signed on bit fields to handle then correctly.
14461
14462 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
14463
14464         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
14465         Make the size of the array fit only the number of invalid path
14466         chars that we have.
14467
14468         * class.c (_mono_class_get): Improve the error reporting when a
14469         class referenced is not found, to assist debugging. 
14470
14471 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
14472
14473         * threads.c: fix off-by-one error.
14474         * domain.c: free data allocated in the domain.
14475
14476 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14477
14478         * reflection.c (mono_method_body_get_object): Fill out exception info
14479         as well.
14480
14481         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
14482         structure.
14483         
14484 2005-01-19  Martin Baulig  <martin@ximian.com>
14485
14486         * loader.c (mono_get_method_constrained): Make this work again.
14487
14488 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
14489
14490         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
14491         guint16 to match the managed side.
14492
14493         * reflection.c (mono_reflection_body_get_object): Fill out local
14494         variables array.
14495
14496         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
14497         as well.
14498
14499         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
14500         'local_var_sig_token'.
14501
14502 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
14503
14504         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
14505         System.Drawing.
14506
14507         * reflection.c (mono_method_body_get_object): Handle abstract and
14508         runtime methods.
14509
14510 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
14511
14512         * marshal.c, loader.c, class-internals.h, reflection.c:
14513         store the emthod data for a wrapper in an array instead of a list.
14514
14515 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
14516
14517         * marshal.c: change the code to allocate memory more
14518         conservatively for method wrappers.
14519
14520 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
14521
14522         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
14523         fields from MonoClass to the marshal info structure where they belong.
14524
14525 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
14526
14527         * class.c, object.c, class-internals.h, marshal.c: rearrange
14528         some fields and tweak some types to lower memory usage.
14529
14530 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
14531
14532         * threads.c (signal_thread_state_change): Handle the case when the
14533         target thread is the current thread.
14534
14535         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
14536
14537         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
14538         emit_ptr_to_object_conv. 
14539
14540         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
14541         marshalling. Fixes #71352.
14542
14543 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
14544
14545         * metadata.h, blob.h: move table enum to blob.h so it can be included
14546         in any header.
14547         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
14548         cut the size of MonoImage/MonoDynamicImage.
14549
14550 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
14551
14552         * profiler.c (mono_profiler_install_simple): Fix default arguments.
14553
14554 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
14555
14556         * reflection.c, reflection.h, icall.c: add a function to check
14557         if an attribute type is defined for a metadata object.
14558
14559 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
14560
14561         * object-internals.h: Added some needed fields from StringBuilder class.
14562         * marshal.c: Set the maxCapacity when creating a StringBuilder.
14563
14564 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
14565
14566         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
14567         threads before shutting down the runtime.
14568
14569         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
14570
14571 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
14572
14573         * object-internal.h, threads.c: implement stacksize and 
14574         parameterized thread start functionality (requires
14575         matching corlib). Marked broken code for later removal.
14576
14577 2005-01-12  Martin Baulig  <martin@ximian.com>
14578
14579         * class-internals.h (MonoGenericClass): Moved the `initialized'
14580         flag to MonoDynamicGenericClass, removed `init_pending'.
14581         (MonoGenericInst): Added `is_reference' flag.
14582
14583 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
14584
14585         * reflection.c (mono_image_create_pefile): Only set the pe_offset
14586         inside the MSDOS header. Fixes #71201.
14587
14588         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
14589         gc thread.
14590         (mono_domain_finalize): Ditto.
14591
14592 2005-01-12  Martin Baulig  <martin@ximian.com>
14593
14594         * class.c (mono_get_shared_generic_class): Use the cache for
14595         non-dynamic generic classes.
14596
14597         * class-internals.h (mono_class_create_generic_2): Removed
14598         function prototype, this function is now static inside class.c.
14599
14600         * class.c (mono_class_create_generic_2): Made this static, only
14601         call it from mono_class_init() and mono_class_setup_parent().
14602         (collect_implemented_interfaces_aux): Call mono_class_init() on
14603         the interfaces we collect.
14604         (mono_class_setup_vtable): Call mono_class_init (class->parent).
14605
14606 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14607
14608         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
14609         it a real thread handle.
14610
14611         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
14612         MonoJitExceptionInfo, since each catch clause needs its own variable.
14613         
14614 2005-01-11  Dick Porter  <dick@ximian.com>
14615
14616         * image.c (mono_pe_file_open): New variant on mono_image_open()
14617         that does not set up the CLI metadata; used for FileVersionInfo so
14618         it can get the data for windows binaries too.
14619         
14620         * process.c (process_read_string_block): Don't read off the end of
14621         the StringTable block.
14622
14623         These both fix bug 70766.
14624
14625 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
14626
14627         * gc.c: set some fields to NULL at GC cleanup time.
14628         * threads.c: if we quit the main thread, call exit ().
14629
14630 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
14631
14632         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
14633
14634 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
14635
14636         * threads.h, threads.c, object.c: added accessor and settor for
14637         main_thread. Handle it specially when exiting from it: wait
14638         for other foreground threads to exit.
14639
14640 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
14641
14642         * process.c, verify.c: remove some bloat.
14643
14644 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
14645
14646         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
14647         the calling convention to cdecl under win32.
14648
14649 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
14650
14651         * object.c (mono_object_get_size): New function to get the size of
14652         an object instance.
14653
14654         * profiler.c (simple_allocation): Use above.
14655
14656 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
14657
14658         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
14659         ves_icall_System_AppDomain_getRootDomain (as it's not required to
14660         get an appdomain by it's id and we can't assume the root's id is 0).
14661         * domain-internals.h: Change the function prototype to match.
14662         * icall.c: Change the icall table for AppDomain.
14663
14664 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
14665
14666         * locales.c (string_invariant_compare_char): Only compute
14667         GUnicodeTypes in the case where we need them.  Test for ordinality
14668         first and return if so.
14669
14670         From the commit:
14671
14672                 /*
14673                  * FIXME: here we must use the information from c1type and c2type
14674                  * to find out the proper collation, even on the InvariantCulture, the
14675                  * sorting is not done by computing the unicode values, but their
14676                  * actual sort order.
14677                  */
14678
14679 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
14680
14681         * loader.c: for P/Invoke methods, allow the "Internal" shared
14682         library name to refer to the calling process symbol namespace.
14683
14684 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
14685
14686         * Makefile.am: Add the security manager to the build.
14687         * security-manager.c|h: New. Initialization of the security manager.
14688
14689 2005-01-07  Dick Porter  <dick@ximian.com>
14690
14691         * threads.c: 
14692         * monitor.c: Update thread state during Monitor and WaitHandle
14693         waits.  Fixes bug 71031.
14694
14695 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
14696
14697         * reflection.c (property_encode_signature): Correctly handle when the
14698         property has no methods.
14699
14700 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
14701
14702         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
14703         
14704         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
14705         fields from mb, not rmb. Fixes #71017.
14706
14707         * marshal.c (emit_ptr_to_str_conv): Add support for 
14708         ByValTStr -> string conversion. Fixes #71015.
14709
14710         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
14711
14712         * mempool.c (mono_mempool_contains_addr): New helper function.
14713
14714 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14715
14716         * metadata.c (mono_metadata_compute_size): Fix size calculation of
14717         HasSematics encoded fields.
14718         
14719         * metadata.c (mono_type_to_unmanaged): Improve error message for 
14720         invalid string marshalling.
14721
14722         * metadata.c: Fix warnings.
14723         
14724 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
14725
14726         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
14727         profiler support.
14728
14729 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
14730
14731         * domain.c object.c domain-internals.h: Revert part of r38077 since the
14732         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
14733         tests.
14734
14735 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
14736
14737         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
14738         so methods containing these can be AOTed.
14739
14740 2005-01-03  Martin Baulig  <martin@ximian.com>
14741
14742         * loader.c (find_method): Removed the hack for generic instances.
14743         (method_from_memberref): If our parent is a generic instance, pass
14744         its generic type definition to find_method() and then inflate the
14745         method.
14746         (mono_get_method_constrained): Pass the generic type definition to
14747         find_method() and inflate the method later.
14748
14749         * class-internals.h (MonoStats): Added `generic_class_count'.
14750
14751         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
14752         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
14753
14754         * reflection.c (mono_custom_attrs_from_params): Don't ignore
14755         generic type definitions.
14756
14757 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
14758
14759         * loader.c icall.c: Fix warnings.
14760
14761 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
14762
14763         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
14764         blittable types. Fixes #70864.
14765
14766 2004-12-29  Martin Baulig  <martin@ximian.com>
14767
14768         * icall.c
14769         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
14770
14771         * reflection.c (mono_method_get_object): Create a
14772         "System.Reflection.MonoGenericMethod" for inflated methods; don't
14773         call mono_get_inflated_method().
14774
14775         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
14776
14777 2004-12-27  Martin Baulig  <martin@ximian.com>
14778
14779         * class-internals.h (MonoMethod): Added `is_inflated' flag.
14780         (MonoMethodInflated): Added `inflated' field.
14781
14782         * class.c (mono_class_inflate_generic_method): Don't really
14783         inflate the method here; just set the `is_inflated' flag in the
14784         MonoMethod.
14785         (mono_class_get_inflated_method): Actually inflate the method here
14786         if it's not already inflated; we use the MonoMethodInflated's new
14787         `inflated' field as a cache.
14788
14789 2004-12-26  Martin Baulig  <martin@ximian.com>
14790
14791         * class.c
14792         (inflate_generic_class): Moved some code out of inflate_generic_type().
14793         (mono_class_inflate_generic_method): If we're already inflated,
14794         inflate the context and use the declaring method; ie. make sure
14795         the declaring method of an inflated method is always the generic
14796         method definition.
14797         (mono_class_create_from_typedef): Create
14798         `class->generic_container->context->gclass'.
14799
14800 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
14801
14802         * metadata-internals.h, marshal.c, reflection.c: More
14803         MonoGHashTable->GHashTable.
14804
14805         * domain-internals.h, class.c: Change MonoGHashTable's into
14806         GHashTables for some cases where no gc stuff is used
14807
14808         All users: update apis
14809
14810 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
14811
14812         * metadata.c (builtin_types): Make this `const'. Makes this get
14813         put into the shareable section.
14814         (mono_metadata_init): Casts to make gcc happy.
14815
14816 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
14817
14818         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
14819
14820 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
14821
14822         * icall.c: Added an internal call to retrieve the position and length
14823         of assembly-level declarative security attributes (RequestMinimum, 
14824         RequestOptional and RequestRefuse). This is used by the Assembly class
14825         to re-create the corresponding permission sets.
14826
14827 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
14828
14829         * marshal.c: fix the stelemref wrapper to be type correct
14830         (and faster).
14831
14832 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
14833
14834         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
14835         to do key & 0x7fffffff. Hashtable already does this. It just
14836         results in longer code.
14837
14838 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
14839
14840         * appdomain.c: Bump corlib version.
14841         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
14842         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
14843         * reflection.c|h: Add functions to get declarative security infos
14844         (blob position and length) for assemblies, classes and methods.
14845
14846 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
14847
14848         * reflection.c: sort the constant table (bug #70693).
14849
14850 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
14851
14852         * object-internals.h, threads.c, domain.c: add accessors for
14853         the MonoThread and MonoDomain tls keys.
14854
14855 2004-12-18  Martin Baulig  <martin@ximian.com>
14856
14857         * class.c (inflate_generic_type): If we're inflating a generic
14858         instance, set `ngclass->context->container = context->container';
14859         ie. the container we inflated into.
14860
14861         * metadata.c (mono_metadata_parse_generic_param): Reflect above
14862         inflate_generic_type() changes.
14863
14864 2004-12-17  Martin Baulig  <martin@ximian.com>
14865
14866         * class-internals.h
14867         (MonoGenericClass): Replaced `MonoType *generic_type' with
14868         `MonoClass *generic_class'.  Removed `dynamic_info'; if
14869         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
14870         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
14871
14872 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
14873
14874         * exception.c (mono_exception_from_token): New helper function.
14875
14876 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
14877
14878         * assembly.c (mono_assembly_load_with_partial_name): Call 
14879         mono_assembly_loaded before invoking the preload hooks. Fixes
14880         #70564.
14881
14882         * object-internals.h (MonoThread): Change culture_info and 
14883         ui_culture_info into an array.
14884
14885         * threads.c: Cache culture info objects from more than one appdomain.
14886
14887         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
14888         current UI culture.
14889
14890 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
14891
14892         * threads.h threads.c appdomain.c: Clear the culture_info field of
14893         all threads during unloading if they point to an object in the dying
14894         appdomain.
14895
14896 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
14897
14898         * culture-info.h (TextInfoEntry): New struct
14899         * object-internals.h: sync with managed
14900         * locales.c: fill the `text_info_data' field
14901         * culture-info-tables.h: update
14902
14903 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
14904
14905         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
14906         collector.
14907
14908 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
14909
14910         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
14911         (ves_icall_ModuleBuilder_getMethodToken): Ditto
14912
14913 2004-12-12  Martin Baulig  <martin@ximian.com>
14914
14915         * mono-debug-debugger.c (write_type): If we're an enum and the
14916         builtin types have already been initialized, call mono_class_init().
14917
14918 2004-12-11  Martin Baulig  <martin@ximian.com>
14919
14920         * metadata.c (mono_metadata_load_generic_params): Added
14921         `MonoGenericContainer *parent_container' argument; automatically
14922         compute `container->is_method'; pass the correct owner to
14923         get_constraints().      
14924
14925         * reflection.c (compare_genericparam): Sort the GenericParam table
14926         according to increasing owners. 
14927
14928 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
14929
14930         * profiler.c: allow disabling the default profiler.
14931
14932 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
14933
14934         * decimal.c, icall.c: allow disabling System.Decimal support.
14935
14936 2004-12-09  Marek Safar <marek.safar@seznam.cz>
14937
14938         * reflection.c: Add support for null attribute arguments.
14939
14940 2004-12-09  Martin Baulig  <martin@ximian.com>
14941
14942         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
14943         names to get rid of compiler warnings.
14944
14945 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
14946
14947         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
14948         mono_marshal_load_type_info (). Fixes #69625.
14949         (mono_marshal_get_ptr_to_struct): Likewise.
14950
14951 2004-12-08  Martin Baulig  <martin@ximian.com>
14952
14953         * mono-debug.h: Bumped version number to 47.
14954
14955         * mono-debug-debugger.c
14956         (mono_debugger_event_handler, mono_debugger_event): Take two
14957         guint64 arguments insteed of a gpointer and a guint32.  
14958
14959 2004-12-08  Martin Baulig  <martin@ximian.com>
14960
14961         * debug-mono-symfile.h
14962         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
14963         `address' to `native_offset'.
14964
14965 2004-12-08  Martin Baulig  <martin@ximian.com>
14966
14967         * class.c (mono_class_create_from_typespec): Only inflate if we
14968         either have `context->gclass' or `context->gmethod'.
14969
14970 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
14971
14972         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
14973
14974         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
14975
14976         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
14977
14978         * reflection.c (mono_assembly_get_object): Remove the workaround put
14979         in for the release.
14980         
14981         * appdomain.c: Use the corlib_internal field from MonoAssembly.
14982
14983         * appdomain.c: Bump corlib version.
14984
14985         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
14986         be visible in other appdomains.
14987
14988 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
14989
14990         * threads.c: Interlocked inc and dec for longs were messed up,
14991         use a KISS based impl for this. Fixes 70234
14992
14993 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
14994
14995         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
14996
14997 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
14998
14999         * icall.c: fix to follow policy not to allow struct
15000         arguments in icalls.
15001
15002 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15003
15004         * process.c: make the patch that handles spaces in file paths work
15005         on mono/windows too.
15006
15007 2004-12-06  Martin Baulig  <martin@ximian.com>
15008
15009         * class.c (mono_class_create_generic): Call
15010         mono_class_setup_supertypes() if we're dynamic.
15011         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
15012
15013 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
15014
15015         * object-internals.h: Add new fields to MonoThread.
15016
15017         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
15018
15019         * icall.c threads-types.h threads.c: Add new icalls.
15020
15021         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
15022
15023         * object-internals.h (MonoReflectionAssembly): Sync object layout with
15024         managed side.
15025
15026         * appdomain.c: Bump corlib version.
15027
15028         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
15029         internal assemblies. Fixes #69181.
15030
15031 2004-12-05  Martin Baulig  <martin@ximian.com>
15032
15033         * class.c (mono_class_inflate_generic_signature): Make this a
15034         no-op if `context' is NULL or we don't have any type parameters;
15035         also copy `sentinelpos'.        
15036
15037 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
15038
15039         * image.c: Add unbox_wrapper_cache.
15040
15041         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
15042
15043         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
15044         function generator.
15045         
15046         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
15047         Fixes #70173.
15048
15049         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
15050         
15051 2004-12-04  Martin Baulig  <martin@ximian.com>
15052
15053         * loader.c (mono_method_get_signature_full): New public function;
15054         like mono_method_get_signature(), but with an additional
15055         `MonoGenericContext *' argument.
15056
15057         * class.c (mono_class_inflate_generic_signature): Formerly known
15058         as inflate_generic_signature(); make this public.
15059
15060 2004-12-04  Martin Baulig  <martin@ximian.com>
15061
15062         * metadata.c
15063         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
15064         instead of a `MonoGenericContainer *'.  
15065         (mono_metadata_parse_array_full): Likewise.
15066         (mono_metadata_parse_signature_full): Likewise.
15067         (mono_metadata_parse_method_signature_full): Likewise.
15068         (mono_metadata_parse_generic_inst): Likewise.
15069         (mono_metadata_parse_generic_param): Likewise.
15070         (mono_metadata_parse_mh_full): Likewise.
15071         (mono_type_create_from_typespec_full): Likewise.
15072
15073 2004-12-03  Martin Baulig  <martin@ximian.com>
15074
15075         * class-internals.h (MonoGenericContainer): Replaced the
15076         `MonoGenericContext * pointer with a `MonoGenericContext'
15077         structure and made it the first element.
15078
15079 2004-12-03  Martin Baulig  <martin@ximian.com>
15080
15081         * class.c
15082         (inflate_generic_type): Set the `context->container' when creating
15083         a new MonoGenericContext.
15084         (mono_class_inflate_generic_method): Likewise.
15085         (mono_class_create_from_typespec): Just use `context->container'
15086         to get the container.
15087
15088         * loader.c (method_from_methodspec): Set `context->parent' from
15089         `context->container' - and if that's a method container, use its
15090         parent.  Also set the `context->container' when creating a new
15091         MonoGenericContext.
15092         (mono_get_method_from_token): Use just `context->container' to get
15093         the container.
15094
15095         * metadata.c (do_mono_metadata_parse_generic_class): Also set
15096         `gclass->context->container'.
15097
15098         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
15099         the `context->container' when creating a new MonoGenericContext.
15100
15101 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
15102
15103         * reflection.c (compare_genericparam): Sort params with identical
15104         owner by their number. Fixes gen-111 on sparc.
15105
15106 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15107
15108         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
15109         around the domain changes.
15110
15111         * appdomain.c (mono_domain_unload): Handle the case when the thread
15112         calling Unload is itself being aborted during unloading. Fixes #70022.
15113
15114         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
15115
15116         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
15117         checkpoint_func as an icall so it gets a wrapper.
15118         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
15119         in the cross-appdomain wrappers too.
15120
15121         * threads.c (mono_thread_has_appdomain_ref): Make this public.
15122
15123         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
15124
15125         * reflection.c: Fix some memory leaks.
15126         
15127 2004-12-02  Martin Baulig  <martin@ximian.com>
15128
15129         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
15130
15131         * metadata.c (generic_class_cache): New static hashtable.
15132         (mono_metadata_lookup_generic_class): New public method.
15133
15134 2004-12-02  Martin Baulig  <martin@ximian.com>
15135
15136         * class.c (mono_class_create_from_typedef): Call
15137         mono_class_setup_parent() and mono_class_create_mono_type() before
15138         parsing the interfaces.
15139
15140 2004-12-02  Martin Baulig  <martin@ximian.com>
15141
15142         * metadata.c (generic_inst_cache): New static hashtable.
15143         (mono_metadata_lookup_generic_inst): New public function.
15144         (mono_metadata_inflate_generic_inst): New public function.
15145         (mono_metadata_parse_generic_inst): New public function.
15146         (do_mono_metadata_parse_generic_class): Use the new
15147         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
15148         since this'll also use the cache.
15149
15150         * reflection.c (mono_reflection_bind_generic_method_parameters):
15151         Use mono_metadata_lookup_generic_inst() to use the new cache.
15152
15153         * class.c (inflate_mono_type): Use
15154         mono_metadata_inflate_generic_inst() to inflate a generic
15155         instance; this'll also use the new cache.
15156
15157         * loader.c (method_from_methodspec): Use
15158         mono_metadata_parse_generic_inst() and
15159         mono_metadata_inflate_generic_inst() rather than parsing it
15160         manually, so we can use the new cache.
15161
15162 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
15163
15164         * threads.c (wait_for_tids): Do not incorrectly free threads when 
15165         the wait times out.
15166
15167 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
15168
15169         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
15170         iter->args based on whether parameters are passed in registers (i.e.
15171         MONO_ARCH_REGPARMS is defined)
15172
15173 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
15174
15175         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
15176         the exception message. Fixes #70070.
15177         (method_from_methodspec): Fix warnings.
15178
15179 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15180
15181         * process.c: (complete_path) return the path quoted
15182
15183 2004-12-01  Martin Baulig  <martin@ximian.com>
15184
15185         * class-internals.h (MonoGenericInst): New structure.
15186         (MonoGenericClass): Replaced `type_argc', `type_argv' and
15187         `is_open' with `MonoGenericInst *inst'.
15188         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
15189         `is_open' with `MonoGenericInst *inst'.
15190
15191 2004-11-30  Martin Baulig  <martin@ximian.com>
15192
15193         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
15194
15195         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
15196         to `generic_class_cache'.
15197
15198         * metadata.c
15199         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
15200         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
15201         (mono_generic_inst_is_valuetype): Renamed to
15202         mono_generic_class_is_valuetype().
15203
15204         * class-internals.h
15205         (MonoGenericInst): Renamed to MonoGenericClass.
15206         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
15207         (MonoClass): Renamed `generic_inst' to `generic_class'.
15208         (MonoGenericContext): Renamed `ginst' to `gclass'.
15209
15210         * object-internals.h
15211         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
15212
15213         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
15214         mono_reflection_generic_class_initialize().
15215
15216         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
15217         now known as "System.Reflection.MonoGenericClass".
15218         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
15219
15220 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
15221
15222         * class-internals.h: Added a flag field to MonoClass to cache the
15223         declarative security attributes actions associated with the class.
15224         * domain-internals.h: Added booleans to MonoJitInfo to cache the
15225         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
15226         applicable to the JITted method.
15227         * reflection.c|h: Added functions to extract (as flags) which security
15228         actions are available (declaratively) for a method, class or assembly.
15229         * metadata.c|h: Added functions to search the declarative security
15230         table in the metadata.
15231         
15232 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
15233
15234         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
15235         EXPORTEDTYPES are already in the class name cache, so there is no
15236         need to add extra code here to look at them. Just removes a bit of
15237         cruft.
15238
15239         (ves_icall_System_Environment_get_TickCount): No need for #if
15240         WINDOWS. We already have the code in io-layer.
15241
15242 2004-11-28  Martin Baulig  <martin@ximian.com>
15243
15244         * loader.c
15245         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
15246         Fixes gen-112.cs.
15247
15248 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
15249
15250         * assembly.c (do_mono_assembly_open): Instead of having a
15251         conditional WITH_BUNDLE, incorporate support for bundles here, by
15252         having a global `bundles' variable holding a pointer to the actual
15253         bundles. 
15254
15255         (mono_register_bundled_assemblies): New API call used by the
15256         bundle code. 
15257
15258         See mkbundle.1 for details.
15259         
15260 2004-11-27  Martin Baulig  <martin@ximian.com>
15261
15262         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
15263         the vtable for generic methods.
15264
15265 2004-11-26  Martin Baulig  <martin@ximian.com>
15266
15267         * metadata.c
15268         (mono_metadata_generic_method_hash): New public function.
15269         (mono_metadata_generic_method_equal): Likewise.
15270
15271         * class-internals.h
15272         (MonoGenericContainer): Added `GHashTable *method_hash'.
15273
15274         * reflection.c (ReflectionMethodBuilder): Added
15275         `MonoGenericContainer *generic_container'.
15276         (reflection_methodbuilder_to_mono_method): Don't create a new
15277         MonoGenericContainer each time we're called.
15278         (mono_reflection_bind_generic_method_parameters): Use
15279         `container->method_hash' to cache the results so we don't create a
15280         different method if we're called several times with the same
15281         arguments.
15282
15283         * loader.c (method_from_methodspec): Use the new
15284         `container->method_hash' here, too.
15285
15286 2004-11-26  Martin Baulig  <martin@ximian.com>
15287
15288         * class.c (inflate_generic_signature): Correctly compute
15289         `res->has_type_parameters'.
15290         (mono_class_vtable): Use the `has_type_parameters' flag to
15291         determine whether we're a generic method.
15292
15293         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
15294
15295 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
15296
15297         * object.c (mono_runtime_run_main): Fix a small memory leak.
15298
15299 2004-11-25  Martin Baulig  <martin@ximian.com>
15300
15301         * class.c (set_generic_param_owner): Fixed the loop.
15302
15303 2004-11-25  Martin Baulig  <martin@ximian.com>
15304
15305         * object.c (mono_class_vtable): Don't create any JIT wrappers for
15306         generic methods.
15307
15308 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
15309
15310         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
15311         names. Fixes #69787.
15312
15313 2004-11-24  Martin Baulig  <martin@ximian.com>
15314
15315         * class.c (mono_class_create_generic_2): If we don't have a
15316         `ginst->parent', inflate `gklass->parent' to get our parent.
15317
15318 2004-11-24  Martin Baulig  <martin@ximian.com>
15319
15320         * reflection.c (compare_genericparam): Correctly sort the
15321         GenericParam table; fixes #69779.
15322
15323 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
15324
15325         * reflection.c: When writing a PE file, don't create a huge
15326         buffer in memory. Just write the arrays we have to the file.
15327         This reduces memory usage.
15328
15329         * metadata-internals.h: MonoDynamicStream pefile is no longer used
15330         globally.
15331
15332 2004-11-17  Martin Baulig  <martin@ximian.com>
15333
15334         * class.c (mono_class_init): Don't setup `class->parent' for
15335         dynamic instances; moved this to mono_class_generic_2().
15336         (mono_class_create_generic): Also set `klass->inited' for dynamic
15337         generic instances.
15338         (mono_class_create_generic_2): Don't do anything for dynamic
15339         generic instances.  Set `klass->parent' here and also call
15340         mono_class_setup_parent() here. 
15341
15342         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
15343         `MonoType *parent' argument; set `ginst->parent' before calling
15344         mono_class_create_generic_2(), so we set the correct parent.
15345
15346 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
15347
15348         * reflection.c: allow getting attributes from ModuleBuilder
15349         (used by ikvm).
15350
15351 2004-11-17  Martin Baulig  <martin@ximian.com>
15352
15353         * class.c (mono_class_create_from_typedef): If a type parameter is
15354         inherited from an outer class, set its owner to that class.
15355
15356 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
15357
15358         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
15359           for (int*) written size. This fixes bug #69592.
15360
15361 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
15362
15363         * icall.c: Added IsAuthenticodePresnet internal call.
15364         * image.c|h: New function that check a MonoImage for an Authenticode
15365         signature in the certificate PE data directory.
15366         * security.c|h: New internal call to ask the runtime if an 
15367         Authenticode signature seems referenced in the PE header.
15368
15369 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
15370
15371         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
15372
15373         * reflection.c (mono_image_create_pefile): Free the assembly streams
15374         after writing out the assembly file.
15375
15376         * object.c (mono_runtime_run_main): Fix small memory leak.
15377
15378         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
15379         property access modifiers. Fixes #69389.
15380
15381 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
15382
15383         * domain.c, object.c, object-internals.h, domain-internals.h,
15384         object.h, marshal.c: keep dynamic code info per domain.
15385
15386 2004-11-15  Martin Baulig  <martin@ximian.com>
15387
15388         * class.c (mono_type_get_name_recurse): Put type arguments in
15389         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
15390         see bug #68387.
15391
15392 2004-11-15  Martin Baulig  <martin@ximian.com>
15393
15394         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
15395         (mono_class_setup_vtable): When computing `the_cname' for a
15396         generic instance, don't include the namespace since we'd otherwise
15397         add it twice.
15398
15399 2004-11-15  Martin Baulig  <martin@ximian.com>
15400
15401         * class.c (mono_class_create_generic): Changed return type to void.
15402         (mono_class_create_generic_2): New public function; setup
15403         `class->method', `class->field' and `class->interfaces' here
15404         instead of in mono_class_init().
15405
15406         * class.h (mono_class_create_generic): Moved to class-internals.h.
15407
15408 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
15409
15410         * reflection.c (mono_image_create_pefile): take a file HANDLE.
15411         rather than writing to memory, write to this file. Right now,
15412         we are just writting into a buffer, and copying that. However
15413         we can avoid the buffer later.
15414
15415         (mono_dynamic_stream_reset): new function
15416
15417         * icall.c, object-internals.h: update for the above.
15418
15419 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
15420
15421         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
15422         have been using gc'd memory. First it is slower, unlikely
15423         the comment in the source code said, secondly, it increases
15424         our footprint to do it in the gc.
15425
15426         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
15427         the method so that it does not have to copy to managed code.
15428
15429 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
15430
15431         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
15432
15433 2004-11-12  Martin Baulig  <martin@localhost>
15434
15435         * reflection.c (mono_image_create_token): Allow generic method
15436         definitions here, since they may appear in an `.override'; see
15437         gen-98/gen-99 for an example.
15438
15439 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
15440
15441         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
15442         #69365.
15443
15444         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
15445         descriptive.
15446
15447 2004-11-11  Martin Baulig  <martin@ximian.com>
15448
15449         * class.c (mono_class_setup_vtable): In an explicit interface
15450         implementation, the method name now includes the arity.
15451
15452 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
15453
15454         * object.c (mono_array_full_copy): Fix warning.
15455
15456 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
15457
15458         * appdomain.c: Removed look_for_method_by_name(). Use the new method
15459         mono_class_get_method_from_name() instead.
15460         
15461         * class-internals.h: Added two new types of wrappers. 
15462         Added MonoRemotingTarget enum. Added new trampoline function type, which
15463         takes an additional MonoRemotingTarget value as parameter, so it is
15464         possible to request a trampoline for a specific target.
15465         
15466         * class.c: Added new mono_class_get_method_from_name() method.
15467         
15468         * class.h: In MonoRemoteClass, we can have now to vtables, one for
15469         general remoting sinks and one specific for cross domain calls.
15470         
15471         * debug-helpers.c: Added new wrapper names.
15472         
15473         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
15474         of a remote class.
15475         
15476         * image.c: Porperly delete value objects form the remoting invoke hashtable.
15477         
15478         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
15479         with several other methods (mono_marshal_get_xappdomain_dispatch,
15480         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
15481         and others) can generate a fast remoting wrapper for cross domain calls.
15482         More information can be found in docs/remoting.
15483         Other changes: Removed mono_find_method_by_name, and used
15484         mono_class_get_method_from_name instead.
15485         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
15486         is stored in the remoting invoke hashtable.
15487         
15488         * marshal.h: published the new method for getting the xdomain wrapper,
15489         and also added a method for getting the adequate wrapper for a given
15490         method and target.
15491         
15492         * object-internals.h, object.c: Added a couple of methods for capying and
15493         cloning arrays.
15494         Modified mono_install_remoting_trampoline, which takes the new remoting
15495         trampoline that has a remoting target as parameter.
15496         mono_class_proxy_vtable now also takes a remoting target as parameter, and
15497         will return the most suitable vtable for the target.
15498         Added mono_remote_class_vtable, which returns the vtable of a remote class
15499         (which can be the normal remoting vtable or the xdomain vtable).
15500         
15501         * threads.c: the xdomain invoke and dispatch wrappers must also be
15502         protected against interruptions.
15503
15504 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15505
15506         * icall.c: use memmove in BlockCopyInternal when the source and
15507         destination arrays are the same.
15508
15509 2004-11-09  Martin Baulig  <martin@ximian.com>
15510
15511         * class-internals.h (MonoGenericContainer): Removed `method' and
15512         `signature', replaced them with `is_method' and `is_signature'
15513         flags.  Added `context'.
15514
15515         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
15516         instead of a `MonoGenericContainer *'.
15517
15518         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
15519         for dynamic type parameters.
15520         (mono_metadata_load_generic_params): Setup `container->context'.
15521
15522         * reflection.c (mono_reflection_setup_generic_class): Setup
15523         `tb->generic_container->context'.
15524         (do_mono_reflection_bind_generic_parameters): Use
15525         mono_class_inflate_generic_type() to correctly inflate types,
15526         rather than using our own hack just for MONO_TYPE_VAR.
15527
15528 2004-11-09  Martin Baulig  <martin@ximian.com>
15529
15530         * class.c (mono_class_inflate_generic_method): Small fix; don't
15531         crash here.
15532
15533         * icall.c
15534         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
15535         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
15536         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
15537         (ves_icall_Type_BindGenericParameters): Likewise.
15538         (ves_icall_Type_get_IsGenericInstance): Likewise.
15539         (ves_icall_Type_GetGenericParameterPosition): Likewise.
15540         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
15541         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
15542         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
15543
15544 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
15545
15546         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
15547         assembly versions and public key tokens. Fixes #69113.
15548
15549 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
15550
15551         * metadata.c: fix bug introduced with the type cache changes
15552         on 2004-11-06.
15553
15554 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
15555
15556         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
15557         the MonoClass pointer instead of the token in exception clauses.
15558         * reflection.c: updates for the above and make the code not depend
15559         on the structure of MonoExceptionClause.
15560
15561 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
15562
15563         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15564         Add support for dynamic assemblies. Fixes #69114.
15565
15566         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
15567
15568 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
15569
15570         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
15571         since most only those methods use it. the code member of
15572         MonoMethodPInvoke was dead, so that can be removed too. Also,
15573         remove inline_count (again, not used), and move slot so that it
15574         can share bits with some other flags. This saves 8 bytes in the
15575         structure and gives us about 50 kb back for mcs helloworld.cs
15576
15577         * *.[ch]: Do naming changes for the above.
15578
15579         * loader.c (mono_method_get_header): Lazily init the header
15580         on first access.
15581         (mono_get_method_from_token): don't init the header here
15582         (mono_free_method): the header may never be allocated
15583
15584         Overall, this saves 150 kb of unmanaged allocations
15585         for mcs helloworld.cs. That accounts for 10% of the unmanaged
15586         memory at runtime.
15587         
15588         * loader.c, loader.h (mono_method_get_header): new accessor.
15589
15590         * *.[ch]: use the above method. Prepares us to lazily load
15591         the header.
15592
15593         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
15594         three warnings, which are actual bugs (see 69206).
15595
15596         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
15597         unused. Saves a cool 4 bytes / method.
15598
15599 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
15600
15601         * metadata.c (builtin_types): Add types for System.Object here.
15602         (mono_metadata_parse_type_full): Cache MonoType*'s that are
15603         for a class or valuetype from klass->this_arg or klass->byval_arg.
15604
15605         On mcs for a hello world, this gets us down from 21836 MonoType's
15606         to 14560.
15607
15608         (mono_metadata_free_type): Account for the above change.
15609
15610 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
15611
15612         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
15613         exception instead of asserting if name is null.
15614         (ves_icall_System_AppDomain_GetData): Ditto.
15615
15616 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
15617
15618         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
15619         EnumBuilder.
15620
15621         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
15622         Return NULL when the domain does not have entry_assembly set.
15623
15624         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
15625         Add a 'resource_modules' argument.
15626         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
15627
15628         * reflection.c (mono_reflection_create_runtime_class): Move setting
15629         of wastypebuilder here, so mono_get_type_object () returns a MonoType
15630         for enums too.
15631
15632         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
15633         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
15634         Throw an ArgumentNullException if 'ptr' is null.
15635
15636         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
15637         assemblies here. Fixes #69020.
15638
15639 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
15640
15641         * reflection.c (build_compressed_metadata): Fix the previous patch for
15642         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
15643         the stack.
15644
15645 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
15646
15647         * assembly.c (mono_assembly_names_equal): Allow a match if one of
15648         the cultures is false. Fixes #69090.
15649
15650         * reflection.c (build_compressed_metadata): Fix invalid memory read 
15651         detected by valgrind.
15652         
15653         * reflection.c (mono_reflection_get_type): Avoid triggering a 
15654         TypeResolve multiple times for the same type. Fixes #65577.
15655
15656 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
15657
15658         * marshal.c: Avoid using ldftn to call managed functions. It is
15659         much slower than just a call.
15660
15661         * reflection.c (mono_module_get_object): free the basename we
15662         allocate here from glib.
15663         
15664         * reflection.c (ensure_runtime_vtable): make sure to free
15665         overrides.  Also, we were allocating an array of MonoMethod not an
15666         array of MonoMethod*.
15667
15668         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
15669
15670         * image.c (mono_image_close): free image->guid here.
15671
15672 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
15673
15674         * reflection.c: Fix some spec conformance issues with the PE file
15675         structures so mcs compiled apps run on the Net 2.0 beta.
15676
15677 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
15678
15679         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
15680         Implement this. Fixes #67264.
15681
15682         * debug-helpers.h debug-helpers.c marshal.c: Move 
15683         mono_find_method_by_name to debug-helpers.c.
15684
15685 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
15686
15687         * object.c (mono_release_type_locks): type_initialization_hash is
15688         a GHashTable.
15689
15690         * reflection.c object.c object-internals.h: Fix warnings.
15691
15692         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
15693         without accessors. Fixes #61561.
15694
15695         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
15696         application base from the root domain if not set. Fixes #65641.
15697         (mono_runtime_init): Fix warning.
15698
15699 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15700
15701         * appdomain.c: call mono_thread_pool_init.
15702         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
15703         of worker threads based on the number of CPUs and the environment
15704         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
15705         for non-windows (windows) systems.
15706
15707 2004-10-27  Chris Toshok  <toshok@ximian.com>
15708
15709         * mono-debug-debugger.c (write_class): don't call mono_class_init
15710         here, as even with the check for (!klass->init_pending), we get
15711         into a situation where we're hitting cycles in class
15712         initialization.  Fixes #68816.
15713
15714 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
15715
15716         * image.c: Avoid overwriting values in the loaded_images_hash when an
15717         assembly is loaded multiple times. Fixes #61152.
15718
15719         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
15720         so multiple satellite assemblies for the same name can be loaded.
15721         Fixes #68259.
15722
15723         * mono_domain_assembly_preload: Actually return the loaded assembly, 
15724         not NULL.
15725
15726         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
15727         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
15728
15729         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
15730         pending finalizers are not invoked after the appdomain has been 
15731         unloaded. Fixes #67862.
15732
15733 2004-10-22  Martin Baulig  <martin@ximian.com>
15734
15735         * mono-debug-debugger.c
15736         (mono_debugger_runtime_invoke): Don't box valuetypes.
15737
15738 2004-10-22  Chris Toshok  <toshok@ximian.com>
15739
15740         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
15741         don't hide private methods.
15742
15743 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
15744
15745         * icall.c: Allows the runtime to "share" (when known) the public key
15746         token of an assembly. This avoid the need to recalculate the token 
15747         (from the public key) in managed code.
15748
15749 2004-10-21  Chris Toshok  <toshok@ximian.com>
15750
15751         * debug-helpers.c (append_class_name): argh, revert last patch.
15752         
15753 2004-10-21  Chris Toshok  <toshok@ximian.com>
15754
15755         * debug-helpers.c (append_class_name): use '+' as the delimiter,
15756         not '/', so that it matches what the debugger uses to look up
15757         methods.
15758
15759 2004-10-21  Martin Baulig  <martin@ximian.com>
15760
15761         * mono-debug-debugger.c (mono_debugger_throw_exception): New
15762         public method; this is called each time an exception is thrown and
15763         allows the debugger to use exception catch points.
15764
15765 2004-10-21  Martin Baulig  <martin@ximian.com>
15766
15767         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
15768         the stack pointer and the exception object in some struct and pass
15769         that to the debugger.
15770
15771 2004-10-21  Chris Toshok  <toshok@ximian.com>
15772
15773         * mono-debug-debugger.c (do_write_class): add instance/static
15774         event support.  We don't expose "raise" or "other" yet.
15775         (event_is_static): new method.
15776
15777 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
15778
15779         * mono-debug-debugger.c
15780         (mono_debugger_handle_exception): Remove
15781         bogus return value for fussy compilers.
15782
15783 2004-10-20  Martin Baulig  <martin@ximian.com>
15784
15785         * mono-debug-debugger.c
15786         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
15787         (mono_debugger_handled_exception): Likewise.
15788
15789 2004-10-20  Martin Baulig  <martin@ximian.com>
15790
15791         * mono-debug-debugger.h (MonoDebuggerEvent): Added
15792         MONO_DEBUGGER_EVENT_EXCEPTION.
15793
15794         * mono-debug-debugger.c (mono_debugger_handle_exception): New
15795         public function to send the debugger a notification for an
15796         exception and inform it about a catch/finally clause.
15797
15798 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
15799
15800         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
15801         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
15802         fix 2.95 build. 
15803
15804         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
15805
15806 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
15807
15808         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
15809         marshalled as [In,Out]. Fixes #58325.
15810
15811 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
15812
15813         * reflection.c (mono_method_body_get_object): Implement some fields.
15814
15815 2004-10-12  Martin Baulig  <martin@ximian.com>
15816
15817         * reflection.c (mono_reflection_bind_generic_parameters): Small
15818         fix, correctly retrieve our parent from a generic instance.
15819
15820 2004-10-12  Martin Baulig  <martin@ximian.com>
15821
15822         * metadata.c (mono_metadata_generic_param_equal): We always have
15823         an owner.
15824
15825         * class.c
15826         (mono_class_from_generic_parameter): We need to have an owner.
15827         (my_mono_class_from_generic_parameter): Likewise.
15828
15829         * reflection.c (mono_reflection_setup_generic_class): Renamed to
15830         mono_reflection_create_generic_class() and added a new
15831         mono_reflection_setup_generic_class().  
15832         (mono_reflection_initialize_generic_param): If we're a nested
15833         generic type and inherited from the containing class, set our
15834         owner to the outer class.
15835
15836 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
15837
15838         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
15839
15840         * reflection.c (mono_method_body_get_object): New function to create
15841         a MethodBody object.
15842
15843         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
15844
15845 2004-10-11  Martin Baulig  <martin@ximian.com>
15846
15847         * metadata.c (_mono_metadata_type_equal): Renamed to
15848         do_mono_metadata_type_equal() and made static.
15849
15850 2004-10-11  Martin Baulig  <martin@ximian.com>
15851
15852         * appdomain.c: Bump corlib version number to 28.
15853
15854 2004-10-10  Martin Baulig  <martin@ximian.com>
15855
15856         * class-internals.h
15857         (MonoGenericInst): Added `MonoGenericContainer *container'.
15858         (MonoGenericMethod): Likewise.
15859         (MonoGenericContext): Likewise.
15860         (MonoGenericParam): Added `MonoGenericContainer *owner'.
15861
15862         * metadata.c
15863         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
15864         (do_mono_metadata_parse_generic_inst): Likewise.
15865         (mono_metadata_parse_type_full): New public method.  This is the actual
15866         mono_metadata_parse_type() implementation - with an additional
15867         `MonoGenericContainer *' argument.
15868         (mono_metadata_parse_array_full): Likewise.
15869         (mono_metadata_parse_signature_full): Likewise.
15870         (mono_metadata_parse_method_signature_full): Likewise.
15871         (mono_metadata_parse_mh_full): Likewise.
15872         (mono_type_create_from_typespec): Likewise.
15873         (mono_metadata_interfaces_from_typedef_full): New public method;
15874         this is similar to the other _full() methods, but we take a
15875         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
15876         (mono_metadata_parse_generic_param): Take an additional
15877         `MonoGenericContainer *' argument and lookup the MonoGenericParam
15878         from that container.
15879         (mono_metadata_generic_param_equal): New static method to compare
15880         two type parameters.
15881         (_mono_metadata_type_equal): New static method; takes an
15882         additional `gboolean signature_only' argument - if true, we don't
15883         compare the owners of generic parameters.
15884         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
15885         with a TRUE argument - do a signature-only comparision.
15886
15887         * loader.c: Use the new _full() methods and pass the
15888         MonoGenericContainer to them.
15889
15890         * object-internals.h (MonoReflectionTypeBuilder): Added
15891         `MonoGenericContainer *generic_container' field.
15892         (MonoReflectionMethodBuilder): Likewise.
15893
15894 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
15895
15896         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
15897         case initial images of dynamic assemblies.
15898
15899         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
15900
15901         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
15902
15903         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
15904         length of event->other array.
15905         (typebuilder_setup_events): Ditto.
15906
15907         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
15908         'assembly_by_name' and add an 'assemblies' list.
15909
15910         * assembly.h assembly.c: Add a new search hook for determining whenever
15911         an assembly is already loaded. Use this instead of searching in the
15912         loaded_assemblies list.
15913
15914         * domain.c appdomain.c: Implement the new search hook so loaded 
15915         assemblies are now scoped by appdomain. Fixes #67727.
15916
15917 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
15918
15919         * threads.c (mono_thread_attach): Initialize synch_lock field so
15920         mono_thread_detach works again.
15921
15922         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
15923         'lib' too. Fixes #63130.
15924
15925 2004-10-06  Jackson Harper  <jackson@ximian.com>
15926
15927         * culture-info-tables.h: regenerated.
15928
15929 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
15930
15931         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
15932         implemented by other interfaces in the result. Fixes #65764.
15933         
15934         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
15935         Handle unloadable modules without crashing.
15936
15937         * image.c (load_modules): Revert the previous patch since modules must
15938         have a fixed index inside the array.
15939         
15940         * image.c (load_modules): Don't include native modules in the modules
15941         array.
15942
15943 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
15944
15945         * reflection.h: Add param_defaults field.
15946
15947         * reflection.c: Add support for parameter defaults in dynamic methods.
15948         Fixes #64595.
15949
15950         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
15951         an empty string when a type has no namespace. Fixes #64230.
15952
15953 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
15954
15955         * tabledefs.h: Added "internal" security actions to support non-CAS
15956         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
15957         Note: they do not seems to be used anymore in 2.0 (new metadata format)
15958
15959 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
15960
15961         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
15962         constructor of abstract class. Fixes #61689.
15963
15964 2004-10-04  Martin Baulig  <martin@ximian.com>
15965
15966         * class-internals.h (MonoGenericContainer): New type.
15967         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
15968         `MonoGenericContainer *generic_container'.
15969         (MonoClass): Replaced `gen_params' and `num_gen_params' with
15970         `MonoGenericContainer *generic_container'.
15971
15972         * metadata.c (mono_metadata_load_generic_params): Return a
15973         `MonoGenericContainer *' instead of a `MonoGenericParam *';
15974         removed the `num' argument.
15975
15976 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
15977
15978         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
15979         for dynamic images.
15980
15981         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
15982         machine fields.
15983
15984         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
15985
15986         * reflection.c: Save pe_kind and machine values into the generated
15987         image file.
15988
15989         * appdomain.c: Bump corlib version number.
15990
15991         * object-internals.h: Reorganize layout of LocalBuilder.
15992
15993         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
15994         New helper function.
15995
15996         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
15997         created MonoType for dynamic types. Fixes #66180.
15998
15999 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
16000
16001         * threadpool.c: the ares hashtable needs a critical section around it.
16002         this prevents some nasty segfaults
16003
16004 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
16005
16006         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
16007         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
16008         bug 67324).
16009         
16010 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16011
16012         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
16013         
16014 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
16015
16016         * image.c: Always canonicalize image file names, to avoid loading
16017         the same assembly twice when referenced using a relative path.
16018
16019 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
16020
16021         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
16022
16023         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
16024
16025         * marshal.c: Fix warnings.
16026
16027 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
16028
16029         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
16030         attempting to marshal the delegate_trampoline as the method_addr.
16031         This patch has a static hashtable of marshalled delegates so that 
16032         we can map delegate_trampoline addresses back to delegates.  This
16033         allows a delegate passed to managed code to be passed back into native
16034         code.  Fixes #67039
16035
16036 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16037
16038         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
16039
16040         * reflection.c (method_encode_code): Align method headers properly.
16041         Fixes #66025.
16042
16043 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16044
16045         * marshal.c: In the runtime invoke wrapper, reset the abort
16046         exception if it is cached. This avoids the automatic rethrowal of 
16047         the exception after the catch of the wrapper. Also check for pending
16048         interruptions before calling the managed method. This is done using
16049         the new method emit_thread_force_interrupt_checkpoint, since the
16050         normal checkpoint method is ignored when running the invoke wrapper.
16051         * object.c: If the abort exception is rethrown, set the abort_exc
16052         field of the thread, so it will be rethrown aftere every catch.
16053         * threadpool.c: Only run an interruption checkpoint if what has been
16054         requested is a stop of the thread (aborts will be ignored).
16055         * threads.c: By default, a thread will now never be interrumped while
16056         running the runtime invoke wrapper (this ensures that runtime_invoke
16057         will always return to the caller if an exception pointer is provided).
16058         There is a new special method mono_thread_force_interruption_checkpoint()
16059         to force an interruption checkpoint even if running a protected
16060         wrapper, which is used by the same runtime invoke wrapper to do a check
16061         at a safe point.
16062
16063 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
16064
16065         * object.c, object-internals.h: Implemented mono_release_type_locks,
16066         which releases the cctor locks held by a thread.
16067         * threads.c, threads.h: In thread_cleanup, release cctor locks held
16068         by a thread. Added mono_thread_exit() method to be used to safely stop
16069         a thread.
16070
16071 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16072
16073         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
16074         Move null check before dereference.  Avoid indexing beyond the end
16075         of the 'modules' array.
16076
16077 2004-09-28  Raja R Harinath  <rharinath@novell.com>
16078
16079         * metadata-internals.h (MonoImage): Add module_count field.
16080         * image.c (load_modules): Set image->module_count.
16081         (mono_image_load_file_for_image): Use image->module_count.
16082         * reflection.c (mono_image_load_module): Append to image->modules array 
16083         of dynamic assembly.
16084         (mono_module_get_object): Fix loop to actually increment index.
16085         Use image->module_count.
16086         * assembly.c (mono_assembly_load_references): Use image->module_count.
16087         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
16088         Likewise.
16089
16090 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
16091
16092         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
16093         Avoid assert on generic types.
16094
16095 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
16096
16097         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
16098
16099         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
16100
16101         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
16102         function to convert a MarshalSpec structure to its managed counterpart.
16103
16104         * reflection.c: Fix warnings.
16105         
16106         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
16107         field.
16108
16109         * icall.c (mono_create_icall_signature): Fix build.
16110
16111 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
16112
16113         * icall.c: Add MakePointType icall.
16114
16115         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
16116         warnings.
16117
16118 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16119
16120         * threadpool.c: reuse allocated slots in the queue.
16121
16122 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
16123
16124         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
16125
16126         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
16127
16128         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
16129         previous change.
16130
16131         * tabledefs.h: Add constants for pinvoke attributes BestFit and
16132         ThrowOnUnmappableChar.
16133
16134         * icall.c (ves_icall_Type_GetPacking): New icall.
16135
16136 2004-09-24  Martin Baulig  <martin@ximian.com>
16137
16138         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
16139
16140 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16141
16142         * appdomain.c:
16143         (mono_domain_set): allow setting a domain that is being unloaded.
16144         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
16145         being unloaded.
16146
16147 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16148
16149         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
16150         the GetCustomAttributes icall.
16151
16152 2004-09-23  Martin Baulig  <martin@ximian.com>
16153
16154         * object-internals.h (MonoReflectionGenericParam): Replaced
16155         'has_ctor_constraint', `has_reference_type' and `has_value_type'
16156         with `guint32 attrs'.
16157
16158 2004-09-23  Martin Baulig  <martin@ximian.com>
16159
16160         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
16161
16162 2004-09-23  Martin Baulig  <martin@ximian.com>
16163
16164         * object-internals.h (GenericParameterAttributes): New enum.
16165
16166 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
16167
16168         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
16169         
16170         * class.c (init_events): Fill out event->other field.
16171
16172         * class.c: Fix warnings.
16173
16174         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
16175
16176 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
16177
16178         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
16179         walk which doesn't supply the IL offset.
16180
16181 2004-09-22  Martin Baulig  <martin@ximian.com>
16182
16183         * reflection.c (mono_reflection_setup_internal_class): If we're
16184         System.ValueType, System.Object or System.Enum, set
16185         `klass->instance_size' and create the vtable.
16186         (mono_reflection_create_internal_class): If we're an enum type,
16187         get the base class from our current corlib.
16188
16189 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
16190
16191         * reflection.h (MonoResolveTokenError): New type.
16192
16193         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
16194         icall.
16195
16196         * icall.c: Add an 'error' argument to the ResolveToken icalls.
16197
16198 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
16199
16200         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
16201         Support also calling constructors, but only for already allocated objects.
16202
16203 2004-09-17  Geoff Norton <gnorton@customerdna.com>
16204
16205         * reflection.c (type_get_qualified_name): If the klass is null
16206         return the typename to avoid a NullRefEx.
16207         (encode_cattr_value): Get the qualified name of the boxed type,
16208         not the underlying enumtype.  Fixes #62984.
16209
16210 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
16211
16212         * marshal.c: Fix problems with previous checkin.
16213
16214 2004-09-21    <vargaz@freemail.hu>
16215
16216         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
16217         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
16218
16219         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
16220
16221 2004-09-21  Geoff Norton <gnorton@customerdna.com>
16222
16223         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
16224         should only return a type for pointers, arrays, and passbyref types.
16225         Fixes bug #63841.
16226
16227 2004-09-21  Martin Baulig  <martin@ximian.com>
16228
16229         * domain.c (mono_debugger_check_runtime_version): New public
16230         function.
16231
16232         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
16233
16234 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
16235
16236         * reflection.c: Added missing sort to the declarative security 
16237         attributes table. MS implementation stops seeing the attributes if the
16238         token number regress in the table (as shown by ildasm and permview).
16239
16240 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
16241
16242         * object-internals.h (MonoReflectionModule): Add 'token' field.
16243         
16244         * reflection.c (mono_reflection_get_token): Add support for Module
16245         and Assembly.
16246         (mono_module_get_object): Set 'token' field.
16247         (mono_module_file_get_object): Set 'token' field.
16248
16249         * icall.c: Add new Assembly and Module icalls.
16250
16251         * appdomain.c: Bump corlib version.
16252
16253 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
16254
16255         * loader.h loader.c class.h class.c: Add helper functions for obtaining
16256         tokens of metadata objects.
16257
16258         * reflection.h reflection.c (mono_reflection_get_token): New function
16259         to obtain the token of a metadata object.
16260
16261         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
16262
16263 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
16264
16265         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
16266         
16267         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
16268
16269 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
16270
16271         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
16272         * object-internals.h: Added 3 MonoArray* members to MonoReflection
16273         AssemblyBuilder to access the permissions set in the class lib.
16274         * reflection.c: Added security attributes encoding step in 
16275         mono_image_build_metadata.
16276         * tabledefs.h: Added new security actions defined in 2.0:
16277         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
16278
16279 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16280
16281         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
16282         macro parameter.
16283
16284 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
16285  
16286         * locales.c: nullify the ICU_collator member of CompareInfo when it is
16287           finalized. There where random SIGSEVs at program termination, when
16288           an object being finalized was trying to do a string comparison and
16289           the current culture was already finalized.
16290  
16291 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16292
16293         * threads.c: call thread_cleanup before finishing the thread if we get
16294         there.
16295
16296 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
16299         assemblies from the parent. Fixes #65665.
16300
16301 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
16302
16303         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
16304         modifiers.
16305
16306 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
16307
16308         * reflection.h: add prototype for mono_get_dbnull_object
16309         * reflection.c: add prototypes for get_default_param_value_blobs 
16310         and mono_get_object_from_blob for fussier compilers
16311
16312 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
16313  
16314         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
16315         false deadlock checks in class initialization.
16316  
16317 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
16318
16319         * image.c (mono_image_addref): Fix comment.
16320
16321         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
16322         possible.
16323
16324 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
16325
16326         * reflection.c (mono_param_get_objects): Modified to return
16327         ParameterInfo.DefaultValue object.
16328
16329         (get_default_param_value_blobs):
16330         (mono_get_object_from_blob):
16331         (mono_get_dbnull_object): New helper routines. 
16332
16333         * object.c (mono_get_constant_value_from_blob): New helper routine
16334         carved out from get_default_field_value ()
16335
16336         * object-internals.h (mono_get_constant_value_from_blob): Added
16337         function declaration.
16338
16339 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
16342         referenced assemblies. Fixes #62135.
16343
16344         * exception.h exception.c (mono_get_exception_file_not_found2): New
16345         helper function.
16346
16347 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
16348
16349         * class.h class.c: Add mono_type_get_underlying_type ().
16350
16351 2004-09-09  Geoff Norton <gnorton@customerndna.com>
16352
16353         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
16354         Fix GetTypes() to support dynamically created assemblies.
16355
16356 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
16357
16358         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
16359         
16360         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
16361         previous patch.
16362
16363         * reflection.h reflection.c loader.c: Allow dynamic construction of
16364         pinvoke methods. Fixes #65571.
16365         
16366         * reflection.c (mono_reflection_get_type): Revert previous change since
16367         it causes regressions.
16368
16369 2004-09-08  Martin Baulig  <martin@ximian.com>
16370
16371         * class.c (class_compute_field_layout): Don't call
16372         mono_class_layout_fields() for open generic instances.
16373
16374 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
16375         * threads.c appdomain.c: fix typo in GC macro
16376
16377 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16378
16379         * threads.c: don't call mono_thread_detach() in start_wrapper(),
16380         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
16381
16382 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
16383
16384         * image.c (mono_image_close): Applied patch from 
16385         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
16386         assembly is loaded multiple times from data.
16387         
16388         * image.c (mono_image_open): Fix warning.
16389
16390 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16391
16392         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
16393         once. Fixes #58334.
16394         
16395         * reflection.c (mono_reflection_create_runtime_class): Initialize
16396         klass->nested_classes. Fixes #61224.
16397
16398 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
16399
16400         * threads.c: sched_yield() on exit, to allow threads to quit.
16401
16402 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16403
16404         * object.c (mono_unhandled_exception): Remove leftover debug code.
16405
16406 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
16407
16408         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
16409
16410 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
16411
16412         * marshal.c (emit_marshal_array): Really null terminate string arrays.
16413         
16414         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
16415
16416 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16417
16418         * marshal.c (emit_marshal_array): Null terminate string arrays.
16419         
16420         * marshal.c (raise_auto_layout_exception): Fix warning.
16421
16422         * reflection.c (mono_param_get_objects): Initialize the default value
16423         with DBNull.Value, not null. Fixes #62123.
16424
16425 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
16426
16427         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
16428         throw an exception with a cute explanation.
16429
16430 2004-09-06  Dick Porter  <dick@ximian.com>
16431
16432         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
16433         Close the new process's thread handle, as we don't use it.  The
16434         handle stays around forever otherwise.
16435
16436 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16437
16438         * object.c (arith_overflow): Fix warning.
16439
16440         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
16441         calling conventions in method refs. Fixes #65352.
16442
16443         * reflection.c: Fix warnings.
16444
16445 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16446
16447         * icall.c: Add a new icall for Array.Clear
16448
16449 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
16450
16451         * object.c: When allocating an array, we have to throw
16452         an overflow exception if any of the lengths are < 0.
16453
16454 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
16455
16456         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
16457         properly. Also move implementation of string array marshalling to 
16458         managed code. Fixes #42316.
16459
16460 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16461
16462         * assembly.c: provide more information when loading an assembly fails.
16463
16464 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16465
16466         * filewatcher.c: don't expect the development fam package to be
16467         installed.
16468
16469 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
16470
16471         * marshal.c: Make a copy of the signature cookie since it will be
16472         freed by the caller.
16473         
16474         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
16475
16476         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
16477
16478         * metadata.c (mono_metadata_free_marshal_spec): New function to free
16479         marshal specs.
16480
16481         * marshal.c: More refactoring.
16482         
16483         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
16484         smaller functions.
16485
16486 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
16487
16488         * object.c: In mono_message_invoke, fill the output parameter array after
16489           calling the managed method (it was done before the call). This fixes
16490           bug #59299.
16491
16492 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16493
16494         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
16495         as well.
16496
16497 2004-09-02  Martin Baulig  <martin@ximian.com>
16498
16499         * class.c (mono_class_instance_size): Don't allow generic type
16500         definitions or open generic instances.
16501         (mono_class_array_element_size): If we're a value type, call
16502         mono_class_instance_size() on the original class.
16503
16504         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
16505         handle generic instances.
16506
16507         * mono-debug-debugger.c (write_type): Handle generic instances
16508         like classes.
16509
16510 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
16511
16512         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
16513         the allocation request fails. Fixes #65089.
16514
16515         * object.c (mono_runtime_free_method): Do not call mono_free_method.
16516         
16517         * object.c (mono_runtime_free_method): New function to free a dynamic
16518         method.
16519
16520         * marshal.c (mono_delegate_free_ftnptr): New function to free the
16521         delegate trampoline.
16522
16523         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
16524         with hasthis as dynamic,
16525
16526         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
16527
16528         * domain.c (mono_jit_info_table_remove): New function to remove an
16529         entry from the jit info table.
16530
16531         * class-internals.h (MonoMethod): Add 'dynamic' field.
16532
16533         * loader.c: Fix warnings.
16534
16535 2004-09-01  Martin Baulig  <martin@ximian.com>
16536
16537         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
16538         instead of mono_debugger_lock() because the latter one is a no-op
16539         unless running in the debugger.
16540
16541 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16542
16543         * class.c (class_compute_field_layout): Classes with auto-layout or
16544         reference fields are not blittable.
16545         
16546 2004-09-01  Dick Porter  <dick@ximian.com>
16547
16548         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
16549         mono_image_get_filename() to get the assembly location.
16550
16551         * icall.c:
16552         * metadata.h: Fix compile warnings
16553
16554 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
16555
16556         * class.c (class_compute_field_layout): System.Object is blittable.
16557
16558         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
16559         as in/out. Fixes #59909.
16560
16561 2004-09-01  Martin Baulig  <martin@ximian.com>
16562
16563         * metadata.h (MONO_TYPE_ISREFERENCE): Call
16564         mono_metadata_generic_inst_is_valuetype() if we're a generic
16565         instance to check whether our underlying type is a reference type.
16566
16567 2004-09-01  Martin Baulig  <martin@ximian.com>
16568
16569         * metadata.c (mono_type_size): If we're a generic instance, call
16570         mono_class_value_size() for value types.
16571
16572 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
16573
16574         * marshal.c: Implement more custom marshalling functionality. Fixes
16575         #64915.
16576
16577 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
16578
16579         * mono-debug.c, debug-mono-symfile.c: add some locking love.
16580
16581 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
16582
16583         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
16584
16585         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
16586
16587         * icall.c: Fix some warnings.
16588
16589         * threads.c (abort_appdomain_thread): Fix unref errors.
16590         (mono_thread_current): Fix THREAD_DEBUG define.
16591
16592 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
16593
16594         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
16595
16596         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
16597
16598 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
16599
16600         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
16601         string arrays.
16602
16603 2004-08-28  Martin Baulig  <martin@ximian.com>
16604
16605         * metadata.c
16606         (mono_metadata_generic_inst_is_valuetype): New public function.
16607
16608         * metadata.h (MONO_TYPE_ISSTRUCT): Call
16609         mono_metadata_generic_inst_is_valuetype() if we're a generic
16610         instance to check whether our underlying type is a valuetype.
16611
16612 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
16613
16614         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
16615         #63768.
16616
16617 2004-08-25  Martin Baulig  <martin@ximian.com>
16618
16619         * loader.c (mono_get_method_from_token): Abstract methods can also
16620         be generic and thus have type parameters.
16621
16622         * metadata-internals.h
16623         (MonoDynamicImage): Added `GPtrArray *gen_params'.
16624
16625         * reflection.c (mono_image_get_generic_param_info): Don't create a
16626         metadata row, just add an entry to the `gen_params' array.
16627         (build_compressed_metadata): Sort the `gen_params' array and then
16628         actually create the metadata.
16629
16630 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16631
16632         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
16633
16634 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
16635
16636         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
16637
16638 2004-08-24  Martin Baulig  <martin@ximian.com>
16639
16640         * class.cs (mono_class_is_subclass_of): Like an interface, a
16641         generic instance also derives from System.Object.
16642
16643 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
16644
16645         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
16646         custom modifiers to be in any order. Fixes #61990.
16647
16648 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
16649
16650         * object.c: Register mono_object_new_fast icall.
16651         
16652         * object.c (mono_class_get_allocation_ftn): Return to calling
16653         mono_object_new_fast, since it seems faster to compute the object 
16654         size in unmanaged code than passing it as a parameter.
16655
16656         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
16657
16658         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
16659         this function with Boehm as the oom handler, so we don't have to check
16660         the result of GC_malloc.
16661
16662         * object.c: Remove checks for oom.
16663
16664         * object.h object.c (mono_class_get_allocation_ftn): New function to
16665         return the icall which can be used to allocate an instance of a given
16666         class. 
16667
16668         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
16669
16670         * class-internals.h: Add 'enabled' field.
16671
16672 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
16673
16674         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
16675
16676 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
16677         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
16678         value 0x0010.
16679
16680 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
16681
16682         * appdomain.c: use the Tls function for appdomain too,
16683         at Zoltan's request. Actually return in mono_context_get
16684
16685         * appdomain.c, profiler.c, threads.c: use __thread
16686
16687 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
16688
16689         * appdomain.c threads.c: Call GC_CreateThread on windows.
16690
16691         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
16692         multiple libraries since this don't work on windows.
16693
16694 2004-08-18  Martin Baulig  <martin@ximian.com>
16695
16696         * class-internals.h
16697         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
16698         MonoMethodHeader.
16699
16700         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
16701         MonoMethodNormal since we also need it for abstract and interface
16702         methods.
16703
16704         * reflection.c
16705         (build_compressed_metadata): Sort the GenericParam table.
16706         (mono_image_create_token): Added `gboolean create_methodspec'
16707         argument; this is false when generating a MethodImpl token.
16708         (reflection_methodbuilder_to_mono_method): Abstract and interface
16709         methods may also have generic parameters.
16710
16711 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
16712
16713         * appdomain.c: thread local alloc
16714
16715 2004-08-17  Martin Baulig  <martin@ximian.com>
16716
16717         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
16718
16719         * icall.c
16720         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
16721         argument.
16722
16723         * class.c (mono_type_get_full_name): New public function.
16724         (mono_type_get_name): Don't include the type arguments.
16725
16726 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
16727
16728         * Makefile.am: Build static versions of libmetadata and libmonoruntime
16729         for inclusion into the mono executable.
16730
16731 2004-08-16  Martin Baulig  <martin@ximian.com>
16732
16733         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
16734         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
16735
16736 2004-08-14  Martin Baulig  <martin@ximian.com>
16737
16738         * class.c (dup_type): Also copy the `byref' field.
16739
16740 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
16741
16742         * reflection.c (create_dynamic_mono_image): Revert the last change 
16743         since it breaks bootstrap.
16744
16745 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
16746
16747         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
16748
16749         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
16750         not free them with g_free.
16751
16752 2004-08-11  Martin Baulig  <martin@ximian.com>
16753
16754         * reflection.c (mono_reflection_setup_internal_class): Also call
16755         mono_class_setup_mono_type() if we already have a `tb->type.type'.
16756
16757 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
16758
16759         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
16760         called during default (first) AppDomain creation. Keep track of
16761         Evidence when loading assemblies.
16762
16763 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
16764
16765         * opcodes.c, opcodes.h: reduce runtime relocations.
16766
16767 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
16768
16769         * culture-info.h, locales.c: fixes and chages to sue the new
16770         optimized format of the locale data.
16771         * culture-info-tables.h: regenerated.
16772
16773 2004-08-06  Geoff Norton <gnorton@customerdna.com>
16774         
16775         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
16776
16777 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
16778
16779         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
16780         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
16781         * domain-internals.h: icall declaration.
16782         * icall.c: icall registration.
16783         * object-internals.h: New fields in MonoAssembly for CAS.
16784
16785 2004-08-05  Duncan Mak  <duncan@ximian.com>
16786
16787         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
16788         CEE_LDELEM_ANY.
16789
16790 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
16791
16792         * reflection.c: fix to deal with object[] arrays in custom ctors
16793         (bug #62550).
16794
16795 2004-08-05  Martin Baulig  <martin@ximian.com>
16796
16797         * class.c (mono_class_array_element_size): Added support for
16798         generic instances and correctly handle "recursive" types.
16799
16800 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
16801
16802         * assembly.c: Fix warnings.
16803
16804 2004-08-04  Martin Baulig  <martin@ximian.com>
16805
16806         * class.c
16807         (mono_type_get_name_recurse): Added `gboolean include_arity'
16808         argument specifying whether or not we should include the generic
16809         arity in the type name.
16810         (_mono_type_get_name): New static function.
16811         (mono_class_setup_vtable): If we're a generic instance, don't
16812         include the generic arity in the names of explicit method
16813         implementations.        
16814
16815 2004-08-03  Martin Baulig  <martin@ximian.com>
16816
16817         * class.c (mono_type_get_name_recurse): Enclose the generic type
16818         arguments in `<', '>'.
16819
16820 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
16821
16822         * gc.c: make GC warning messages use the trace API, they are just
16823         noise to most of the users.
16824
16825 2004-08-03  Martin Baulig  <martin@ximian.com>
16826
16827         * debug-mono-symfile.c (read_string): Correctly read the string.
16828
16829 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
16830
16831         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
16832         
16833         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
16834         icalls.
16835         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
16836
16837 2004-07-30  Martin Baulig  <martin@ximian.com>
16838
16839         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
16840         Reflect latest symbol writer changes.   
16841
16842 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
16843
16844         * object.c: always create an object if null is passed
16845         to Invoke() where a valuetype is expected.
16846
16847 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
16848
16849         * marshal.c (mono_marshal_init): make managed
16850         signatures match native ones better for 64bits.
16851
16852 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
16853
16854         * appdomain.c: hack to build correctly the private bin path on windows.
16855         Fixes bug #61991.
16856
16857 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
16858
16859         * assembly.c: Load mscorlib from the correct framework directory
16860           (mono/<version>/mscorlib.dll).
16861         * appdomain.h: Added prototypes for new functions.
16862         * internals.h: Added some prototypes.
16863         * domain.c: When initializing the runtime, get from the executable and
16864           the configuration files the runtime version that the app supports.
16865           Added support methods for reading app.exe.config. Added list of versions
16866           supported by the JIT. Added two new methods: mono_init_from_assembly,
16867           which initializes the runtime and determines the required version from
16868           the provided exe file, and mono_init_version, which initializes
16869           the runtime using the provided version.
16870         * icall.c: Get machine.config from version-specific directory.
16871         * reflection.c: When generating an image, embed the version number
16872           of the current runtime.
16873
16874 2004-07-28  Dick Porter  <dick@ximian.com>
16875
16876         * socket-io.c
16877         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
16878         returned sockaddr size before creating the remote address object.
16879         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
16880         61608.
16881
16882 2004-07-28  Dick Porter  <dick@ximian.com>
16883
16884         * locales.c (string_invariant_compare_char): Fix invariant char
16885         compares between upper and lower cases.  Fixes bug 61458.
16886
16887 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
16888         
16889         * marshal.c: actually cache stelem.ref wrappers.
16890         
16891 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
16892
16893         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
16894         sections and remove the mono_cli_rva_map () function.
16895
16896 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
16897
16898         * debug-mono-symfile.c: fix one more endianess issue, from a patch
16899         by Geoff Norton (<gnorton@customerdna.com>).
16900
16901 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
16902
16903         * class.c: fix class loads for pointer types (typeof(int) !=
16904         typeof(int*)).
16905
16906 2004-07-27  Martin Baulig  <martin@ximian.com>
16907
16908         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
16909         reading the debugging information from an external ".mdb" file.
16910
16911 2004-07-24  Martin Baulig  <martin@ximian.com>
16912
16913         * reflection.c (mono_image_get_type_info): Only write a class
16914         layout entry if we actually have a size or a packing size.
16915
16916 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
16917
16918         * reflection.c (type_get_fully_qualified_name): 
16919         insert cast to get type checking of ?: with non-gcc compilers
16920
16921 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
16922
16923         * rand.c: use g_getenv for both lookups of
16924         MONO_EGD_SOCKET
16925
16926 2004-07-17  Martin Baulig  <martin@ximian.com>
16927
16928         * reflection.c (mono_reflection_bind_generic_method_parameters):
16929         Set `gmethod->reflection_info'.
16930
16931 2004-07-17  Martin Baulig  <martin@ximian.com>
16932
16933         * class.c (mono_class_create_from_typedef): Insert the newly
16934         created class into the hash table before computing the interfaces
16935         since we could be called recursively.
16936
16937 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
16938
16939         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
16940         function to implement stelem.ref in managed code
16941         * class-internals.h, debug-helpers.c: a new wrapper type
16942         for the above.
16943
16944 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
16945
16946         * gc.c: allow GC handles to work even when no GC is compiled in.
16947         Fix part of bug #61134 (GetAddrOfPinnedObject).
16948
16949 2004-07-13  Peter Williams  <peter@newton.cx>
16950  
16951         * process.c (complete_path): Make sure we don't attempt to execute
16952         directories.
16953  
16954 2004-07-12  Geoff Norton <gnorton@customerdna.com>
16955
16956         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
16957           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
16958           and will add/subtract the hour if needed
16959
16960 2004-07-12  Martin Baulig  <martin@ximian.com>
16961
16962         * reflection.c (mono_field_get_object): If we have
16963         `field->generic_info', take the attributes from
16964         `field->generic_info->generic_type'.    
16965
16966 2004-07-12  Martin Baulig  <martin@ximian.com>
16967
16968         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
16969         This function must be called before initializing the runtime.
16970         (mono_debug_init_1): New function; call this after initializing
16971         the runtime, but before loading the assembly.  It tells the
16972         debugger to load corlib and the builtin types.
16973
16974         * mono-debug-debugger.c: Did some larger changes in the debugging
16975         code; support recursive class declarations, make sure we actually
16976         add all classes.
16977
16978 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16979
16980         * debug-helpers.c: undo my previous patch and fixed the real issue in
16981         ../mini/exceptions-x86.c
16982
16983 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16984
16985         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
16986         when no HOME env. variable was set and a NullRef was thrown in a .cctor
16987         called from other .cctors.
16988
16989 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
16990
16991         * loader.c: Removed the mono_loader_wine_init hack now that we are
16992         doing a managed version of Windows.Forms.
16993
16994 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
16995
16996         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
16997         threadpool.c, threads.c: remove static data from rootset.
16998
16999 2004-07-09  Dick Porter  <dick@ximian.com>
17000
17001         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
17002         Don't do any more processing if the matched length was 0.  It was
17003         increasing the size of the string before.  Fixes bug 61167.
17004
17005 2004-07-09  Dick Porter  <dick@ximian.com>
17006
17007         * socket-io.h:
17008         * socket-io.c
17009         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
17010         Add support for SO_PEERCRED if its available.
17011
17012 2004-07-09  Peter Bartok <pbartok@novell.com>
17013         * loader.c: winelib.exe.so error message is now only displayed if
17014         MONO_DEBUG is set. To help us avoid questions when people are trying
17015         out the new Managed.Windows.Forms.
17016
17017 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
17018
17019         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
17020         for isinst and castclass wrappers.
17021
17022         * class-internals.h icall.c: Move registration and lookup of JIT icalls
17023         to libmetadata from the JIT, so they could be used by the marshalling
17024         code and the interpreter.
17025
17026         * marshal.c: Register marshalling related JIT icalls here instead of
17027         in mini.c. Use CEE_MONO_ICALL instead of the family of 
17028         CEE_MONO_PROC<x> opcodes to call marshalling functions.
17029
17030         * metadata.h: Remove unneeded marshalling conversions.
17031
17032         * opcodes.c: Update for new opcodes.
17033         
17034 2004-07-08  Martin Baulig  <martin@ximian.com>
17035
17036         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
17037         (mono_debug_get_domain_data): Make this function static.
17038
17039 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17040
17041         * gc.c, object.h: add nice GC handle API for embedders.
17042
17043 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
17044
17045         * reflection.c: more changes for the new api
17046
17047         * object.c: When we reflect on a field w/ a constant value, it
17048         will not have a memory location, so we must access metadata. Also,
17049         allow easier reading of strings so that we can read them from
17050         the constant data.
17051
17052         * class.c (mono_class_layout_fields): no need for literal fields here.
17053
17054         * class-internals.h: api changes for const fields
17055
17056         * icall.c (ves_icall_get_enum_info): use new apis for const fields
17057
17058 2004-07-06  Martin Baulig  <martin@ximian.com>
17059
17060         * mono-debug.h: Increment version number to 44.
17061
17062         * mono-debug.c (mono_debug_add_wrapper): The second argument is
17063         now a gpointer, rewrote this whole method.
17064
17065         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
17066         function.  Add information about the wrapper in a new "misc table".
17067
17068         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
17069         for the new misc table.
17070
17071 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
17072
17073         * metadata-internals.h image.c: Add a cache for helper signatures.
17074
17075         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
17076
17077 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
17078
17079         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
17080         delegates from a delegate. Fixes #61033.
17081         
17082         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
17083         marshalling of stringbuilder arrays. Fixes #59900.
17084
17085 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
17086
17087         * icall.c: Add EnumBuilder:setup_enum_type icall.
17088
17089 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
17090
17091         * icall.c: Added a new icall for the property version of
17092         OffsetOfStringData.
17093
17094 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
17095
17096         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
17097         it has a constant size across platforms.
17098
17099         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
17100         stack trace.
17101
17102 2004-06-29  Martin Baulig  <martin@ximian.com>
17103
17104         * mono-debug.c (mono_debug_add_method): Protect the whole function
17105         in mono_debugger_lock(), not just parts of it.
17106
17107 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17108
17109         * reflection.c: make sure padding bytes in heaps are zeroed.
17110
17111 2004-06-24  David Waite  <mass@akuma.org>
17112
17113         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
17114         image.c, loader.c, locales.c, marshal.c, metadata.c,
17115         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
17116         string-icalls.c, threads.c: change to C90-style comments from C99 /
17117         C++ -style
17118
17119 2004-06-24  Dick Porter  <dick@ximian.com>
17120
17121         * threads.c
17122         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
17123         return createdNew.  Fixes bug 60412.
17124
17125         * threads-types.h: 
17126         * icall.c: Add createdNew parameter to CreateMutex icall
17127
17128 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17129
17130         * reflection.c, object-internals.h: save default value in params.
17131
17132 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17133
17134         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
17135         no need to build a new path combining that with the application base.
17136         Fixes bug #60442.
17137
17138 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
17139
17140         * reflection.c: fixed minor standard compliance issues.
17141
17142 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
17143
17144         * reflection.c: fixed issue with encoding some custom attributes
17145         (arrays in properties and fields, bug #60411).
17146
17147 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17148
17149         * reflection.c: fix start address when copying the public key token.
17150
17151 2004-06-23  Martin Baulig  <martin@ximian.com>
17152
17153         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
17154         the `exc' object in a static object to put it into the GC's root set.
17155
17156 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
17157
17158         * reflection.c: make mono_reflection_setup_internal_class ()
17159         callable a second time to setup a new parent class.
17160
17161 2004-06-23  Dick Porter  <dick@ximian.com>
17162
17163         * threads.c: Check for WAIT_IO_COMPLETION return values.
17164
17165 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
17166
17167         * appdomain.c: Removed the g_free on the public key token. Now copy 
17168         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
17169         * assembly.c: Added public key token string value when loading 
17170         assemblies. Fix bug #60439.
17171         * icall.c: Added missing informations (like public key) in 
17172         GetReferencedAssemblies. Fix #60519.
17173         * image.h: Changed definition for public key token from const char*
17174         public_tok_value to guchar public_key_token [17];
17175         * reflection.c: Updated for changes to public key token.
17176
17177 2004-06-22  Lluis Sanchez Gual
17178
17179         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
17180         for the field in base classes.
17181
17182 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17183
17184         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
17185         mark headers as not supported, they are installed only for use by the
17186         debugger.
17187
17188 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
17189
17190         * *.c, *.h: avoid namespace pollution in public headers.
17191
17192 2004-06-21  Martin Baulig  <martin@ximian.com>
17193
17194         * exception.c (mono_get_exception_security): It's in
17195         "System.Security", not in "System".
17196
17197         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
17198         the exception classes.
17199
17200 2004-06-21  Martin Baulig  <martin@ximian.com>
17201
17202         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
17203         Protect the exception object from being finalized.
17204
17205 2004-06-21  Martin Baulig  <martin@ximian.com>
17206
17207         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
17208         public function.
17209
17210 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
17211
17212         * reflection.c: Load the assembly in mono_reflection_type_from_name,
17213         if it was not loaded before. Fix parts of #60439.
17214
17215 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
17216
17217         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
17218         code that was broken since Ben's change: wrappers are now
17219         dependent on the method signature only again.
17220
17221 2004-06-21  Martin Baulig  <martin@ximian.com>
17222
17223         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
17224         added interface support.
17225
17226 2004-06-21  Martin Baulig  <martin@ximian.com>
17227
17228         * class.c (mono_vtable_get_static_field_data): New public method.
17229
17230 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
17231
17232         * filewatcher.c : Windows build fix to be compliant with API changes.
17233
17234 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17235
17236         * class.h, class.c: more accessors.
17237         * metadata.h, metadata.c: prepare for hiding MonoType and
17238         MonoMethodSignature: people should use the accessors from now on
17239         outside of the tree.
17240
17241 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
17242
17243         * *.c, *.h: more API cleanups.
17244
17245 2004-06-18  Jackson Harper  <jackson@ximian.com>
17246
17247         * assembly.c: Trace loading assemblies.
17248         * loader.c: Trace loading native libraries.
17249         * mono-config.c: Trace loading config files.
17250         
17251 2004-06-18  Dick Porter  <dick@ximian.com>
17252
17253         * locales.c: Tell ICU the lengths of strings, it can cope with
17254         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
17255
17256 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
17257
17258         * image.c: swapped name/filename;
17259
17260 2004-06-18  Martin Baulig  <martin@ximian.com>
17261
17262         * mono-debug-debugger.c (write_class): Write the parent class at
17263         the end of the header.
17264
17265 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
17266
17267         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
17268
17269 2004-06-17  Raja R Harinath  <rharinath@novell.com>
17270
17271         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
17272         (bundle_obj): New conditional define.
17273         (BUILT_SOURCES): Remove.
17274         ($(bundle_srcs)): Make parallel-make safe.
17275         (libmonoruntime_la_LIBADD): Make unconditional.
17276         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
17277         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
17278
17279 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
17280
17281         * culture-info-tables.h: It was inconsistent with the latest
17282           supp info files.
17283
17284 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
17285
17286         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
17287         be loaded.
17288
17289         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
17290         with gcc 2.95.
17291
17292 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
17293
17294         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
17295         cleaned up public header threads.h.
17296
17297 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
17298
17299         * Makefile.am, *.c, *.h: more API cleanups.
17300
17301 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
17302
17303         * Makefile.am: removed monosn from compilation.
17304         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
17305         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
17306         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
17307         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
17308         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
17309         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
17310
17311 2004-06-15  Jackson Harper  <jackson@ximian.com>
17312
17313         * assembly.c: Make locales lower case when searching the GAC for
17314         assemblies. gacutil will always make locales lowercase when
17315         installing so this effectively makes them case insensitive.
17316         
17317 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
17318
17319         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
17320         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
17321           parameter which allows to choose whether the wait can be interrupted or 
17322           not. Also added the method mono_monitor_enter(), which locks the monitor
17323           using an infinite wait and without allowing interruption.
17324           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
17325           interrupted.
17326         * object.h: Added new fields in MonoThread. suspend_event holds the event
17327           used to susped/resume the thread. synch_lock is the lock object to use for
17328           modifying the thread state.
17329         * threads.c: Use the new synch_lock object for locking, instead of "this",
17330           which can generate deadlocks.
17331           Moved thread state change in Thread.Sleep and Thread.Join from managed
17332           to unmanaged code. This avoids a deadlock when the thread was suspended
17333           just after acquiring the thread lock.
17334           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
17335           Implemented Thread.Suspend using an event instead of ThreadSuspend,
17336           which is not fully implemented in the io-layer.
17337         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
17338
17339 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
17340
17341         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
17342         threads-types.h: more API cleanups.
17343
17344 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
17345
17346         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
17347         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
17348         threadpool.c, threads.c: first pass at the exported API cleanup.
17349
17350 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
17351
17352         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
17353
17354 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17355
17356         * icall.c: added internalGetHome.
17357
17358 2004-06-14  Dick Porter  <dick@ximian.com>
17359
17360         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
17361         possible to return successfully when '.' or '..' were the only
17362         entries in a directory, but were skipped.  The MonoIOStat was not
17363         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
17364         Fixes bug 59574.
17365
17366 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
17367
17368         * reflection.c: make binaries run on .Net 1.1 by default.
17369
17370 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
17371
17372         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
17373
17374 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
17375
17376         * marshal.c: keep track of struct size with explicit layout
17377         (bug #59979).
17378
17379 2004-06-12  Martin Baulig  <martin@ximian.com>
17380
17381         * mono-debug-debugger.c: Comment out a debugging g_message().
17382
17383 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
17384
17385         * reflection.c, reflection.h: do not free custom attrs that are cached.
17386         * icall.c: use braces to make code clearer.
17387
17388 2004-06-11  Martin Baulig  <martin@ximian.com>
17389
17390         * class.h (MonoInflatedField): New type.
17391         (MonoClassField): Replaced `MonoType *generic_type' with
17392         `MonoInflatedField *generic_info'.
17393
17394         * icall.c
17395         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
17396
17397 2004-06-11  Martin Baulig  <martin@ximian.com>
17398
17399         * reflection.c (mono_image_create_method_token): Correctly encode
17400         varargs methods.
17401
17402 2004-06-11  Martin Baulig  <martin@ximian.com>
17403
17404         * metadata.c (mono_metadata_parse_method_signature): When parsing
17405         a MethodDef which has VarArgs, also set sentinelpos if we don't
17406         have any parameters.
17407
17408 2004-06-11  Martin Baulig  <martin@ximian.com>
17409
17410         * verify.c (mono_method_verify): In CEE_CALL, use
17411         mono_method_get_signature() to get the method's signature, unless
17412         we're a PInvoke method.
17413
17414 2004-06-10  Jackson Harper  <jackson@ximian.com>
17415
17416         * assembly.c: Use <path>/lib/mono/gac for the extra paths
17417         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
17418         logical name as the supplied path is just a prefix to the gac not
17419         the direct path to it.
17420         
17421 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
17422
17423         * reflection.c: make the token for a created method match
17424         the token of the MethodBuilder it was created from
17425         (IKVM requires this behaviour now).
17426
17427 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
17428
17429         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
17430         reflection.c, socket-io.c: leak fixes.
17431
17432 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
17433
17434         * icall.c: handle sentinel pos in vararg methods in position different
17435         from 0.
17436
17437 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17438
17439         * culture-info-tables.h: freshly generated.
17440
17441 2004-06-09  Martin Baulig  <martin@ximian.com>
17442
17443         * loader.c (mono_get_method_constrained): Call `mono_class_init
17444         (constrained_class)'.   
17445
17446 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
17447
17448         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
17449         any methods. Fixes #59629.
17450
17451 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17452
17453         * culture-info-tables.h: reflecting locale-builder updates.
17454
17455 2004-06-08  Dick Porter  <dick@ximian.com>
17456
17457         * object.h:
17458         * locales.c: Fixed compile warnings, including a real bug in
17459         CompareInfo_internal_compare.
17460         
17461 2004-06-08  Dick Porter  <dick@ximian.com>
17462
17463         * locales.c
17464         (ves_icall_System_Globalization_CompareInfo_internal_index):
17465         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17466         Double-check the resuls of usearches, because ICU currently
17467         ignores most of the collator settings here.  Fixes bug 59720.
17468         
17469 2004-06-08  Dick Porter  <dick@ximian.com>
17470
17471         * locales.c
17472         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
17473         Fix memory leak and segfault-causing typo.  No idea how this one
17474         lasted so long without being noticed.
17475
17476 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
17477
17478         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
17479         any methods. Fixes #59629.
17480
17481 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17482
17483         * assembly.c:
17484         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
17485         own the critical section before). Removed dead code (that's done
17486         in the preload hook).
17487
17488         (mono_assembly_load_with_partial_name): call the preload hook.
17489
17490 2004-06-08  Martin Baulig  <martin@ximian.com>
17491
17492         * metadata.c (mono_metadata_signature_alloc): Default
17493         `sentinelpos' to -1.
17494
17495         * reflection.c (mono_image_get_array_token): Likewise.
17496
17497 2004-06-08  Martin Baulig  <martin@ximian.com>
17498
17499         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
17500
17501         * metadata.c (mono_metadata_parse_method_signature): When parsing
17502         a MethodDef which has VarArgs, set sentinelpos.
17503
17504         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
17505         `gint16' since we're using -1 for non-varargs methods.
17506
17507         * reflection.c
17508         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
17509         (method_encode_signature): Added varargs support.
17510         (method_builder_encode_signature): Likewise.
17511         (mono_image_get_varargs_method_token): New static method.
17512         (mono_image_create_method_token): New public method; this is
17513         called via an icall instead of mono_image_create_token() when
17514         calling a varargs method.       
17515
17516 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
17517
17518         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
17519
17520 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17521
17522         * culture-info-tables.h : Reflecting the latest locale-builder that
17523           fixed empty array representation ({} to {0}).
17524
17525 2004-06-07  Jackson Harper  <jackson@ximian.com>
17526
17527         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
17528         looking up extra gac paths. This allows MONO_GAC_PATH to act
17529         exactly like a prefix.
17530         
17531 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17532
17533         * reflection.c (mono_reflection_type_from_name): Make a copy of the
17534         type name before modifying it. Fixes #59405.
17535
17536 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
17537
17538         * culture-info.h: added fields for "all datetime patterns".
17539         * locales.c: (  ves_icall_System_Globalization_CultureInfo
17540           _construct_datetime_format ()): fill xxx_patterns fields.
17541         * object.h: added fields for "all datetime patterns" to
17542           MonoDateTimeFormatInfo.
17543         * culture-info-tables.h: reflecting locale-builder updates.
17544
17545 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
17546
17547         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
17548         the event has no add and remove methods. Fixes #59629.
17549
17550 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
17551
17552         * object.c: Fixed possible integer overflow when allocating large
17553         strings.
17554
17555 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17556
17557         * culture-info-tables.h: reflecting locale-builder updates.
17558
17559 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
17560
17561         * culture-info-tables.h: reflecting locale-builder updates.
17562
17563 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
17564
17565         * culture-info-tables.h: reflecting locale-builder updates.
17566
17567 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
17568
17569         * threads.c: Made Thread.Sleep abortable.
17570
17571 2004-06-02  Martin Baulig  <martin@ximian.com>
17572
17573         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
17574
17575         * debug-mono-symfile.h: Bumped symbol file version number to 37.
17576
17577 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
17578
17579         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
17580
17581 2004-05-30  Jackson Harper  <jackson@ximian.com>
17582
17583         * reflection.c: Do not hardcode assembly versions or public key
17584         tokens anymore. All of this except the corlib section was dead
17585         code anyways.
17586         
17587 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
17588
17589         * object.c (mono_runtime_invoke_array): Automatically create boxed
17590         objects for byref valuetypes if needed. Fixes #59300.
17591         
17592         * object.c (mono_method_return_message_restore): Handle 
17593         MONO_TYPE_OBJECT as well.
17594
17595 2004-05-28  Jackson Harper  <jackson@ximian.com>
17596
17597         * reflection.c: The modified type encoding was causing build
17598         problems. Reverted for now.
17599         
17600 2004-05-28  Jackson Harper  <jackson@ximian.com>
17601
17602         * reflection.c/h: Take an assembly ref so that we dont create
17603         fully qualified names when encoding types in the same assembly as
17604         the custom attribute being emitted.
17605         * appdomain.c: Increment version number.
17606         
17607 2004-05-26  Duncan Mak  <duncan@ximian.com>
17608
17609         * icall.c
17610         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
17611         Set the full version number (major, minor, build, revision).
17612
17613 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
17614
17615         * marshal.c (emit_struct_conv): increment src/dst after blit
17616         (mono_marshal_get_managed_wrapper,
17617         mono_marshal_get_native_wrapper): make sure we have marshalling
17618         info before marshalling params (info computation affects
17619         blittable)
17620
17621         * class.c (class_compute_field_layout): correctly deal with
17622         blittable
17623         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
17624         value types (as per what windows dows by default)
17625         (mono_class_setup_mono_type): System.ValueType is blittable
17626         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
17627         blittable
17628
17629         * marshal.c (mono_marshal_load_type_info): flag types  as
17630         non-blittable if the native layout doesn't match the managed
17631         layout
17632
17633 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17634
17635         * appdomain.c: don't add stuff in the private search path that is
17636         above the application base. If application base is not set, there's
17637         no private search path.
17638
17639 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
17640
17641         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
17642         byref struct arguments in native->managed marshalling.
17643
17644 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
17645
17646         * marshal.c (mono_marshal_get_runtime_invoke): correctly
17647         cache methods using signature (special case for methods
17648         that are value type or string class)
17649         
17650         * image.c (mono_image_close): clean up allocated GSList's
17651         in runtime_invoke_cache.
17652
17653 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17654
17655         * mono-config.c: set the correct path for mono_cfg_dir on windows when
17656         there's no MONO_CFG_DIR environment variable defined.
17657
17658 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17659
17660         * threads.c: windows version must be >= 0x0500 to include OpenThread.
17661
17662 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
17663
17664         * threadpool.c: Really wait for 500ms after the async call, even if the wait
17665           is interrumped.
17666         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
17667           before waiting for it, and call CloseHandle after the wait to unref it.
17668           This will make sure that handles are not disposed too early.
17669
17670 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17671
17672         * appdomain.c:
17673         * appdomain.h:
17674         * icall.c: removed
17675         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
17676         needed now.
17677
17678         * object.c: se the application_base only for the domain that runs
17679         Main. Fixes bug #59216,
17680
17681 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17682
17683         * appdomain.c:
17684         * object.c: only the domain in which Main is run have
17685         SetupInformation.ConfigurationFile set, so moved a few lines from
17686         appdomain.c to object.c.
17687
17688 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17689
17690         * appdomain.c: we tried to load [name].(dll|exe), but according
17691         to bug #57710, we must also try [culture]/[name].(dll|exe) and
17692         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
17693         There's a test case attached to bug #58922.
17694
17695 2004-05-27  Dick Porter  <dick@ximian.com>
17696
17697         * icall.c:
17698         * file-io.c: Implemented icalls for locking and unlocking regions
17699         in a file.
17700         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
17701         FALSE on error (fixes both compiler warning and real bug.)
17702
17703 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
17704
17705         * culture-info-tables.h: reflecting locale-builder updates.
17706
17707           (Added missing ChangeLog entry for 05/26)
17708
17709 2004-05-27  Jackson Harper  <jackson@ximian.com>
17710
17711         * locales.c: Fix some cut and paste errors.
17712         
17713 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17714
17715         * mono-config.c: set the correct path for config. directory on windows.
17716
17717 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17718
17719         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
17720           on win32.
17721
17722 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17723
17724         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
17725         from pinvoke functions.
17726         
17727         * marshal.c (mono_ftnptr_to_delegate): Implement this.
17728
17729 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
17730
17731         * culture-info-tables.h: reflecting locale-builder updates.
17732
17733 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
17734
17735         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
17736         #59086.
17737
17738 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
17739
17740         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
17741         * icall.c: Modified icalls for RNG.
17742         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
17743         Windows (CryptoAPI).
17744
17745 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17746
17747         * locales.c: Fix build.
17748
17749 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
17750
17751         * culture-info-tables.h: reflecting locale-builder updates.
17752
17753 2004-05-25  Jackson Harper  <jackson@ximian.com>
17754
17755         * locales.c: When creating the current culture use the $LANGs
17756         specific culture. So DateTimeFormat and NumberFormat entries are created.
17757         
17758 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
17759
17760         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
17761         a char array as parameter.
17762
17763 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
17764
17765         * image.c: In mono_image_open(), always use an absolute path name to
17766           look for already loaded images.
17767
17768 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
17769
17770         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
17771         missing in the windows build (like older cygwin include files).
17772
17773 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
17774
17775         * icall.c: Fixed check for possible integer overflow in Buffer_
17776         BlockCopy icall. Replaced comments style // by /* */.
17777
17778 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
17779
17780         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
17781         
17782         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
17783         check after MONO_VTADDR. Fixes pinvoke2.exe.
17784
17785         * marshal.h marshal.c metadata.h: Add beginnings of support for
17786         ftnptr -> delegate marshalling.
17787
17788 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
17789
17790         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
17791         * threads.c: Fix warnings.
17792
17793 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
17794
17795         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
17796         * icall.c: Registered icalls for Suspend and Resume.
17797         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
17798           Thread.Abort.
17799         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
17800         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
17801         * process.c: Use WaitForSingleObjectEx.
17802         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
17803           checkpoints.
17804         * threads.c, threads.h: Make use of new Ex wait methods. Improved
17805           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
17806           for Suspend and Resume. Added new mono_thread_stop, used for stoping
17807           background threads. Added basic support for Abort in Windows.
17808           Start new threads using a managed delegate invoke wrapper. This wrapper
17809           has an interruption checkpoint that is needed since an interruption
17810           can be requested before the thread leaves the unmanaged code that starts 
17811           the thread.
17812         * marshal.c: Added interruption checkpoint after every native call, and
17813           also before managed calls for wrappers called from unmanaged code to
17814           go into managed code.
17815         * object.h: Added new field in MonoThread to keep track of interruption
17816           requests.
17817
17818 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
17819
17820         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
17821         calls.
17822
17823 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17824
17825         * appdomain.c:
17826         * assembly.c:
17827         * gc.c:
17828         * locales.c:
17829         * mono-config.c:
17830         * rand.c: getenv -> g_getenv (windows!)
17831
17832         * process.c: complete_path is also used on non-windows platforms.
17833
17834 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17835
17836         * icall.c: new signature for Process_Start.
17837
17838         * process.[ch]: new signature for Process_Start. If we're on windows
17839         and UseShellExecute is false, we have to search for the program by
17840         ourselves if we don't get a full path.
17841
17842 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
17843
17844         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
17845         marshalling and call CleanUpNativeData if needed. Fixes #58646.
17846
17847 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17848
17849         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
17850         Fixes bug #58373.
17851
17852 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17853
17854         * process.c: use double quotes to quote program name and arguments on
17855         windows. Fixes bug #58575.
17856
17857 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17858
17859         * file-io.c: don't return "." and ".." when using windows Find*File.
17860
17861 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
17862
17863         * marshal.c: Don't pass wrappers to message init because method 
17864         addressed used to lookup metadata. part of remoting[2|3] fix.
17865
17866 2004-05-15  Jackson Harper  <jackson@ximian.com>
17867
17868         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
17869         path is essentially the same as MONO_PATH except that it points to
17870         GACs instead of lib directories.
17871         * loader.h: The user gac is gone so we dont need function to
17872         enable/disable it.
17873         * mono-config.c: user gac option is now gone.
17874         
17875 2004-05-15  Jackson Harper  <jackson@ximian.com>
17876
17877         * culture-info.h: Make defines more consistent, add calendar data
17878         to the culture info table.
17879         * culture-info-tables.h: Add basic calendar data. Basically
17880         everyone gets default gregorian until all the data is
17881         updated.
17882         * locales.c: Use the new consistent defines. Set calendar data for
17883         culture info objects.
17884         * object.h: add a field for calendar data to CultureInfo
17885         
17886 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
17887
17888         * image.c: image->runtime_invoke_cache is keyed on signatures now.
17889         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
17890         a signature.
17891         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
17892         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
17893         an extra param that is the pointer of the method to invoke. The IL for
17894         the invoke method is no longer specific to the method, but to the
17895         signature of the method. Thus, we can share the same code for multiple
17896         methods. This reduces the number of methods that have to be compiled.
17897
17898 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
17899
17900         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
17901
17902         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
17903
17904         * icall.c: Optimize Buffer.BlockCopy.
17905
17906 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17907
17908         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
17909         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
17910         quote). Changed them to "MMMM yyyy".
17911
17912 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
17913
17914         * rand.c
17915         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
17916
17917 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
17918
17919         * reflection.h: Updated after changes to managed structures.
17920
17921         * appdomain.c: Bump corlib version.
17922
17923 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17924
17925         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
17926         windows.
17927
17928 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17929
17930         * Makefile.am: link to ../os/libmonoos.la on windows.
17931
17932         * assembly.c:
17933                 -If MONO_DEBUG, warn about non-existing directories in
17934                 MONO_PATH.
17935                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
17936                 compile time variable.
17937                 -Removed init_default_path and call mono_set_rootdir from
17938                 libmonoos.a instead (windows only).
17939
17940         * assembly.h: declare mono_assembly_getrootdir().
17941
17942         * domain.c:
17943         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
17944
17945         * loader.c: s/getenv/g_getenv/
17946
17947 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
17948
17949         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
17950
17951         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
17952
17953         * metadata.h: Add new marshalling conversions.
17954
17955         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
17956         function.
17957
17958         * reflection.c (mono_reflection_get_type): Lookup the type in all
17959         modules of a multi-module assembly. Fixes #58291.
17960
17961 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
17962
17963         * threads.c: Before aborting a background, set the StopRequested
17964         state.  This avoids throwing the Abort exception.
17965         In mono_thread_manage, don't continue with the shutdown until all
17966         aborted threads have actually stopped.
17967
17968 2004-05-10  Jackson Harper  <jackson@ximian.com>
17969
17970         * locales.c: Remove the modifier from culture names.
17971         
17972 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
17973
17974         * Makefile.am: monosn is not installed any more. It has been deprecated
17975         in favor of sn.
17976
17977 2004-05-07  Jackson Harper  <jackson@ximian.com>
17978
17979         * locales.c
17980         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
17981         Fix array construction, add bailout if the length is 0.
17982
17983 2004-05-07  Dick Porter  <dick@ximian.com>
17984
17985         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
17986         machine doesn't have a DNS entry.  Patch by Urs Muff
17987         (umuff@quark.com), fixes bug 57928.
17988
17989 2004-05-06  Jackson Harper  <jackson@ximian.com>
17990
17991         * reflection.c: Handle null PublicTokens properly. alloc mem for
17992         assembly names culture so we dont crash when freeing it.
17993         
17994 2004-05-06  Jackson Harper  <jackson@ximian.com>
17995
17996         * assembly.c: Check the usergac when loading with partial names.
17997         
17998 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
17999
18000         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
18001         does nothing for now (not required for Linux/Windows) but the class
18002         library can call it (and a newer or modified runtime could need it).
18003         * icall.c: Registred icall.
18004
18005 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18006
18007         * loader.c: prints a message on module loading error we set MONO_DEBUG
18008         environment variable.
18009
18010 2004-05-05  Jackson Harper  <jackson@ximian.com>
18011
18012         * appdomain.c: Handle PublicKeyToken=null properly.
18013         
18014 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
18015
18016         * environment.c|h: Added icall ves_icall_System_Environment_
18017         GetOSVersionString to get the current OS version as a string.
18018         * icall.c: Registred icall.
18019
18020 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
18021
18022         * object.c: in mono_object_get_virtual_method(), take into account that
18023         non-virtual methods don't have a slot in the vtable. Check needed when
18024         the object is a proxy.
18025
18026 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
18027
18028         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
18029         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
18030
18031         * object.c (mono_class_compute_gc_descriptor): Fix warning.
18032
18033         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
18034         passed when a valuetype is expected.
18035
18036         * object.c (mono_unhandled_exception): Only set the exit code if the
18037         exception happens in the main thread. Fixes thread5.exe.
18038
18039         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
18040         invalid names. Fixes #58047.
18041
18042 2004-05-03  Jackson Harper  <jackson@ximian.com>
18043
18044         * assembly.c: This line was committed accidently and is unneeded.
18045         
18046 2004-05-03  Jackson Harper  <jackson@ximian.com>
18047
18048         * icall.c: Add new icall for Assembly::LoadWithPartialName
18049         * assembly.c/.h: new function that probes the GAC to load partial
18050         assembly names by Paolo Molaro.
18051         
18052 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18053
18054         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
18055         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
18056         (type_get_fully_qualified_name): Added PublicKeyToken when building a
18057         full type name.
18058
18059 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18060
18061         * appdomain.c: fixed check for 'neutral' culture and removed warning.
18062         * reflection.c: fix bug when parsing a full type name and Version is not
18063         the last thing in the string.
18064
18065 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
18066
18067         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
18068         crashes when it is freed.
18069
18070 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18071
18072         * assembly.c: print the compat warning to stderr.
18073
18074 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
18075
18076         * assembly.c (mono_assembly_load_references): Add a compatibility
18077         hack to run old applications that might be still referencing the
18078         3300-based assemblies, only do this for System.xxx.
18079
18080 2004-05-01  Jackson Harper  <jackson@ximian.com>
18081
18082         * appdomain.c: If the culture is neutral we set it to "".
18083         
18084 2004-04-29  Jackson Harper  <jackson@ximian.com>
18085
18086         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
18087
18088 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
18089  
18090         * string-icalls.c: added low overhead function for copying chars
18091         * icall.c: added needed icall for the above function
18092  
18093 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18094
18095         * icall.c: fix return value of get_global_assembly_cache.  Implemented
18096         Environment.GetLogicalDrives.
18097
18098 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
18099
18100         * rand.c: try and talk to egd or prngd
18101         for random bytes if opening devices fail.
18102
18103 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
18104
18105         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
18106         alignment for the type using the native alignment of its members 
18107         instead of using klass->min_align.
18108
18109         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
18110
18111 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18112
18113         * file-io.c:
18114         * socket-io.c: added check for sys/aio.h.
18115
18116 2004-04-28  Dick Porter  <dick@ximian.com>
18117
18118         * threads.c: Don't abort a thread thats already aborting, when
18119         terminating everything.
18120
18121 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18122
18123         * icall.c: added 2 new async calls for Socket.
18124
18125         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
18126         IO on *nix systems.
18127
18128         * threadpool.c: removed unused variable.
18129
18130 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
18131
18132         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
18133
18134 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18135
18136         * locales.c: put back string_invariant_tolower () and
18137         string_invariant_toupper ().
18138
18139 2004-04-26 David Waite <mass@akuma.org>
18140
18141         * file-io.h:
18142         * socket-io.h:
18143         * threads.h:
18144         * unicode.h: remove comma from end of enumeration declarations
18145
18146 2004-04-26 David Waite <mass@akuma.org>
18147
18148         * debug-mono-symfile.h:
18149         * decimal.c:
18150         * mono_debug.h:
18151         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
18152
18153
18154 2004-04-26  Jackson Harper  <jackson@ximian.com>
18155
18156         * appdomain.c: Increment version number.
18157         
18158 2004-04-26  Jackson Harper  <jackson@ximian.com>
18159
18160         * appdomain.c: Set assembly references public token value when
18161         PublicKeyToken is specified, not the hash_value. Free public token
18162         values when free assembly name data. Previously the public key
18163         token was hex decoded, however we are using hex encoded public key
18164         tokens, so this is not neccasary.
18165         * assembly.c: Lookup assemblies in the gac if their public token
18166         value is set. Add function to allow enabling user gac
18167         lookups. Specify whether or not the assembly was loaded from the
18168         GAC. Compare full assembly names when checking the cache for
18169         assemblies (Temporarily disabled see comment in code). Remove
18170         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
18171         specifies trace-loader they get extra info to stdout on the
18172         loading of assemblies.
18173         * image.h: Add a field for an assembly references public token
18174         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
18175         whether an assembly has been loaded from the GAC.
18176         * image.c: Remove a corlib -> mscorlib name mapping.
18177         * loader.h: Add function to enable/disable the user gac.
18178         * mono-config.c: Check if the usergac is enabled in the config
18179         file.
18180         * icall.c: New icall to determine whether or not an assembly has
18181         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
18182         * tabldefs.h: Add constant for assemblyref flag that specifies a
18183         full public key is used instead of a public token.
18184         * reflection.c: Remove mscorlib -> corlib mappings. Set
18185         PublicTokenValue instead of hash value. This value is a hex
18186         string so it does not need to be expanded.
18187
18188 2004-04-26  Martin Baulig  <martin@ximian.com>
18189
18190         * mono-debug-debugger.c (mono_debugger_initialize): Set
18191         `mono_debugger_initialized' before calling mono_debug_lock().
18192
18193 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
18194
18195         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
18196           InternalToUpper/InternalToLower.
18197         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
18198           removed invariant culture shortcut.  This is now done in managed code.
18199         * locales.c: (string_invariant_toupper/tolower) removed.
18200
18201 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18202
18203         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
18204         Added Poll internal call.
18205
18206         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
18207         call for Poll. Select was too heavy for polling a single socket.
18208
18209         * threadpool.[ch]: added mono_threadpool_cleanup.
18210         * threads.c: use it. Don't use Thread_Abort on windows.
18211
18212 2004-04-23  Martin Baulig  <martin@ximian.com>
18213
18214         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
18215
18216 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
18217
18218         * icall.c: Registred new icalls for key pair protection and added an
18219         icall for Environment.GetFolderPath on Windows.
18220         * security.c|h: Added new icalls for key pair protection.
18221
18222 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18223
18224         * socket-io.c: don't display the non-supported family warning for known
18225         families. Now this is not displayed on windows when checking support
18226         for IPv4/IPv6.
18227
18228 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18229
18230         * class.c: don't display the layout warning for static fields.
18231
18232 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
18233
18234         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
18235         * locales.c, locales.h: Added new icalls for culture-specific
18236         Char.ToLower and Char.ToUpper.
18237
18238 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18239
18240         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
18241         by David Waite.
18242
18243 2004-04-20  Martin Baulig  <martin@ximian.com>
18244
18245         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
18246         of the type name before passing it to mono_reflection_type_from_name().
18247
18248 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
18249
18250         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
18251         encodings here. Fixes #56965.
18252
18253 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
18254
18255         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18256         fix test on strstr result not that I can see anything that
18257         relies on the result.
18258
18259 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
18260
18261         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
18262         Fixes #57081.
18263
18264         * marshal.c (mono_marshal_get_string_encoding): New helper function.
18265
18266         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
18267         function to determine which marshalling to use for strings. Fixes
18268         #56965.
18269
18270         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
18271
18272         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
18273
18274 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
18275
18276         * icall.c: #include mono-config.h
18277
18278 2004-04-15  Jackson Harper  <jackson@ximian.com>
18279
18280         * culture-info-tables.h: Fix date formats for en-US culture.
18281         
18282 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
18283
18284         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
18285         ThreadPool.SetMinThreads.
18286         * threadpool.c: Implemented ThreadPool.GetMinThreads and
18287         ThreadPool.SetMinThreads.
18288
18289 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18290
18291         * mono-config.c: also load the .config file in the directory
18292         where the assembly was found.
18293
18294 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
18295
18296         * assembly.c: load per-assembly config files.
18297         * icall.c: decrapified code to get the config dir and moved to
18298         mono-config.c.
18299         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
18300         per-assembly config files. When doing a dll map lookup give precedence
18301         to the per-assembly data.
18302
18303 2004-04-14  Martin Baulig  <martin@ximian.com>
18304
18305         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
18306         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
18307         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
18308
18309         * mono-debugger-debugger.c: While the debugger is locked, remember
18310         whether the symbol tables have changes and send one single
18311         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
18312
18313 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
18314
18315         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
18316
18317         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
18318         function.
18319
18320         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
18321         account when marshalling string arrays. Fixes #56965.
18322
18323 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
18324
18325         * icall.c: Add new icalls mapping for security.
18326         * security.c|h: Add internal calls for WindowsIdentity,
18327         WindowsImpersonationContext and WindowsPrincipal.
18328
18329 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
18330
18331         * class.c: Added comment to ensure the System.MonoDummy class
18332         is removed when no longer necessary
18333
18334 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
18335
18336         * appdomain.c: Pass arguments to the bootstraping exceptions to
18337         minimize JITed methods at boot
18338
18339         * metadata.c (mono_exception_from_name_two_strings): Allow for the
18340         second string to be null.
18341
18342         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
18343         Change the protocol to minimize the JIT methods at startup.  Now
18344         it Returns the internal codepage, if the value of "int_code_page"
18345         is 1 at entry, and we can not compute a suitable code page
18346         number, returns the code page as a string.
18347
18348 2004-04-13  Jackson Harper  <jackson@ximian.com>
18349
18350         * culture-info-tables.h: Fix number of decimal digits for all
18351         english locales.
18352
18353 2004-04-13  Jackson Harper  <jackson@ximian.com>
18354
18355         * icall.c: Clairfy out of sync error message. It is not always
18356         your corlib that is out of sync.
18357
18358 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
18359
18360         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
18361         properties when only the set accessor is overriden. Fixes #55874.
18362
18363 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
18364
18365         * assembly.c (mono_assembly_load_references): Make this thread safe.
18366         Fixes #56327.
18367
18368 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
18369
18370         * monosn.c: Add missing initialization calls.
18371
18372 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
18373
18374         * locales.c:
18375         ves_icall_System_Globalization_CultureInfo_construct_number_format
18376         Fix g_assert so it compiles on fussier compilers re int/ptr
18377         mismatch
18378
18379 2004-04-08  Dick Porter  <dick@ximian.com>
18380
18381         * socket-io.h:
18382         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
18383         53992.  Also rearrange the code so that the internal calls return
18384         an error value and exceptions are thrown from managed code.
18385
18386         * icall.c: Add type info to the socket icalls.
18387
18388 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18389
18390         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
18391         owes me a beer.
18392
18393 2004-04-07  Martin Baulig  <martin@ximian.com>
18394
18395         * class.c (mono_class_from_generic_parameter): Don't default
18396         `klass->parent' to `mono_defaults.object_type'.
18397
18398 2004-04-07  Martin Baulig  <martin@ximian.com>
18399
18400         * reflection.c (mono_reflection_initialize_generic_parameter): Set
18401         `param->pklass->reflection_info'.       
18402
18403 2004-04-07  Jackson Harper  <jackson@ximian.com>
18404
18405         * culture-info-tables.h: Fix date separator symbol.
18406         
18407 2004-04-07  Martin Baulig  <martin@ximian.com>
18408
18409         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
18410         from System.Type to System.MonoType.
18411
18412 2004-04-07  Martin Baulig  <martin@ximian.com>
18413
18414         * reflection.h
18415         (MonoReflectionGenericParam): Added `has_reference_type' and
18416         `has_value_type' fields.
18417
18418         * reflection.c (mono_image_get_generic_param_info): Encode the
18419         correct flags if we have the `class' or `struct' constraint.
18420
18421 2004-04-07  Martin Baulig  <martin@ximian.com>
18422
18423         * reflection.h
18424         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
18425
18426 2004-04-07  Jackson Harper  <jackson@ximian.com>
18427
18428         * appdomain.c: Revert extra patches, just wanted to bump the
18429         version number.
18430         
18431 2004-04-07  Jackson Harper  <jackson@ximian.com>
18432
18433         * Makefile.am: Add culture-info private headers.
18434         * icall.c: Add new icalls for contructing locales.
18435         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
18436         * locales.h: Declare new culture info construction methods.
18437         * object.h: Add new fields used to avoid the CultureMap to
18438         MonoCultureInfo.
18439         * culture-info.h: Definition of structs used in the culture info
18440         tables.
18441         * culture-info-tables.h: Autogenerated tables that contain culture
18442         info data. This file was generated with the locale-builder tool.
18443         * appdomain.c: Incement corlib version number.
18444         
18445 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
18446
18447         * appdomain.c: (mono_runtime_init) move mono_thread_init
18448         to before mono_object_new calls so critical sections
18449         are initialized before use.
18450
18451 2004-04-07  Martin Baulig  <martin@ximian.com>
18452
18453         * icall.c
18454         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
18455         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
18456         (ves_icall_MonoGenericParam_initialize): Removed.
18457         (monogenericparam_icalls): Removed.
18458         (generictypeparambuilder_icalls): Added new table for
18459         System.Reflection.Emit.GenericTypeParameterBuilder.
18460
18461         * reflection.c
18462         (mono_reflection_define_generic_parameter): Removed.
18463         (mono_reflection_initialize_generic_parameter): This is now called
18464         from GenericTypeParameterBuilder's .ctor.
18465
18466 2004-04-06  Martin Baulig  <martin@ximian.com>
18467
18468         * class.c (mono_class_init): Don't inflate nested classes in a
18469         generic instance.
18470         (mono_type_get_name_recurse): Include the generic arguments for
18471         generic instances and generic type declarations.
18472         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
18473         (_mono_class_get_instantiation_name): Removed.
18474         (mono_class_create_generic): Always use `gklass->name' as our name.
18475
18476         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
18477
18478         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
18479         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
18480         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
18481         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
18482         closed generic methods here.
18483
18484         * reflection.c
18485         (mono_reflection_generic_inst_get_nested_types): Removed.
18486         (inflate_mono_method): Copy the generic parameters from the
18487         MonoMethodHeader into out MonoGenericMethod.
18488
18489 2004-04-06  Martin Baulig  <martin@ximian.com>
18490
18491         * row-indexes.h
18492         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
18493
18494         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
18495
18496         * reflection.c (build_compressed_metadata): If we have any entries
18497         in the GenericParam, MethodSpec or GenericParamConstraint tables,
18498         set the header version to 1.1.
18499
18500 2004-04-06  Martin Baulig  <martin@ximian.com>
18501
18502         * class.c (mono_class_init): If we're a generic instance,
18503         initialize our nested classes, too.
18504         (_mono_class_get_instantiation_name): Deal with the new `!%d'
18505         suffix. 
18506
18507 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18508
18509         * process.c: quote the argument passed to the shell on windows.
18510
18511 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
18512
18513         * threads.c (mono_alloc_special_static_data): Allow this to be
18514         called during startup.
18515
18516 2004-04-02  Martin Baulig  <martin@ximian.com>
18517
18518         * icall.c
18519         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
18520
18521 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
18522
18523         * icall.c: Fix build.
18524
18525 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
18526
18527         * Makefile.am: Added security.c|h.
18528         * icall.c: Added icall for get_UserName;
18529         * security.c: New file for security related icalls. Added function
18530         get_UserName for System.Environment (fix #56144).
18531         * security.h: New. Header file for security.c
18532
18533 2004-04-02  Dick Porter  <dick@ximian.com>
18534
18535         * icall.c: Deleted the icalls that were obsoleted some time ago
18536         by the ICU string code, and which were mixed into the icall
18537         rearranging.  Fixes bug 55969.
18538
18539         * string-icalls.h: 
18540         * string-icalls.c: Deleted the code that those icalls reference.
18541
18542 2004-04-01  Martin Baulig  <martin@ximian.com>
18543
18544         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
18545
18546         * class.c (mono_class_from_generic_parameter): Don't set 
18547         TYPE_ATTRIBUTE_INTERFACE.
18548         (my_mono_class_from_generic_parameter): Likewise.
18549
18550 2004-04-01  Martin Baulig  <martin@ximian.com>
18551
18552         * loader.c (find_method): Added an optional `MonoClass *ic'
18553         argument to search in a specific interface.
18554         (mono_get_method_constrained): New public function.
18555
18556 2004-04-01  Martin Baulig  <martin@ximian.com>
18557
18558         * reflection.c (mono_image_get_generic_field_token): Use the
18559         `handleref' cache here.
18560
18561 2004-04-01  Martin Baulig  <martin@ximian.com>
18562
18563         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
18564
18565         * reflection.c (create_generic_typespec): Use the `typespec' hash
18566         here, not the `typeref' one.    
18567
18568 2004-04-01  Martin Baulig  <martin@ximian.com>
18569
18570         * class.c (mono_class_inflate_generic_type): Moved the
18571         functionality into a new static inflate_generic_type() which
18572         returns NULL if it didn't do anything.  Only increment the
18573         `mono_stats.inflated_type_count' if we actually inflated
18574         something.
18575         (mono_class_get_full): Check the classes type to see whether we
18576         need to inflate it; also inflate MONO_TYPE_(M)VAR.
18577
18578 2004-04-01  Jackson Harper  <jackson@ximian.com>
18579
18580         * reflection.c: Set culture for assembly references.
18581         
18582 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
18583
18584         * reflection.[ch], icall.[ch], Fix support for pinning variables.
18585
18586 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18587
18588         * assembly.c:
18589         (do_mono_assembly_open): the critical section also covers
18590         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
18591
18592 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18593
18594         * threads.c:
18595         (mono_manage_threads): abort the background threads when finishing.
18596         Fixes bug #47232.
18597
18598 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18599
18600         * gc.c: only close the done_event handle if there was no timeout.
18601         C-ified comments.
18602
18603 2004-03-30  Martin Baulig  <martin@ximian.com>
18604
18605         * icall.c (icall_entries): It's called "System.Activator", not
18606         "System.Activation".    
18607
18608 2004-03-30  Martin Baulig  <martin@ximian.com>
18609
18610         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
18611         (mono_class_create_from_typespec): Likewise.
18612
18613 2004-03-30  Martin Baulig  <martin@ximian.com>
18614
18615         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
18616         `has_ctor_constraint' and `initialized'.
18617
18618 2004-03-30  Martin Baulig  <martin@ximian.com>
18619
18620         * reflection.c (encode_new_constraint): New static function to add
18621         the constructor constraint attribute to a type parameter.
18622         (encode_constraints): Call encode_new_constraint() if necessary.
18623
18624         * reflection.h
18625         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
18626
18627         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
18628         
18629 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
18630
18631         * reflection.c, icall.c: add support for pinning variables. 
18632
18633 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
18634
18635         * marshal.c (mono_marshal_get_managed_wrapper):
18636         init bool local with zero rather than null.
18637
18638 2004-03-29  Martin Baulig  <martin@ximian.com>
18639
18640         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
18641         the "official" behavior here.
18642         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
18643
18644 2004-03-29  Martin Baulig  <martin@ximian.com>
18645
18646         * icall.c: Reflect latest API changes.
18647
18648 2004-03-29  Martin Baulig  <martin@ximian.com>
18649
18650         * loader.c (mono_get_method_from_token): Also call
18651         mono_metadata_load_generic_params () for abstract and interface
18652         methods; replace the type arguments in the method signature with
18653         the ones which are loaded from the metadata.
18654
18655 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
18656
18657         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
18658         of the lock is not the current thread. MS.NET don't do it, in spite of
18659         what the documentation says. See bug #56157.
18660
18661 2004-03-28  Martin Baulig  <martin@ximian.com>
18662
18663         * class.c (mono_class_init): Don't call init_properties() and
18664         init_events() for generic instances; set `prop->parent' when
18665         inflating properties.
18666
18667         * reflection.c (mono_generic_inst_get_object): Call
18668         `mono_class_init (ginst->klass)'.
18669         (mono_type_get_object): Only create a MonoGenericInst if your
18670         generic type is a TypeBuilder.
18671         (do_mono_reflection_bind_generic_parameters): Only set
18672         `ginst->is_dynamic' if our generic type is a TypeBuilder.
18673
18674 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
18675
18676         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
18677         Fixes #56091.
18678
18679 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18680
18681         * icall.c: added Kill_internal icall.
18682         * process.[ch]: added Kill_internal icall.
18683
18684 2004-03-25  Martin Baulig  <martin@ximian.com>
18685
18686         * class.h (MonoStats): Added `generic_instance_count',
18687         `inflated_method_count', `inflated_type_count' and
18688         `generics_metadata_size'.       
18689
18690 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18691
18692         * reflection.c: no warnings now.
18693
18694 2004-03-25  Martin Baulig  <martin@ximian.com>
18695
18696         * class.c (mono_class_get_full): New public function; does a
18697         mono_class_get(), but also takes a `MonoGenericContext *'.
18698
18699         * loader.c (mono_field_from_memberref): Renamed to
18700         `field_from_memberref', made static and added `MonoGenericContext *'
18701         argument.
18702         (mono_field_from_token): Added `MonoGenericInst *' argument.
18703         (method_from_memberef): Likewise.
18704         (mono_get_method_from_token): Likewise.
18705         (mono_get_method_full): New public function; does a
18706         mono_get_method(), but also takes a `MonoGenericContext *'.
18707
18708         * verify.c (mono_method_verify): Get the method's generic context
18709         and pass it to mono_field_from_token(), mono_get_method_full() and
18710         mono_class_get_full().
18711
18712 2004-03-25  Martin Baulig  <martin@ximian.com>
18713
18714         * class.c (mono_class_inflate_generic_type): Take a
18715         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
18716         `MonoGenericMethod *'.
18717
18718 2004-03-25  Martin Baulig  <martin@ximian.com>
18719
18720         * loader.h (MonoMethodInflated): Store the MonoGenericContext
18721         instead of the MonoGenericMethod here.
18722
18723 2004-03-25  Martin Baulig  <martin@ximian.com>
18724
18725         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
18726         each time we create a new MonoGenericInst, we also create a new
18727         context which points back to us.
18728
18729         * class.c (inflate_method): Use `ginst->context' instead of
18730         creating a new context.
18731
18732         * loader.c (method_from_memberref): Use
18733         `klass->generic_inst->context' instead of creating a new context.
18734
18735 2004-03-25  Martin Baulig  <martin@ximian.com>
18736
18737         * class.h (MonoGenericContext): New struct.
18738         (MonoGenericMethod): Removed `generic_inst'.
18739
18740         * class.c (mono_class_inflate_generic_method): Take a
18741         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
18742
18743 2004-03-25  Martin Baulig  <martin@ximian.com>
18744
18745         * loader.h (MonoMethodInflated): New typedef.
18746
18747         * metadata.h (MonoMethodSignature): Removed `gen_method', make
18748         `generic_param_count' consume just 30 bits, added `is_inflated'
18749         and `has_type_parameters' flags (one bit each).
18750
18751         * class.c (mono_class_inflate_generic_method): Create a
18752         MonoMethodInflated instead of a MonoMethodNormal and set
18753         `is_inflated' in the method signature.
18754
18755         * class.h (MonoGenericMethod): Removed `generic_method'.
18756
18757 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
18758
18759         * image.c: Make sure the name of a MonoImage is always an absolute path.
18760           This fixes bug #54415.
18761
18762 2004-03-24  Martin Baulig  <martin@ximian.com>
18763
18764         * class.c (mono_class_setup_vtable): If we're a generic instance,
18765         use our generic type's vtable size.
18766
18767 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
18768
18769         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
18770         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
18771         problems.
18772
18773 2004-03-23  Martin Baulig  <martin@ximian.com>
18774
18775         * class.h (MonoDynamicGenericInst): Added `int count_events' and
18776         `MonoEvent *events'.
18777
18778         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
18779         (typebuilder_icalls): Added "get_event_info"; calls
18780         mono_reflection_event_builder_get_event_info(). 
18781
18782         * reflection.c (mono_reflection_generic_inst_initialize): Added
18783         `MonoArray *events'.
18784         (mono_reflection_event_builder_get_event_info): New function.
18785
18786 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
18787
18788         * object.h: add mono_type_initialization_init
18789
18790         * object.c (mono_runtime_class_init): 
18791         implement class constructor synchronization rules
18792         to cope with threading issues.  
18793         add mono_type_initialization_init
18794
18795         * appdomain.c (mono_runtime_init): call 
18796         mono_type_initialization_init
18797
18798         * class.h: removing initializing field from MonoVTable
18799
18800 2004-03-23  Martin Baulig  <martin@ximian.com>
18801
18802         * class.c (my_mono_class_from_generic_parameter): Use
18803         `param->name' if it's not NULL. 
18804
18805 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
18806
18807         * class.c: do not insert non-virtual methods in the vtable.
18808         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
18809         that means the method is non-virtual. This never would have
18810         happened before.
18811
18812 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
18813
18814         * profiler.c: Added lock for accessing coverage_hash.
18815
18816 2004-03-22  Martin Baulig  <martin@ximian.com>
18817
18818         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
18819         `method->method->signature->generic_param_count != 0' to make it
18820         work for interface methods.
18821
18822 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18823
18824         * process.c: quote the string passed to the shell using g_shell_quote.
18825
18826 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18827
18828         * threads.c:
18829         (mono_threads_manage): don't remove the finalizer thread and self
18830         from the threads hash table so that mono_thread_manage can be called
18831         more than once.
18832
18833 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18834
18835         * process.c: quote the arguments when UseShellExecute is true. Fixes
18836         bug #55790.
18837
18838 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18839
18840         * threads.c: set mono_thread_detach as a cleanup routine for every
18841         thread. This way it's always executed upon thread termination, either
18842         aborted or finished normally. No more xsp hangs!
18843
18844 2004-03-17  Martin Baulig  <martin@ximian.com>
18845
18846         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
18847         `int count_nested' and a `MonoType **nested'.
18848
18849         * reflection.c (mono_reflection_bind_generic_parameters): Moved
18850         most of the functionality into a new static
18851         do_mono_reflection_bind_generic_parameters() and don't take a
18852         `MonoType *nested_in' argument any more.  Don't compute nested
18853         types here.
18854         (mono_reflection_generic_inst_get_nested_types): New public method
18855         to get nested types.
18856
18857         * class.c (mono_class_create_generic): Set `klass->nested_in' if
18858         we're a nested class.
18859
18860         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
18861         mono_reflection_generic_inst_get_nested_types() to compute the
18862         nested types.
18863
18864 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
18865
18866         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
18867         descriptive error message under windows.
18868         
18869 2004-03-17  Martin Baulig  <martin@ximian.com>
18870
18871         * class.c (dup_type): Added `const MonoType *original' argument;
18872         copy the attrs from the original type.
18873
18874 2004-03-17  Martin Baulig  <martin@ximian.com>
18875
18876         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
18877         `m->generic_inst_cache' here.
18878
18879 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
18880
18881         * exception.h exception.c: Add stack_overflow_exception.
18882
18883 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18884
18885         * threadpool.c:
18886         (overlapped_callback): call SetEvent *after* invoking the callback.
18887         No need to call CloseHandle.
18888
18889 2004-03-16  Martin Baulig  <martin@ximian.com>
18890
18891         * reflection.c (mono_image_get_fieldref_token): Take a
18892         `MonoReflectionField *' instead of a `MonoClassField *' and a
18893         `MonoClass *'; store the `MonoReflectionField *' in the hash.
18894
18895 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18896
18897         * appdomain.c: don't add the culture to the filename we're looking for
18898         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
18899
18900 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18901
18902         * locales.c: don't ignore symbols when doing case insensitive compares.
18903         Thanks Dick! Fixes bug #54046.
18904
18905         * threads.c: surround 'threads' usage with enter/leave in
18906         mono_thread_manage.
18907
18908 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
18909
18910         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
18911         implicitly marshalled as [Out]. Fixes #55450.
18912
18913         (mono_marshal_get_runtime_invoke): Zero out the result if there is
18914         an exception.
18915
18916 2004-03-16  Martin Baulig  <martin@ximian.com>
18917
18918         * class.c (mono_class_from_generic_parameter): Use the actual
18919         parameter name. 
18920
18921 2004-03-16  Martin Baulig  <martin@ximian.com>
18922
18923         * reflection.c (type_get_signature_size): New static function.
18924         Compues the size of the type in a method signature.
18925         (method_get_signature_size): New static function; calls
18926         type_get_signature_size() to compute the actual size of the
18927         method's signature.
18928         (method_encode_signature): Use method_get_signature_size() to get
18929         the signature's size rather than using `nparams * 10'.
18930
18931 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18932
18933         * file-io.h: define here WapiOverlapped on windows. I don't want the
18934         regular OVERLAPPED one.
18935
18936         * file-io.c:
18937         * threadpool.c: somehow, BindIoCompletionCallback is not found.
18938         Disabling AIO on windows.
18939
18940 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18941
18942         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
18943         bug #55385.
18944
18945 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18946
18947         * appdomain.c: upgraded corlib version.
18948
18949         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
18950         and BeginWrite. Allow opening files for asynchrnous operations.
18951
18952         * file-io.h: new struct that maps FileStreamAsyncResult.
18953         * icall.c: added new icalls.
18954         * process.[ch]: support setting child process environment variables
18955         and use the SHELL or COMSPEC when UseShellExecute is true.
18956
18957         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
18958         callback for async. IO is here and also BindHandle.
18959
18960         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
18961         from here.
18962
18963 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
18964
18965         * reflection.c (create_custom_attr): Allow len == 0.
18966
18967         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
18968         computation on big-endian machines.
18969
18970 2004-03-13  Martin Baulig  <martin@ximian.com>
18971
18972         * class.h (MonoGenericInst): Added `int count_ifaces'.
18973
18974         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
18975         `ginst->count_ifaces' instead `klass->interface_count' since we
18976         may get called before the vtable is created.
18977
18978         * loader.c (mono_method_get_param_names): If we're a generic
18979         instance, return and don't initialize the class.
18980
18981         * reflection.c (mono_reflection_setup_generic_class): Don't call
18982         ensure_runtime_vtable().
18983         (mono_reflection_bind_generic_parameters): Set
18984         `ginst->count_ifaces'.
18985
18986 2004-03-11  Jackson Harper <jackson@ximian.com>
18987
18988         * icall.c:
18989         * unicode.c:
18990         * unicode.h: Remove unused System.Char icalls.
18991         
18992 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
18993
18994         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
18995         code when we P/Invoke the first library in Windows.Forms, instead
18996         of when we first open the assembly.
18997
18998         * assembly.c: Drop the lookup from here.
18999
19000 2004-03-10  Martin Baulig  <martin@ximian.com>
19001
19002         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
19003         class for properties, fields and events.  Finally fixes #54945.
19004
19005 2004-03-10  Martin Baulig  <martin@ximian.com>
19006
19007         * metadata.c (mono_metadata_class_equal): New static function;
19008         checks whether two generic instances or two generic parameters are
19009         equal.
19010         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
19011         compare classes.        
19012
19013 2004-03-10  Martin Baulig  <martin@ximian.com>
19014
19015         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
19016
19017         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
19018         argument and write it into the `reflection_info' field.
19019
19020         * icall.c
19021         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
19022         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
19023
19024 2004-03-09  Jackson Harper  <jackson@ximian.com>
19025
19026         * char-conversions.h: use 8 bits for numeric data its all we need
19027         * icall.c: numeric data is only 8 bits now.
19028
19029 2004-03-09  Martin Baulig  <martin@ximian.com>
19030
19031         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
19032
19033         * class.c (init_properties, init_events): Initialize the new
19034         `parent' field.
19035
19036         * reflection.c (typebuilder_setup_properties): Likewise.
19037         (typebuilder_setup_events): Likewise.
19038
19039         * reflection.h (MonoEventInfo): Replaced `parent with
19040         `declaring_type' and `reflected_type'.
19041
19042         * icall.c (ves_icall_get_property_info): Distinguish between
19043         declaring and reflected type.
19044         (ves_icall_get_event_info): Likewise.
19045
19046 2004-03-09  Martin Baulig  <martin@ximian.com>
19047
19048         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
19049         (ves_icall_Type_GetField): Correctly set field->klass.
19050
19051 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
19052
19053         * loader.h: Fix warning.
19054
19055 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
19056
19057         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
19058         library routine if present.  Notice that it will still continue
19059         executing even if its missing, for those working on the Gtk#
19060         edition of Windows.Forms.
19061
19062         * assembly.c (do_mono_assembly_open): If loading the
19063         System.Windows.Forms call mono_loader_wini_init.
19064
19065 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
19066
19067         * class.h: Added MonoRemoteClass struct.
19068         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
19069         function for MonoStrings.
19070         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
19071         Added internal call for getting the proxy type.
19072         * marshal.c: Get the type of transparent proxies from its remote_class.
19073         Added methods that generate the IL for type checks and casts:
19074         mono_marshal_get_isinst, mono_marshal_get_castclass, 
19075         mono_marshal_get_proxy_cancast.
19076         * marshal.h: Declaration of the previous new methods.
19077         * object.c: Added new moethods for creating and updating MonoRemoteClass
19078         instances: mono_remote_class, mono_upgrade_remote_class, 
19079         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
19080         * verify.c: FIx transparent_proxy_fields layout.
19081         * appdomain.c: Bump corlib version.
19082
19083 2004-03-04  Jackson Harper  <jackson@ximian.com>
19084
19085         * icall.c: Add icall to access char conversion tables.
19086         * char-conversions.h: Character conversion tables.
19087         * Makefile.am: Add char-conversions.h private header file.
19088         
19089 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
19090
19091         * appdomain.c (unload_thread_main): Increase unloading timeout to
19092         10 sec as a temporary workaround for Nant problems.
19093
19094 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
19095
19096         * gc.c: Add checks for GC_enable and GC_disable.
19097
19098         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
19099         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
19100         (bug #54988).
19101         
19102 2004-02-27  Martin Baulig  <martin@ximian.com>
19103
19104         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19105         `MonoReflectionType *' instead of a `MonoType *'.
19106
19107 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
19108
19109         * gc.c (run_finalize): Avoid finalizing the object representing the
19110         finalizer thread.
19111         (finalizer_thread): Fix warning.
19112
19113 2004-02-25  Martin Baulig  <martin@ximian.com>
19114
19115         * class.c (_mono_class_get_instantiation_name): Added `int offset'
19116         argument for nested types.
19117         (mono_class_create_generic): Added support for nested generictypes.
19118
19119         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
19120         `GList *nested'.
19121
19122         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
19123
19124         * reflection.c (method_encode_signature): Increase the minimum
19125         value of `size' from 10 to 11.
19126         (mono_reflection_bind_generic_parameters): Take `int type_argc'
19127         and `MonoType **types' arguments instead of the `MonoArray
19128         *types'; added `MonoType *nested_in'.  Recursively instantiate
19129         nested classes. 
19130
19131 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
19132
19133         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
19134         stack_overflow_ex members which are used by exception handling.
19135
19136         * appdomain.c (mono_runtime_init): Initialize the new members.
19137
19138         * gc.c (mono_gc_enable): New helper function.
19139         * gc.c (mono_gc_disable): New helper function.
19140
19141 2004-02-23  Martin Baulig  <martin@ximian.com>
19142
19143         * icall.c: I must have been really stupid - make it actually work
19144         this time ;-)
19145
19146 2004-02-23  Martin Baulig  <martin@ximian.com>
19147
19148         * loader.c (method_from_memberref): Only inflate the method if
19149         it's in another klass.
19150
19151 2004-02-23  Martin Baulig  <martin@ximian.com>
19152
19153         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
19154         (mono_class_init): If we're a generic instance and an interface,
19155         compute `class->interface_id'; also create `class->interfaces'
19156         here and inflate them.
19157
19158         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
19159         `ginst->is_open'.
19160         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
19161
19162         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
19163
19164 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
19165
19166         * reflection.c (method_encode_code): Improved the error message
19167         generated by the exception.
19168
19169 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19170
19171         * icall.c: Martin did not do what he said in the ChangeLog for
19172         2004-02-18, but put back the changes for properties and events.
19173         Commenting those changes out again and adding comment to bug #54518.
19174         
19175         * process.c: removed warning.
19176
19177 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
19178
19179         * marshal.c (emit_struct_conv): Print an error message instead of
19180         asserting when a type does not have the StructLayout attribute.
19181
19182 2004-02-20  Martin Baulig  <martin@ximian.com>
19183
19184         * reflection.c (mono_type_get_object): Also use the cache for
19185         generic instances.
19186         (mono_reflection_bind_generic_parameters): Always compute
19187         `ginst->ifaces'.        
19188
19189 2004-02-20  Martin Baulig  <martin@ximian.com>
19190
19191         * class.h (MonoGenericMethod): Removed `klass'.
19192
19193         * class.c (mono_class_inflate_generic_method): Added `MonoClass
19194         *klass' argument.
19195
19196 2004-02-20  Martin Baulig  <martin@ximian.com>
19197
19198         * reflection.c (method_encode_methodspec): Actually use the
19199         uninflated signature for the memberref.
19200
19201 2004-02-20  Martin Baulig  <martin@ximian.com>
19202
19203         * class.h (MonoGenericMethod): Removed `declaring'.
19204
19205         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
19206         is NULL, compute it here.
19207
19208 2004-02-20  Martin Baulig  <martin@ximian.com>
19209
19210         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
19211
19212         * metadata.c (mono_metadata_generic_inst_hash): New method.
19213         (mono_metadata_generic_inst_equal): New method.
19214
19215         * reflection.c (mono_reflection_bind_generic_parameters): Use the
19216         `klass->image->generic_inst_cache' cache to avoid creating
19217         duplicate MonoGenericInst's.
19218
19219         * class.c (mono_class_inflate_generic_type): Use the cache.
19220
19221 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
19222
19223         * object.c: fixed gc descriptor calculation for embedded valuetypes.
19224
19225 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19226
19227         * icall.c: added Socket.WSAIoctl icall.
19228
19229         * socket-io.[ch]: implemented
19230         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
19231
19232 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
19233
19234         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
19235
19236 2004-02-18  Urs C Muff  <umuff@quark.com>
19237
19238         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
19239         this work on PPC and other big-endian architectures.
19240
19241         * debug-mono-symfile.h: Prepended the names of all the `guint32'
19242         fields with an underscore to make sure they're only accessed by
19243         the read32() macro.
19244
19245 2004-02-18  Martin Baulig  <martin@ximian.com>
19246
19247         * icall.c: Put the klass->refclass changes back for methods and
19248         fields, but not for properties and events.  We're currently not
19249         distinguishing between DeclaringType and ReflectedType for
19250         properties and events, that's what caused the regressions.
19251
19252 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19253
19254         * object.c:
19255         (mono_async_result_new): the handle can be NULL.
19256
19257         * threadpool.c: Use an event instead of a semaphore, don't initialize
19258         it until needed. This saves quite a few semaphores from being created
19259         when using the threadpool.
19260
19261 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
19262
19263         * object.c (mono_string_is_interned_lookup): Fix interning of long
19264         strings. Fixes #54473.
19265
19266         * domain.c (ldstr_equal): Optimize if the two strings are equal.
19267
19268         * icall.c: Revert the klass->refclass changes since they introduce
19269         regressions (bug #54518).
19270
19271 2004-02-18  Martin Baulig  <martin@ximian.com>
19272
19273         * class.c (mono_class_init): If we're a generic instance and don't
19274         come from a TypeBuilder, inflate our members here.
19275         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
19276         (mono_class_create_generic): New public method.
19277         (mono_class_initialize_generic): Removed.
19278         (get_instantiation_name): Renamed to
19279         _mono_class_get_instantiation_name() and made it public.
19280
19281 2004-02-18  Martin Baulig  <martin@ximian.com>
19282
19283         * class.c (mono_class_inflate_generic_type): Clear the new
19284         instance's `nginst->klass' when inflating a generic instance.
19285         (mono_class_is_subclass_of): Added (basic) support for generic
19286         instances.
19287
19288 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
19289
19290         * appdomain.h, domain.c: use a MonoCodeManager instead of a
19291         MonoMempool to hold compiled native code.
19292
19293 2004-02-17  Martin Baulig  <martin@ximian.com>
19294
19295         * class.h (MonoDynamicGenericInst): Added `count_properties' and
19296         `properties'.
19297
19298         * reflection.c (mono_reflection_generic_inst_initialize): Added
19299         `MonoArray *properties' argument.
19300
19301         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
19302
19303 2004-02-17  Martin Baulig  <martin@ximian.com>
19304
19305         * icall.c (ves_icall_Type_GetFields): Renamed to
19306         ves_icall_Type_GetFields_internal() and added a
19307         `MonoReflectionType *rtype' argument; pass it to
19308         mono_field_get_object() to set the field's "reflected" type.
19309         (ves_icall_Type_GetConstructors): Likewise.
19310         (ves_icall_Type_GetEvents): Likewise.
19311         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
19312         argument; pass it to mono_method_get_object() to set the method's
19313         "reflected" type.       
19314
19315 2004-02-17  Martin Baulig  <martin@ximian.com>
19316
19317         * class.h (MonoDynamicGenericInst): New type.
19318         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
19319
19320         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
19321         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
19322         (ves_icall_MonoGenericInst_GetFields): New interncall.
19323
19324         * class.c (mono_class_from_generic): Don't call
19325         mono_class_initialize_generic() if this is a dynamic instance;
19326         ie. it's being created from a TypeBuilder.
19327         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
19328         `class->byval_arg.type'.
19329
19330         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
19331         to `inflate_method' and made static.
19332         (mono_reflection_inflate_field): Removed.
19333         (mono_reflection_generic_inst_initialize): New public method.
19334
19335         * reflection.h (MonoReflectionGenericInst): Removed `methods',
19336         `ctors' and `fields'; added `initialized'.
19337
19338 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
19339
19340         * debug-helpers.c (mono_method_full_name): Fix output for empty
19341         namespaces.
19342
19343 2004-02-12  Martin Baulig  <martin@ximian.com>
19344
19345         * class.h (MonoClassField): Added `MonoType *generic_type'.
19346
19347         * reflection.c (mono_image_get_fieldref_token): Added support for
19348         instantiated generic types.
19349         (field_encode_inflated_field): Removed.
19350         (mono_image_get_inflated_field_token): Removed.
19351         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
19352
19353         * reflection.h (MonoReflectionInflatedField): Removed.
19354
19355 2004-02-12  Martin Baulig  <martin@ximian.com>
19356
19357         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
19358         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
19359
19360         * reflection.c (mono_image_get_methodspec_token): Take a
19361         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
19362         (mono_image_create_token): Check whether we have a
19363         `method->signature->gen_method' and call
19364         mono_image_get_methodspec_token() if appropriate.
19365         (inflated_method_get_object): Removed.
19366         (mono_reflection_bind_generic_method_parameters): Return a
19367         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
19368         (mono_reflection_inflate_method_or_ctor): Likewise.
19369
19370         * reflection.h (MonoReflectionInflatedMethod): Removed.
19371
19372 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
19373
19374         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
19375         for custom valuetype marshalling.
19376
19377         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
19378
19379 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19380
19381         * icall.c: fixed WSAGetLastError_internal name.
19382
19383 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
19384
19385         * threads.c (mono_thread_attach): Allow this to be called multiple
19386         times for a thread.
19387         
19388         * threads.c (build_wait_tids): Do not wait for ourselves.
19389
19390         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
19391         appdomain list is empty.
19392
19393         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
19394         memory returned by mono_string_builder_to_utf16, since it points into
19395         managed memory. Thanks to Bernie Solomon for noticing this.
19396
19397         * icall.c: Add AppDomainSetup icalls.
19398
19399         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
19400
19401         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
19402         types.
19403
19404         * reflection.c (reflection_methodbuilder_to_mono_method): Save
19405         custom attributes to the method_aux struct. Also fix array indexes etc.
19406
19407         * loader.c (mono_method_get_param_names): Make dynamic case work again.
19408         
19409 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
19410
19411         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
19412         (both static and runtime) and reduce startup time.
19413
19414 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
19415
19416         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
19417         AsAny marshalling conversion instead of crashing.
19418
19419         * marshal.c: Fix warnings.
19420
19421 2004-02-09  Martin Baulig  <martin@ximian.com>
19422
19423         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
19424
19425         * reflection.h (MonoReflectionInflatedMethod): Removed the
19426         `declaring' field, it's now in the unmanaged MonoGenericMethod.
19427
19428         * reflection.c (method_encode_methodspec): Removed the `method'
19429         argument; we get it from `gmethod->declaring'.
19430         (inflated_method_get_object): Removed the `declaring' argument.
19431
19432 2004-02-09  Martin Baulig  <martin@ximian.com>
19433
19434         * class.h (MonoGenericMethod): New type.
19435         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
19436         `generic_method'.
19437
19438         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
19439         a `MonoGenericMethod *gen_method' one.
19440
19441         * class.c (mono_class_inflate_generic_type): Take an additional
19442         `MonoGenericMethod * argument.  This is only non-NULL if we're
19443         inflating types for a generic method.   
19444         (mono_class_inflate_generic_signature): Renamed to
19445         inflate_generic_signature() and made static; take a
19446         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19447         (inflate_generic_header): Take a `MonoGenericMethod *' argument
19448         instead of a `MonoGenericInst *' one.
19449         (mono_class_inflate_generic_method): Likewise.
19450
19451         * reflection.c (encode_generic_method_sig): Take a
19452         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
19453         (method_encode_methodspec): Likewise.
19454         (inflated_method_get_object): Likewise. 
19455
19456         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
19457         field with a `MonoGenericMethod *gmethod' one.  
19458
19459 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
19460
19461         * class.h (mono_class_has_parent): add parens to expansion
19462         so you can ! this.
19463
19464 2004-02-08  Martin Baulig  <martin@ximian.com>
19465
19466         * image.h (MonoImage): Removed `generics_cache'.
19467
19468         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
19469         instead of a `MonoType *' argument; removed the `inflate_methods'
19470         argument.  Don't inflate methods here.
19471
19472         * loader.c (find_method): If it's a generic instance, call
19473         mono_class_init() on the `sclass->generic_inst->generic_type'.
19474
19475         * metadata.c (mono_type_size): Make this work on uninitialized
19476         generic instances; call it on the `ginst->generic_type's class.
19477
19478         * reflection.c (mono_reflection_bind_generic_parameters): Call
19479         mono_class_from_generic() to create the `ginst->klass'.
19480
19481 2004-02-08  Martin Baulig  <martin@ximian.com>
19482
19483         * class.h (MonoClass): Changed type of `generic_inst' from
19484         `MonoType *' to `MonoGenericInst *'.
19485
19486 2004-02-08  Martin Baulig  <martin@ximian.com>
19487
19488         * icall.c (ves_icall_Type_BindGenericParameters): Just call
19489         mono_type_get_object(), this is now creating a `MonoGenericInst'
19490         for MONO_TYPE_GENERICINST.
19491         (ves_icall_MonoGenericInst_GetParentType): Likewise.
19492         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
19493
19494         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
19495         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
19496         (inflated_method_get_object): Added `MonoClass *refclass' argument.
19497         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
19498         and reflected type.
19499
19500         * reflection.h (MonoReflectionInflatedMethod): Removed
19501         `declaring_type' and `reflected_type'.
19502
19503 2004-02-08  Martin Baulig  <martin@ximian.com>
19504
19505         * class.h (MonoGenericInst): Added `MonoType *parent' and
19506         `MonoType **ifaces'.
19507
19508         * reflection.h (MonoReflectionGenericInst): Removed `klass',
19509         `parent' and `interfaces'.
19510
19511         * reflection.c (mono_reflection_bind_generic_parameters): Take a
19512         `MonoType *' argument and return a `MonoType *'.
19513
19514         * icall.c
19515         (ves_icall_MonoGenericInst_GetParentType): New interncall.
19516         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
19517
19518 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19519
19520         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
19521         valuetype marshalling.
19522
19523 2004-02-06  Martin Baulig  <martin@ximian.com>
19524
19525         * class.c
19526         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
19527         (my_mono_class_from_generic_parameter): Likewise.
19528
19529 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
19530
19531         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
19532         contents of the symbol files lazily.
19533
19534         * object.h (MonoThread): Add 'name' and 'name_len' fields.
19535
19536         * threads.h threads.c icall.c: New icalls for getting and setting the
19537         threads name.
19538
19539 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
19540
19541         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
19542         Raise an exception when the domain is not found.
19543
19544 2004-02-03  Martin Baulig  <martin@ximian.com>
19545
19546         * reflection.c (mono_image_get_methodspec_token): Use the
19547         uninflated signature; fixes gen-33.
19548
19549 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
19550
19551         * gc.c threads.c: Make the finalizer thread a normal managed thread so
19552         the finalizer code can use thread functionality.
19553
19554         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
19555         the finalizer thread.
19556
19557         * threads.c: Make some functions more robust.
19558
19559         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
19560
19561         * metadata.h: Add new marshalling conventions.
19562
19563         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
19564         stringbuilder marshalling. Fixes #53700.
19565
19566         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
19567
19568         * reflection.c (mono_image_get_type_info): Save declarative security
19569         info.
19570
19571         * reflection.c (mono_image_get_field_info): Handle uninitialized 
19572         unmanaged fields as well.
19573
19574         * appdomain.c: Bump corlib version.
19575
19576 2004-02-01  Martin Baulig  <martin@ximian.com>
19577
19578         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
19579         method type arguments.  
19580
19581 2004-01-30  Duncan Mak  <duncan@ximian.com>
19582
19583         * marshal.h: Add prototype for
19584         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
19585         and
19586         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
19587         fix the build.
19588
19589 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
19590
19591         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
19592         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
19593
19594 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19595
19596         * marshal.c (mono_marshal_get_native_wrapper): Add support for
19597         custom marshalling of valuetypes.
19598
19599         * marshal.c: Fix some warnings.
19600
19601 2004-01-29  Martin Baulig  <martin@ximian.com>
19602
19603         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
19604         for generic method parameters.
19605
19606         * reflection.c (method_encode_methodspec): Write the uninflated
19607         signature into the methodspec table.
19608         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
19609         is always the uninflated method.
19610         (reflection_methodbuilder_to_mono_method): Copy the generic
19611         parameters from the MethodBuilder into `header->gen_params'.
19612
19613 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
19614
19615         * class.c (mono_class_from_generic_parameter): Fix warning.
19616
19617 2004-01-27  Martin Baulig  <martin@ximian.com>
19618
19619         * class.c (mono_class_from_generic_parameter): Don't create
19620         `klass->methods' here.  
19621
19622 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
19623
19624         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
19625         extension since it does not work with libraries named lib<FOO>.dll.so.
19626
19627 2004-01-25  Martin Baulig  <martin@ximian.com>
19628
19629         * class.c (mono_class_inflate_generic_type): Added support for
19630         MONO_TYPE_GENERICINST.
19631
19632         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
19633         inflate methods on open constructed types.      
19634
19635 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19636
19637         * object.c: fire ProcessExit event in the root AppDomain after running
19638         Main. Fixes bug #53299.
19639
19640 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
19641
19642         * socket-io.c: include the new socket-wrappers.h header.
19643         Use the wrappers instead of the unix socket functions to make the code
19644         more clear.
19645
19646 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
19647
19648         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
19649
19650         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19651         Fixes #22532.
19652
19653 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
19654
19655         * reflection.c (mono_image_create_pefile): Handle the case when the
19656         entry point is not a MethodBuilder.
19657
19658         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19659         field to ReflectionMethod since it is not allways a builder.
19660
19661         * reflection.c (type_get_fully_qualified_name): New helper function to
19662         return the fully qualified name of a type.
19663
19664         * reflection.c (encode_marshal_blob): Always emit the fully qualified
19665         type name for custom marshallers.
19666
19667         * reflection.c (mono_marshal_spec_from_builder): Ditto.
19668
19669         * class.c (mono_class_setup_vtable): If a parent class already 
19670         implements an interface, use the implementing methods from that class.
19671         Fixes #53148.
19672
19673 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19674
19675         * threadpool.c: just return instead of ExitThread to allow for thread
19676         clean up earlier.
19677
19678 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
19679
19680         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
19681         when closing resource modules.
19682
19683         * reflection.c (mono_image_create_pefile): Handle the case when the
19684         entry point is not a MethodBuilder.
19685
19686         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
19687         field to ReflectionMethod since it is not allways a builder.
19688
19689 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
19690
19691         * marshal.c (mono_marshal_get_managed_wrapper): 
19692         mono_marshal_alloc takes native int so CONV_I
19693         the arg for 64bits.
19694
19695 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
19696
19697         * reflection.c (fixup_cattrs): New function to fixup the methoddef
19698         tokens in the cattr table. Fixes #53108.
19699
19700 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19701
19702         * loader.c: don't trim ".dll" before looking up in the config file.
19703         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
19704
19705 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
19706
19707         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
19708         Return the module which contains the resource as well.
19709         (ves_icall_System_Reflection_Module_Close): New icall.
19710
19711         * appdomain.c: Bump corlib version number.
19712
19713         * image.c (mono_image_addref): New public function.
19714
19715         * assembly.c: Call mono_image_addref.
19716
19717         * reflection.c (mono_module_get_object): Increase reference count of 
19718         the image.
19719
19720         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
19721         Fixes #22532.
19722
19723         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
19724         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
19725         proper exceptions on DllImport problems.
19726
19727 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
19728
19729         * class.c, metadata.c: eliminate CSIZE macro.
19730
19731 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
19732
19733         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
19734         * object.h: Added async_callback field in MonoAsyncResult.
19735         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
19736         * verify.c: Added async_callback in MonoAsyncResult layout.
19737
19738 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
19739
19740         * reflection.c (mono_reflection_get_custom_attrs): Add support
19741         for Modules.
19742
19743 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19744
19745         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
19746         marshalling.
19747         (mono_marshal_method_from_wrapper): Add null pointer check.
19748
19749 2004-01-16  Martin Baulig  <martin@ximian.com>
19750
19751         * debug-mono-symfile.h: Set version number to 36 and reflect
19752         latest symbol writer changes.
19753
19754 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
19755
19756         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
19757         multi-dimensional arrays.
19758         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
19759         (mono_class_from_mono_type): Use bounded_array_class_get.
19760         
19761         * class.c (mono_bounded_array_class_get): New function which takes
19762         a 'bounded' bool argument to distinguish vectors from one dimensional
19763         arrays.
19764
19765         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
19766         bounded_array_class_get if the array has bounds.
19767
19768         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
19769         Search modules loaded using AssemblyBuilder:AddModule as well.
19770
19771 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19772
19773         * appdomain.c: increased corlib version.
19774         * filewatcher.c: removed g_print.
19775         * icall.c:
19776         (get_property_info): only allocate what is actually requested.
19777         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
19778
19779 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19780
19781         * Makefile.am: added filewatcher.[ch]
19782         * filewatcher.[ch]: FileSystemWatcher runtime support.
19783         * icall.c: added new FSW icalls.
19784
19785 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
19786
19787         * string-icalls.c: fix stringbuilder regression as suggested by
19788         Iain McCoy <iain@mccoy.id.au>.
19789
19790 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
19791
19792         * process.c (process_read_stringtable_block): Recognize '007f' as
19793         a language neutral stringtable block.
19794
19795 2004-01-12  Patrik Torstensson
19796
19797         * object.h (MonoStringBuilder) : Changed layout to support our
19798         new stringbuilder class.
19799         * marshal.c: Change marshalling to support the new layout of 
19800         string builder.
19801         * appdomain.c: increased version number because new layout of
19802         string builder.
19803
19804 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
19805
19806         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
19807         assembly name as an string instead of an AssemblyName, since it is
19808         easier to extract info from it.
19809
19810         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
19811         the culture subdirectories too. Fixes #52231.
19812
19813 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19814
19815         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
19816         It takes 2 new parameters with an optional name for the method to look
19817         for and case ignoring info.
19818
19819         * threadpool.c: removed unused variable.
19820
19821 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19822
19823         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
19824         It takes 2 new parameters with an optional name for the property to look
19825         for and case ignoring info.
19826         Fixes bug #52753.
19827
19828 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
19829
19830         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
19831         Fix #52451.
19832
19833 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19834
19835         * appdomain.c:
19836         * assembly.c: escape the uri before passing it to g_filename_from_uri.
19837         Fixes bug #52630.
19838
19839 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
19840
19841         * reflection.c: Add support for more than one unmanaged resource.
19842
19843         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
19844         in field->def_value, as done in all other cases.
19845
19846         * reflection.c (mono_reflection_get_custom_attrs): Add support for
19847         TypeBuilders.
19848
19849         * reflection.c (mono_reflection_create_runtime_class): Remove 
19850         errorneous assignment to klass->element_class, since it is already
19851         done in mono_reflection_setup_internal_class.
19852
19853 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19854
19855         * gc.c: added missing LeaveCriticalSection.
19856         * icall.c: indented a couple of lines.
19857         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
19858         if we call EndInvoke inside a callback. Fixes bug #52601.
19859
19860 2004-01-07  Martin Baulig  <martin@ximian.com>
19861
19862         * mono-debug-debugger.h
19863         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
19864
19865 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
19866
19867         * appdomain.c: Use messages in NotImplementedException.
19868
19869         * exception.c (mono_get_exception_not_implemented): Now this takes
19870         a message argument.
19871
19872         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
19873         exception instead of g_asserting an aborting when something is not
19874         implemented.
19875
19876         Add some inline docs.
19877
19878 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
19879
19880         * reflection.h: Update after changes to object layout.
19881
19882         * reflection.c: Implement saving of unmanaged aka win32 resources.
19883
19884         * appdomain.c: Bump version number.
19885
19886         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
19887         Handle missing domains gracefully.
19888
19889 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
19890
19891         * file-io.c : On Windows, there are much more invalid_path_chars.
19892
19893 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
19894
19895         * class.h, object.c: prepare for GetType () speedup.
19896
19897 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
19898
19899         * profiler.c: workaround for --profile null reference exception on
19900           cygwin. Patch by Patrik Torstensson.
19901
19902 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
19903
19904         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
19905         make work for unaligned access.
19906
19907 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
19908
19909         * class.c: small cleanup (class->fields [i] -> field).
19910         * image.c: check address of metadata is valid.
19911
19912 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
19913
19914         * assembly.h assembly.c (mono_assembly_loaded): New public function to
19915         search the list of loaded assemblies.
19916
19917         * reflection.c (mono_reflection_type_from_name): Use 
19918         mono_assembly_loaded instead of mono_image_loaded.
19919
19920         * reflection.c: Fix warnings.
19921
19922 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
19923
19924         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
19925         is dynamic. This is needed since an assembly can contain both dynamic and
19926         non-dynamic images.
19927
19928         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
19929         assembly->dynamic.
19930
19931         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
19932
19933         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
19934         to store modules loaded using AddModule.
19935
19936         * reflection.c (mono_image_fill_file_table): Generalize this so it works
19937         on Modules.
19938
19939         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
19940
19941         * reflection.c (mono_image_fill_export_table_from_module): New function to
19942         fill out the EXPORTEDTYPES table from a module.
19943
19944         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
19945         into a separate function. Also handle loaded non-dynamic modules.
19946
19947         * reflection.c (mono_image_basic_init): Fix memory allocation.
19948
19949         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19950
19951         * assembly.c (mono_assembly_load_references): Make this public.
19952
19953 2003-12-19  Martin Baulig  <martin@ximian.com>
19954
19955         * class.c (mono_class_initialize_generic): Made this static, take
19956         a `MonoGenericInst *' instead of a `MonoClass *'.
19957         (mono_class_from_generic): Call mono_class_initialize_generic()
19958         unless we're already initialized or being called from
19959         do_mono_metadata_parse_generic_inst().
19960
19961         * class.h (MonoGenericInst): Added `initialized' and
19962         `init_pending' flags.
19963
19964         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
19965         `mono_class_init (gklass)' or mono_class_initialize_generic()
19966         here; set `generic_inst->init_pending' while parsing the
19967         `type_argv'.
19968
19969 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
19970
19971         * locales.c: include string.h for memxxx prototypes
19972
19973 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
19974
19975         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
19976         constructor when accessing literal fields.
19977
19978 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
19979
19980         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19981
19982         * reflection.c (assembly_add_resource_manifest): New function to fill
19983         the MANIFESTRESOURCE table.
19984
19985         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
19986
19987         * reflection.h: Update to changes in class layout.
19988
19989         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
19990         Reenable call to mono_runtime_is_shutting_down ().
19991
19992         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
19993         determine if the runtime is shutting down.
19994
19995 2003-12-16  Jackson Harper <jackson@ximian.com>
19996
19997         * icall.c: comment out call to mono_runtime_is_shutting_down to
19998         fix build.
19999         
20000 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
20001
20002         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
20003         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
20004
20005 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
20006
20007         * reflection.c: move definition of swap_with_size
20008         to before its first call
20009
20010 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
20011
20012         * appdomain.c (mono_runtime_is_shutting_down): New public function.
20013
20014         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
20015         icall.
20016
20017         * object.c: Fix warnings.
20018
20019         * icall.c (ves_icall_Type_Get...): Only consider inherited static
20020         members if FlattenHierarchy is set.
20021
20022         * reflection.c (mono_image_add_decl_security): New function to emit
20023         declarative security.
20024
20025         * reflection.h reflection.c: Add support for declarative security.
20026
20027         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20028         
20029 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
20030
20031         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
20032         
20033         * appdomain.c verify.c: Moved corlib version checking into its own
20034         function in appdomain.c since it needs to create vtables etc.
20035
20036 2003-12-13  Patrik Torstensson <p@rxc.se>
20037
20038         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
20039         instead of unwrapped server.
20040
20041 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
20042
20043         * verify.c (check_corlib): Fix field index.
20044
20045 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
20046
20047         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
20048         GetGacPath icall.
20049
20050 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
20051
20052         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
20053         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
20054         cope with sizeof(size_t) != sizeof(guint32).
20055
20056 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20057
20058         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
20059         in case of failure.
20060
20061 2003-12-10  Mark Crichton <crichton@gimp.org>
20062
20063         * icall.c: removed the GetNonZeroBytes.  We now handle this case
20064         in managed code.
20065
20066         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
20067
20068 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
20069
20070         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
20071         marked as deleted.
20072
20073 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
20074
20075         * verify.c (check_corlib): Handle the case when the version field is 
20076         initialized by a static constructor.
20077
20078 2003-12-08  Patrik Torstensson  <p@rxc.se>
20079
20080     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
20081
20082 2003-12-08  Martin Baulig  <martin@ximian.com>
20083
20084         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
20085         a MonoReflectionGenericParameter, also take the parameter index
20086         and name as arguments.
20087         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
20088         (ves_icall_MonoGenericParam_initialize): New interncall.
20089         (ves_icall_Type_make_byref_type): New interncall.
20090
20091         * reflection.h (MonoReflectionGenericParam): Derive from
20092         MonoReflectionType, not just from MonoObject.  Added `refobj' and
20093         `index' fields.
20094
20095         * reflection.c (mono_reflection_define_generic_parameter): Create
20096         and return a new MonoReflectionGenericParam; don't initialize the
20097         constraints here.
20098         (mono_reflection_initialize_generic_parameter): New public method;
20099         initializes the constraints and creates the `param->pklass'.
20100
20101 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
20102
20103         * reflection.h reflection.c: Use the new fields 'num_types', 
20104         'num_fields' and 'num_methods' to track the number of types etc.
20105
20106         * verify.c (check_corlib): Check corlib version number.
20107
20108 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
20109
20110         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
20111         function works on all methods.
20112
20113 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
20114
20115         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
20116         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
20117         the custom_type_info flag of the transparent proxy.
20118         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
20119         objects that supports IRemotingTypeInfo.
20120         * object.h: Added custom_type_info field in transparent proxy.
20121
20122 2003-12-06  Martin Baulig  <martin@ximian.com>
20123
20124         * class.c (mono_class_create_from_generic): Removed.
20125         (mono_class_from_generic): Check `ginst->klass' before doing
20126         anything else.  This is important to fully support "recursive"
20127         generic types.
20128
20129         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
20130         empty `generic_inst->klass' before doing anything else.
20131
20132 2003-12-06  Dick Porter  <dick@ximian.com>
20133
20134         * verify.c: 
20135         * object.h:
20136         * icall.c:
20137         * locales.c: Use C structs to access class fields.  Don't do a
20138         conversion between MonoString and UChar because both are
20139         platform-endian UTF-16.  Compare now takes startindex and count
20140         parameters.  Add a char overload for IndexOf.  Speed up the
20141         invariant string IndexOf.
20142
20143 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
20144
20145         * Makefile.am (monosn_LDADD): Fix parallel build.
20146
20147 2003-12-04  Martin Baulig  <martin@ximian.com>
20148
20149         * icall.c
20150         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20151         (ves_icall_Type_make_array_type): New interncall.       
20152
20153 2003-12-04  Martin Baulig  <martin@ximian.com>
20154
20155         * locales.c: also change it in the !HAVE_ICU case.
20156
20157 2003-12-04  Dick Porter  <dick@ximian.com>
20158
20159         * icall.c:
20160         * locales.c: construct_compareinfo is now in CompareInfo, not
20161         CultureInfo.
20162
20163 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
20164
20165         * image.c (mono_image_load_file_for_image): Cache loaded images in the
20166         image->files array.
20167
20168         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
20169         table as well.
20170
20171         * assembly.c (mono_assembly_load_references): Only load references
20172         once.
20173
20174         * class.c (mono_class_from_name): Avoid linear search of the 
20175         EXPORTEDTYPE table.
20176
20177         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
20178
20179 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
20180
20181         * image.h (MonoImage): Add 'field_cache' field.
20182
20183         * loader.c (mono_field_from_token): Cache field lookups.
20184         
20185         * reflection.c (mono_module_get_object): Fix name property.
20186
20187         * icall.c (ves_icall_get_enum_info): Update after changes to 
20188         mono_metadata_get_constant_index ().
20189
20190         * icall.c: Get rid of get_type_info icall, use a separate icall for
20191         each type property to avoid needless memory allocations. Fixes #51514.
20192
20193         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
20194         to avoid needless binary searches.
20195
20196         * class.c (class_compute_field_layout): Move the initialization of
20197         field->def_value to mono_class_vtable ().
20198
20199         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
20200         non-corlib types.
20201
20202         * object.c (mono_object_allocate): Make it inline.
20203
20204         * object.c (mono_object_allocate_spec): Make it inline.
20205         
20206 2003-12-02  Dick Porter  <dick@ximian.com>
20207
20208         * locales.c (create_NumberFormat): NumberFormatInfo construction.
20209         Patch by Mohammad DAMT (mdamt@cdl2000.com).
20210
20211 2003-12-01  Dick Porter  <dick@ximian.com>
20212
20213         * threads.c: Fix signature and call in CreateMutex and
20214         CreateEvent.
20215
20216 2003-12-01  Dick Porter  <dick@ximian.com>
20217
20218         * icall.c: 
20219         * locales.c: Implement string compares and searching
20220
20221         * object.h: Add extra Thread field
20222
20223 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
20224
20225         * reflection.c (fixup_method): Add support for MonoCMethod.
20226
20227 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
20228
20229         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
20230
20231         * reflection.c (assembly_name_to_aname): Allow extra characters in
20232         assembly names. Fixes #51468.
20233
20234 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
20235
20236         * exception.c (mono_exception_from_name_domain): New helper function.
20237
20238         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
20239         exception object in the correct domain.
20240
20241         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
20242         formatting + make a copy a the input data.
20243
20244         * loader.c (mono_get_method_from_token): Methods which contain
20245         native code do not have entries in the ImplMap.
20246
20247         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
20248         Thanks to Gonzalo for spotting this.
20249         
20250         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
20251         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
20252
20253         * assembly.h (mono_assembly_load_from): Split the second part of 
20254         assembly loading into a new public function.
20255
20256         * exception.h (mono_get_exception_bad_image_format): New function.
20257
20258 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
20259
20260         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20261         Enumerate all modules inside a dynamic assembly. Fixes #51293.
20262         
20263         * icall.c: Add new icall for creating dynamic methods.
20264
20265         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
20266
20267         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
20268
20269         * reflection.c (mono_reflection_create_dynamic_method): New icall to
20270         create a dynamic method.
20271
20272         * reflection.c (resolve_object): New helper function.
20273
20274         * reflection.c: Generalize ReflectionMethodBuilder and the functions
20275         which manipulate it so they can also work on dynamic methods.
20276
20277         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
20278         creating the MonoReflectionMethodAux structure if it is not needed.
20279         
20280         * reflection.h verify.c: Update after changes to object layout.
20281
20282         * reflection.c (method_builder_encode_signature): Fix compilation on
20283         gcc 2.95.x.
20284
20285 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
20286
20287         * appdomain.h: Added support for context static fields. Added static_data
20288           field to MonoAppContext and renamed thread_static_fields to a more
20289           generic special_static_fields in MonoAppDomain, since it can now contain
20290           context static fields.
20291         * domain.c: Updated hashtable name.
20292         * object.c: Replaced field_is_thread_static() for a more generic
20293           field_is_special_static() which also checks for context static attribute.
20294           In mono_class_vtable(), added support for static context fields.
20295         * threads.c: Changed methods that manage thread static fields to more
20296           generic methods so they can be reused both for thread and context static
20297           data.
20298         * threads.h: Declared some new methods.
20299
20300 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
20301
20302         * reflection.h: Update after changes to the managed types.
20303
20304         * reflection.c (encode_custom_modifiers): New helper function.
20305
20306         * reflection.c (method_encode_signature): Emit custom modifiers.
20307
20308         * reflection.c (field_encode_signature): Emit custom modifiers.
20309
20310 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
20311
20312         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
20313
20314         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
20315         implementation.
20316
20317         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
20318         icall.
20319
20320         * object.c (mono_field_get_value_object): New function.
20321
20322         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
20323         specific.
20324
20325 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
20326
20327         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
20328         return a preallocated out-of-memory exception instance.
20329
20330         * object.c (out_of_memory): Use the new function.
20331
20332         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
20333         flag is before the custom modifiers. Fixes #49802.
20334
20335 2003-11-16  Martin Baulig  <martin@ximian.com>
20336
20337         * class.c (mono_class_is_open_constructed_type): Implemented the
20338         MONO_TYPE_GENERICINST case.
20339
20340 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
20341
20342         * assembly.c (mono_assembly_fill_assembly_name): New function to
20343         fill out the MonoAssemblyName structure.
20344         (mono_assembly_open): Use the new function.
20345
20346         * icall.c (fill_reflection_assembly_name): New helper function.
20347
20348         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
20349         new function.
20350
20351         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
20352
20353 2003-11-15  Martin Baulig  <martin@ximian.com>
20354
20355         * class.c (mono_class_is_open_constructed_type): New public
20356         function; checks whether a type is an open constructed type,
20357         ie. whether it still contains type parameters.
20358         (mono_class_inflate_generic_type): If we're a type parameter and
20359         the inflated type is also a MONO_TYPE_(M)VAR, return the original
20360         type.
20361
20362         * class.h (MonoGenericInst): Added `guint32 is_open'.
20363
20364         * loader.c (method_from_methodspec): Check whether we're an open
20365         or closed constructed type and set `ginst->is_open'.
20366
20367         * reflection.c (mono_reflection_bind_generic_parameters): Check
20368         whether we're an open or closed constructed type and set
20369         `ginst->is_open'.
20370         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
20371         from open constructed types.
20372
20373 2003-11-15  Martin Baulig  <martin@ximian.com>
20374
20375         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20376         a generic instance (instead of a generic type declaration) with
20377         unbound generic parameters, bind them to our actual types.
20378
20379 2003-11-14  Martin Baulig  <martin@ximian.com>
20380
20381         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
20382
20383         * reflection.c (mono_reflection_bind_generic_parameters): If we're
20384         an interface type, populate `res->interfaces' with instantiated
20385         versions of all the interfaces we inherit.
20386
20387 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
20388
20389         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
20390         when MONO_PATH is set but doesn't contain the install dir.
20391
20392 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20393
20394         * icall.c:
20395         (ves_icall_Type_GetInterfaces): don't return an interface twice when
20396         it's also implemented in base classes. Fixes bug #50927.
20397
20398 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
20399
20400         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
20401         if this method is called from a finalizer. Fixes #50913.
20402
20403 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
20404
20405         * threads.c: Implement VolatileRead/VolatileWrite
20406
20407         * icall.c: Add new icalls for VolatileRead/VolatileWrite
20408
20409 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20410
20411         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
20412         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
20413         2.95.3.
20414
20415         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
20416         from Peter Ross (pro@missioncriticalit.com).
20417         
20418 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
20419
20420         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
20421
20422 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20423
20424         * assembly.c (mono_assembly_load_references): Disable check because it
20425         triggers on older corlibs which lots of people have.
20426
20427 2003-11-12  Jackson Harper  <jackson@ximian.com>
20428
20429         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
20430         load corlib.dll if mscorlib.dll is not found.
20431         * assembly.h: Remove corlib name define.
20432         * class.c:
20433         * domain.c:
20434         * image.c: Change corlib name to mscorlib.
20435         
20436 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
20437
20438         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
20439
20440 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
20441
20442         * appdomain.h: Added loader_optimization here to sync with the C#
20443         code, and add disallow_binding_redirects field.
20444
20445 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20446
20447         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
20448
20449         * reflection.c (mono_image_build_metadata): Fix crash on modules
20450         with no types.
20451
20452         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
20453
20454         * icall.c (ves_icall_get_method_info): Return callingConvention as
20455         well.
20456
20457         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
20458         namespaces from the EXPORTEDTYPE table as well.
20459
20460         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
20461         from all modules inside the assembly.
20462         
20463 2003-11-11  Martin Baulig  <martin@ximian.com>
20464
20465         * reflection.c (mono_reflection_bind_generic_parameters): Make
20466         this work for interfaces.
20467
20468 2003-11-11  Martin Baulig  <martin@ximian.com>
20469
20470         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
20471
20472 2003-11-11  Martin Baulig  <martin@ximian.com>
20473
20474         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
20475         "MonoInflatedMethod" and "MonoInflatedCtor".
20476
20477 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
20478
20479         * reflection.c (resolution_scope_from_image): Use the assembly table
20480         from the manifest module, since other modules don't have it.
20481
20482         * debug-helpers.c (mono_type_full_name): New helper function.
20483
20484         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
20485
20486         * image.c (mono_image_load_file_for_image): New public function which
20487         is a replacement for the load_file_for_image in class.c.
20488
20489         * assembly.c (mono_assembly_load_module): A wrapper for the function
20490         above which does assembly association and reference loading too.
20491
20492         * class.c (mono_class_from_name): Call mono_assembly_load_module.
20493
20494 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20495
20496         * appdomain.c: not all of the attributes for the full assembly name
20497         are required and the order doesn't matter. Fixes bug #50787.
20498
20499 2003-11-10  Dick Porter  <dick@ximian.com>
20500
20501         * locales.c: Use platform-endian UTF16
20502
20503 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20504
20505         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20506         
20507 2003-11-10  Martin Baulig  <martin@ximian.com>
20508
20509         * metadata.c
20510         (mono_metadata_load_generic_params): Make this actually work.
20511
20512         * reflection.c (mono_reflection_bind_generic_parameters): If our
20513         parent is a generic instance, pass all the `types' to it, no
20514         matter whether it has the same number of type parameters or not.
20515
20516 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
20517
20518         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
20519
20520         * assembly.c (mono_assembly_load_references): Move the image<->assembly
20521         assignment code to this function so it gets called recursively for all
20522         modules.
20523
20524         * image.c (load_modules): Remove the assembly assignment since it is
20525         now done by mono_assembly_load_references.
20526         
20527         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
20528         Add 'module' argument.
20529         (mono_module_get_types): New helper function.
20530         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
20531
20532 2003-11-08  Martin Baulig  <martin@ximian.com>
20533
20534         * class.c (mono_class_inflate_generic_method): Interface method
20535         don't have a header.
20536
20537         * reflection.c (mono_image_get_methodspec_token): Take an
20538         additional `MonoGenericInst *' argument instead of reading it from
20539         the header; this is necessary to support interfaces.
20540         (mono_image_create_token): Pass the `MonoGenericInst *' from the
20541         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
20542         (inflated_method_get_object): Take an additional `MonoGenericInst *'
20543         argument.
20544
20545         * reflection.h (MonoReflectionInflatedMethod): Added
20546         `MonoGenericInst *ginst'.
20547
20548 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
20549
20550         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
20551
20552 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
20553
20554         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
20555
20556 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
20557
20558         * reflection.c 
20559         (reflection_methodbuilder_from_method_builder):
20560         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
20561         initialize a ReflectionMethodBuilder structure.
20562         (mono_image_get_methodbuilder_token):
20563         (mono_image_get_ctorbuilder_token): New functions to emit memberref
20564         tokens which point to types in another module inside the same assembly.
20565
20566         * reflection.c: Use the new helper functions.
20567         
20568         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
20569
20570         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
20571         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
20572
20573         * reflection.c (resolution_scope_from_image): Emit a moduleref if
20574         neccesary.
20575
20576         * reflection.c (mono_image_build_metadata): Emit metadata only for the
20577         current module. Emit the manifest only for the main module.
20578
20579         * reflection.c (mono_image_create_token): Add assertion when a 
20580         memberref needs to be created.
20581
20582         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
20583
20584         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
20585         larger buffer for the custom attribute blob. Fixes #50637.
20586         
20587 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20588
20589         * threadpool.c: notify listener on async processing handles after
20590         invoking the async callback. Thanks to Zoltan.
20591
20592 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20593
20594         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
20595         avoid code duplication.
20596
20597         * reflection.h (MonoDynamicImage): New type which is currently unused,
20598         but will be used through the ref.emit code in place of 
20599         MonoDynamicAssembly.
20600
20601         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20602         object layout.
20603
20604         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
20605         a MonoDynamicImage instead of just a MonoImage.
20606         
20607         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
20608         icalls to ModuleBuilder but keep their semantics, so they will work
20609         with moduleb->assemblyb. This will change later.
20610         
20611 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20612
20613         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
20614         object layout.
20615
20616         * reflection.c (mono_image_build_metadata): Avoid creation of a default
20617         main module, since it is now done by the managed code.
20618
20619 2003-11-03  Martin Baulig  <martin@ximian.com>
20620
20621         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
20622         `ginst->klass' here.
20623         (method_encode_methodspec): Don't use the `ginst->generic_method's
20624         klass if it's a generic instance, use `ginst->klass' in this case.
20625
20626 2003-11-03  Martin Baulig  <martin@ximian.com>
20627
20628         * reflection.c (mono_image_get_generic_method_param_info):
20629         Removed, use mono_image_get_generic_param_info() instead.
20630         (mono_image_get_type_info): Write the GenericParam table before
20631         the Method table.  This is neccessary because in the GenericParam
20632         table, type parameters of the class (ie. '!0' etc.) must come
20633         before the ones from its generic methods (ie. '!!0' etc).
20634
20635 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
20636
20637         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
20638
20639 2003-11-02  Martin Baulig  <martin@ximian.com>
20640
20641         * reflection.c (create_generic_typespec): Take a
20642         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
20643         the generic parameters from it.
20644
20645 2003-11-02  Martin Baulig  <martin@ximian.com>
20646
20647         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
20648         instead of a `MonoClassField *' since we just need the type.
20649         (create_generic_typespec): New static function.  Creates a
20650         TypeSpec token for a generic type declaration.
20651         (mono_image_get_generic_field_token): New static function.
20652         (mono_image_create_token): If we're a FieldBuilder in a generic
20653         type declaration, call mono_image_get_generic_field_token() to get
20654         the token.
20655
20656 2003-11-02  Martin Baulig  <martin@ximian.com>
20657
20658         * reflection.h
20659         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
20660         `MonoReflectionGenericInst *declaring_type' and
20661         `MonoReflectionGenericInst *reflected_type' fields.
20662
20663         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
20664         `MonoReflectionGenericInst *declaring_type' and a
20665         `MonoReflectionGenericInst *reflected_type' argument instead of a
20666         single `MonoReflectionGenericInst *type' one.  Set
20667         `res->declaring_type' and `res->reflected_type' from them.
20668         (mono_reflection_inflate_field): Likewise.      
20669
20670 2003-11-02  Martin Baulig  <martin@ximian.com>
20671
20672         * class.c (mono_class_setup_vtable): Don't store generic methods
20673         in the vtable.  
20674
20675 2003-11-02  Martin Baulig  <martin@ximian.com>
20676
20677         * reflection.h (MonoReflectionGenericInst): Added
20678         `MonoReflectionType *declaring_type'.
20679
20680         * reflection.c (mono_reflection_bind_generic_parameters): Use
20681         `if (tb->parent)' instead of `klass->parent'.
20682
20683 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
20684
20685         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
20686         with an empty ASSEMBLY table.
20687
20688         * reflection.c (mono_image_build_metadata): Avoid using the same loop
20689         variable in the inner and outer loops.
20690
20691 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
20692
20693         * metadata.h (mono_metadata_make_token): Put parentheses around macro
20694         argument.
20695
20696         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
20697         
20698         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
20699         icalls. Instead, do everything in managed code. This is needed since
20700         it is hard to restore the original domain etc. in unmanaged code in the
20701         presence of undeniable exceptions.
20702
20703         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
20704         New icalls to push and pop appdomain refs.
20705
20706 2003-10-31  Martin Baulig  <martin@ximian.com>
20707
20708         * class.c (inflate_generic_type): Renamed to
20709         mono_class_inflate_generic_type() and made it public.
20710
20711         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
20712         New interncall.
20713
20714         * loader.c (mono_field_from_memberref): Also set the retklass for
20715         typespecs.
20716
20717         * fielder.c (mono_image_get_inflated_field_token): New static
20718         method; creates a metadata token for an inflated field.
20719         (mono_image_create_token, fixup_method): Added support for
20720         "MonoInflatedField".
20721         (fieldbuilder_to_mono_class_field): New static function.
20722         (mono_reflection_inflate_field): New public function.
20723
20724         * reflection.h
20725         (MonoReflectionGenericInst): Added `MonoArray *fields'.
20726         (MonoReflectionInflatedField): New typedef.     
20727
20728 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
20729
20730         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
20731         for Solaris and other platforms without s6_addr16
20732
20733 2003-10-30  Martin Baulig  <martin@ximian.com>
20734
20735         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
20736         argument instead of two.
20737         (mono_class_inflate_generic_signature): Likewise.
20738         (inflate_generic_header): Likewise.
20739         (mono_class_inflate_generic_method): Likewise.  In addition, if
20740         `ginst->klass' is set, it becomes the new `method->klass'.
20741
20742         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
20743         field.
20744
20745         * reflection.c (encode_generic_method_sig): Write a 0xa as the
20746         first byte. [FIXME]
20747         (method_encode_methodspec): If we have generic parameters, create
20748         a MethodSpec instead of a MethodRef.
20749         (fixup_method): Added support for "MonoInflatedMethod" and
20750         "MonoInflatedCtor".
20751         (mono_image_create_token): Added support for "MonoInflatedMethod"
20752         and "MonoInflatedCtor".
20753         (inflated_method_get_object): New static function; returns a
20754         managed "System.Reflection.MonoInflatedMethod" object.
20755         (mono_reflection_bind_generic_method_parameters): Return a
20756         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
20757         (mono_reflection_inflate_method_or_ctor): Likewise.
20758         (mono_image_get_generic_method_param_info): Initialize unused
20759         fields to zero.
20760         (mono_image_get_generic_param_info): Likewise.
20761
20762         * reflection.h (MonoReflectionInflatedMethod): New public
20763         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
20764         "S.R.MonoInflatedCtor" classes.
20765
20766         * loader.c (method_from_memberref): If we're a TypeSpec and it
20767         resolves to a generic instance, inflate the method.
20768
20769 2003-10-28  Dick Porter  <dick@ximian.com>
20770
20771         * object.c (mono_runtime_run_main): Convert command-line arguments
20772         into utf8, falling back to the user's locale encoding to do so.
20773
20774 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
20775
20776         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
20777         at this time.
20778
20779         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
20780
20781         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
20782         up icalls at method definition time. Partially fixes #33569.
20783
20784 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
20785
20786         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
20787         marshalling of arrays. Fixes #50116.
20788
20789         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
20790
20791         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
20792         points to a vtable in the dying appdomain.
20793
20794         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
20795         listeners into unmanaged code inside the lock.
20796
20797         * object.c (mono_class_vtable): Turn off typed allocation in non-root
20798         domains and add some comments.
20799
20800 2003-10-25  Martin Baulig  <martin@ximian.com>
20801
20802         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
20803
20804         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
20805
20806         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
20807         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
20808         currently parsing.  Create the generic class and store it in
20809         `generic_inst->klass' before parsing the type arguments.  This is
20810         required to support "recursive" definitions; see mcs/tests/gen-23.cs
20811         for an example.
20812         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
20813         to support recursive typespec entries.
20814
20815         * class.c (mono_class_setup_parent): If our parent is a generic
20816         instance, we may get called before it has its name set.
20817         (mono_class_from_generic): Splitted into
20818         mono_class_create_from_generic() and mono_class_initialize_generic().
20819
20820 2003-10-25  Martin Baulig  <martin@ximian.com>
20821
20822         * icall.c (ves_icall_Type_BindGenericParameters): Return a
20823         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
20824         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
20825         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
20826
20827         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
20828         (create_typespec): Likewise.
20829         (mono_reflection_bind_generic_parameters): Return a
20830         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
20831         (mono_reflection_inflate_method_or_ctor): New public function.
20832
20833         * reflection.h (MonoReflectionGenericInst): New typedef.        
20834
20835 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
20836
20837         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
20838         inside the domain lock. Fixes #49993.
20839         
20840         * object.c (mono_class_vtable): When typed allocation is used, 
20841         allocate vtables in the GC heap instead of in the mempool, since the
20842         vtables contain GC descriptors which are used by the collector even
20843         after the domain owning the mempool is unloaded.
20844
20845         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
20846
20847         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
20848         reflect what it does. Also invalidate mempools instead of freeing
20849         them if a define is set.
20850
20851         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
20852         of the appdomain.
20853         
20854         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
20855         hold the finalizable objects in this domain.
20856
20857         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
20858         appdomain.
20859
20860         * appdomain.c (mono_domain_set): New function to set the current
20861         appdomain, but only if it is not being unloaded.
20862
20863         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
20864         appdomain which is being unloaded.
20865         
20866         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
20867         unloading of the root appdomain.
20868
20869         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
20870         icall to execute a method in another appdomain. Intended as a 
20871         replacement for InternalSetDomain, which can confuse the code 
20872         generation in the JIT.
20873
20874         * appdomain.c (mono_domain_is_unloading): New function to determine
20875         whenever an appdomain is unloading.
20876
20877         * appdomain.c (mono_domain_unload): New function to correctly unload
20878         an appdomain.
20879
20880         * assembly.c (mono_assembly_load_references): Check that an assembly
20881         does not references itself.
20882
20883         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
20884         domain manually, it asks the finalizer thread to do it, then waits for
20885         the result. Also added a timeout.
20886
20887         * icall.c: Register the new icalls.
20888
20889         * threads.h threads.c: Export the mono_gc_stop_world and 
20890         mono_gc_start_world functions.
20891         
20892         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
20893         function to fill out the mempool with 0x2a.
20894
20895 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
20896
20897         * reflection.h (MonoReflectionMethodAux): New structure to store
20898         information which is rarely used, thus is not in the MonoMethod
20899         structure.
20900
20901         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
20902         store the aux info.
20903
20904         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
20905         and marshalling info into the aux structure.
20906
20907         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
20908         from the aux structure.
20909
20910         * loader.c (mono_method_get_param_names): Retrieve the param names from
20911         the aux structure.
20912         
20913 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
20914
20915         * exception.h exception.c: Add AppDomainUnloadedException && fix 
20916         warning.
20917
20918 2003-10-21  Dick Porter  <dick@ximian.com>
20919
20920         * socket-io.c
20921         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
20922         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
20923
20924 2003-10-21  Martin Baulig  <martin@ximian.com>
20925
20926         * reflection.c (mono_reflection_bind_generic_parameters):
20927         `klass->parent' is NULL for interfaces.
20928
20929 2003-10-21  Martin Baulig  <martin@ximian.com>
20930
20931         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
20932
20933 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
20934
20935         * exception.c (mono_exception_from_name_msg): New helper function for
20936         creating exceptions and initializing their message field.
20937
20938         * exception.c: Simplify functions using the new helper.
20939
20940         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
20941         New function.
20942
20943         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
20944         mono_raise_exception, since otherwise gcc doesn't generate the function
20945         epilog for raise_exception, confusing the stack unwinding in the JIT.
20946         Fixes #45043.
20947
20948         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
20949         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
20950         Fixes #49499.
20951
20952 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20953
20954         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
20955         utf8.
20956
20957 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
20958
20959         * icall.c: Removed GetUninitializedObject method because
20960           AllocateUninitializedClassInstance does the same.
20961
20962 2003-10-18  Martin Baulig  <martin@ximian.com>
20963
20964         * class.c (inflate_generic_signature): Renamed to
20965         mono_class_inflate_generic_signature() and made it public.
20966         (my_mono_class_from_generic_parameter): New static function; if we
20967         don't already have the generic parameter's MonoClass, create a
20968         very simple one which is just used internally in the runtime and
20969         not passed back to managed code.
20970
20971         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
20972
20973         * metadata.h (MonoMethodSignature): Moved the
20974         `MonoGenericParam *gen_params' to the MonoMethodHeader.
20975         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
20976
20977         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
20978         ves_icall_MonoMethod_GetGenericArguments(); this is now an
20979         interncall on the MonoMethod class, not on MethodInfo.
20980         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
20981         calling mono_reflection_bind_generic_method_parameters() directly.
20982
20983         * loader.c (mono_method_get_signature): If this is a MethodSpec;
20984         return the already computed `method->signature'.
20985         (method_from_methodspec): New static function to load a method
20986         from a MethodSpec entry.
20987         (mono_get_method_from_token): Call the new method_from_methodspec()
20988         for MethodSpec tokens.  
20989         (mono_get_method_from_token): If we're a generic method, load the
20990         type parameters.
20991
20992         * reflection.c (mono_image_get_memberref_token): Allow
20993         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
20994         table.
20995         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
20996         (mono_image_create_token): First check whether it's a generic
20997         method (so we'd need to create a MethodSpec), then do the other
20998         two alternatives.
20999         (mono_reflection_bind_generic_method_parameters): Return a
21000         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
21001         called directly from the interncall.
21002
21003 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
21004
21005         * reflection.c (load_public_key): Move loading of the public key
21006         into managed code.
21007
21008         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
21009
21010         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
21011         fields.
21012
21013         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
21014         culture, hash_alg and public_key. Fixes #49555.
21015
21016 2003-10-17  Martin Baulig  <martin@ximian.com>
21017
21018         * class.h (MonoGenericInst): Moved this declaration here and added
21019         `MonoMethod *generic_method'.
21020
21021         * icall.c
21022         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
21023         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
21024
21025         * metadata.c (mono_metadata_type_equal): Two types of
21026         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
21027         index; ie. don't compare the address of the `MonoGenericParam'
21028         structure.
21029         (mono_metadata_load_generic_params): Removed the `MonoMethod
21030         *method' argument.
21031
21032         * metadata.h (MonoGenericInst): Moved declaration to class.h.
21033         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
21034
21035         * reflection.c (method_encode_signature): Encode the number of
21036         generic parameters.
21037         (encode_generic_method_sig): New static function.
21038         (method_encode_methodspec): New static function; creates an entry
21039         in the MethodSpec table for a generic method.
21040         (mono_image_get_methodspec_token): New static function.
21041         (mono_image_create_token): Call mono_image_get_methodspec_token()
21042         for generic methods.
21043         (mono_reflection_bind_generic_method_parameters): New public
21044         function.  Instantiates a generic method.
21045
21046 2003-10-16  Martin Baulig  <martin@ximian.com>
21047
21048         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
21049         *gen_params' here from MonoMethodHeader.
21050
21051         * metadata.c (mono_metadata_parse_method_signature): If we have
21052         generic parameters, initialize `method->gen_params' and then set
21053         the correct `type->data.generic_param' in all the parameters.
21054
21055 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
21056
21057         * threads.c (mono_threads_get_default_stacksize): New function to 
21058         return the default stacksize.
21059
21060         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
21061         termination of the finalizer thread, since the previous method had
21062         race conditions. Fixes #49628.
21063
21064         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
21065         as for the other managed threads.
21066
21067 2003-10-16  Martin Baulig  <martin@ximian.com>
21068
21069         * class.c (inflate_generic_signature): Copy `generic_param_count'
21070         and `gen_params'.
21071
21072         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
21073         New interncall.
21074
21075         * metadata.c (mono_metadata_parse_method_signature): Actually set
21076         the `method->generic_param_count' here.
21077         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
21078
21079 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
21080
21081         * object.h: Add a new field to TypedRef to simplify the implementation
21082         of the REFANY opcodes in the JIT.
21083
21084         * icall.c: Make use of the new field.
21085
21086         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
21087         dynamically.
21088
21089 2003-10-15  Martin Baulig  <martin@ximian.com>
21090
21091         * class.c (mono_class_from_gen_param): Renamed to
21092         mono_class_from_generic_parameter() and moved most of the
21093         functionality from mono_reflection_define_generic_parameter()
21094         here; ie. we create a "real" class here.
21095         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
21096         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
21097         previously been called.
21098
21099         * class.h (MonoGenericParam): Moved the declaration of this struct
21100         here from metadata.h and added `MonoMethod *method'.
21101
21102         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
21103         interncall.
21104
21105         * loader.c (mono_get_method_from_token): If we have any generic
21106         parameters, call mono_metadata_load_generic_params() to read them
21107         from the MONO_TABLE_GENERICPAR.
21108
21109         * metadata.c (mono_metadata_load_generic_params): Added
21110         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
21111
21112         * metadata.h (MonoMethodSignature): Replaced
21113         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
21114         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
21115
21116         * reflection.c (mono_reflection_define_generic_parameter): Moved
21117         most of the functionality into the new
21118         mono_class_from_generic_parameter(); set the `method' field if
21119         we're a method parameter.       
21120
21121 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
21122
21123         * marshal.c (emit_struct_conv): if native size is 0
21124         emit no code.
21125
21126 2003-10-14  Martin Baulig  <martin@ximian.com>
21127
21128         * icall.c: The generics API has changed in the spec since it was
21129         added to System.Type; these modifications make it match the spec
21130         again.
21131         (ves_icall_Type_GetGenericParameters): Renamed to
21132         `ves_icall_Type_GetGenericArguments'.
21133         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
21134         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
21135         `ves_icall_MonoType_get_HasGenericArguments'.
21136         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
21137         `ves_icall_MonoType_get_IsGenericParameter'.
21138         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
21139         this is no interncall anymore.
21140         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
21141         `ves_icall_TypeBuilder_get_IsGenericParameter'.
21142
21143 2003-10-14  Martin Baulig  <martin@ximian.com>
21144
21145         * reflection.c (mono_reflection_bind_generic_parameters): Also
21146         inflate generic methods if we're reading the class from IL.
21147
21148 2003-10-13  Martin Baulig  <martin@ximian.com>
21149
21150         * reflection.c (mono_reflection_define_generic_parameter): This
21151         method isn't called directly from the icall anymore; take a
21152         `MonoReflectionAssemblyBuilder *' so we can use this for type and
21153         method generic parameters.
21154         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
21155         (method_builder_encode_signature): Encode generic parameters.
21156         (mono_image_get_method_info): Write generic params to the
21157         MONO_TABLE_GENERICPARAM table.
21158
21159         * reflection.h (MonoReflectionMethodBuilder): Added
21160         `MonoArray *generic_params'.
21161
21162         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
21163
21164         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
21165         wrapper for mono_reflection_define_generic_parameter().
21166         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
21167
21168 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
21169
21170         * marshal.h: Add missing function to fix build.
21171
21172         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
21173         the SetLastError pinvoke attribute.
21174
21175         * marshal.c (mono_marshal_set_last_error): New helper function called
21176         by the generated code.
21177         
21178         * marshal.c (mono_mb_emit_branch): New helper function.
21179
21180         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
21181
21182         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
21183         classes as parameters and return values of delegates. Fixes #29256. 
21184
21185 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
21186
21187         * locales.c: use gint32 in non HAVE_ICU case
21188
21189 2003-10-11  Martin Baulig  <martin@ximian.com>
21190
21191         * mono-debug.c (mono_debug_add_method): Added a workaround for
21192         bug #48591.
21193
21194 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
21195
21196         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
21197         delegates passed to native code must use the STDCALL calling 
21198         convention. Fixes #35987.
21199
21200 2003-10-10  Martin Baulig  <martin@ximian.com>
21201
21202         * class.c (inflate_generic_type): If we're inflating for a generic
21203         type instance (and not for a generic method), return
21204         MONO_TYPE_MVAR unchanged.
21205
21206 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21207
21208         * string-icalls.c: Join ignores null strings in the source array.
21209         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
21210         * threads.c: GetAvailableTheads is slightly more accurate.
21211
21212 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
21213
21214         * threads.h threads.c : add mono_threads_set_default_stacksize
21215         and pass default to CreateThread calls.
21216
21217 2003-10-09  Dick Porter  <dick@ximian.com>
21218
21219         * icall.c:
21220         * locales.h:
21221         * locales.c: Internal calls for constructing CultureInfo and
21222         related objects from libicu (if its available.)
21223
21224 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
21225
21226         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
21227
21228 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21229
21230         * threadpool.c: added an argument to async_invoke_thread that is the
21231         item to process, pass the MonoAsyncResult to the thread start function
21232         when creating a new thread. This way we don't need to acquire any lock
21233         when we're creating a new thread. Readded a semaphore for faster
21234         response times (instead of that Sleep i added).
21235
21236 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
21237
21238         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
21239         get daylight change dates better on Windows, fix handling
21240         of platforms without tm_gmtoff.
21241
21242 2003-10-06  Martin Baulig  <martin@ximian.com>
21243
21244         * class.c (inflate_generic_method): Renamed to
21245         mono_class_inflate_generic_method() and made public.
21246         (mono_class_init): Don't inflate the generic methods here.
21247         (mono_class_from_generic): Added `gboolean inflate_methods'
21248         argument.  Inflate the methods here.
21249
21250         * loader.c (mono_method_get_param_names): Ignore instances of
21251         generic types for the moment.
21252
21253         * reflection.c (fixup_method): Added support for inflated methods.
21254         (mono_image_create_token): Use mono_image_get_methodref_token()
21255         for inflated methods.
21256         (mono_custom_attrs_from_param): Ignore instances of generic types
21257         for the moment.
21258         (mono_reflection_bind_generic_parameters): New public function.
21259         Moved all the functionality from
21260         ves_icall_Type_BindGenericParameters() here and added support for
21261         dynamic types.
21262         (mono_reflection_define_generic_parameter): Initialize
21263         `klass->methods' here.
21264
21265         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
21266         functionality into mono_reflection_define_generic_parameter().
21267         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
21268         TypeBuilder, return that TypeBuilder.
21269
21270 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21271
21272         * appdomain.c: removed mono_delegate_semaphore.
21273
21274         * threadpool.c:
21275         (mono_thread_pool_add): moved hash table creation inside and the thread 
21276         creation outside of the critical region.
21277         (mono_thread_pool_finish): removed obsolete code.
21278         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
21279         continue or exit the thread depending on the queue.
21280
21281 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
21282
21283         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
21284         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
21285         handle more bool marshalling options
21286
21287 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
21288
21289         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
21290         arrays of structs. Also add a more descriptive error message when
21291         a structure member is marshalled as LPArray.
21292
21293 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
21294
21295         * marshal.c (mono_marshal_get_native_wrapper): Add support for
21296         marshalling arrays of complex types. Fixes #29098. Also remove an
21297         usused and incomplete function.
21298
21299 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
21300
21301         * gc.c: report heap_size - free_bytes as total memory allocated
21302         (bug#49362).
21303
21304 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
21305
21306         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
21307         fix timezone handling problems on Windows.
21308         
21309         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
21310         asserts when the year is outside the range handled by ms the functions.
21311
21312         * class.c (setup_interface_offsets): If the class is an interface,
21313         fill out its interface_offsets slot.
21314
21315 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21316
21317         * threadpool.c: mark threadpool threads as background.
21318
21319 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
21320
21321         * decimal.c - define DECINLINE to nothing if not using GCC
21322
21323 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
21324
21325         * assembly.c: More refcount fixes.
21326
21327 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21328
21329         * string-icalls.c: if we're not trimming, return the same string.
21330         When not splitting, don't create a new string.
21331
21332 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21333
21334         * image.c:
21335         (mono_image_open): increment the ref_count inside the critical section.
21336
21337 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
21338
21339         * image.c (mono_image_open): Fix reference counting bug.
21340
21341 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
21342
21343         * marshal.c (mono_marshal_type_size) struct alignment changed for 
21344         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
21345         64bits. Avoid leak in mono_marshal_get_native_wrapper when
21346         mono_lookup_pinvoke_call throws.        
21347
21348 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
21349
21350         * reflection.c (mono_reflection_parse_type): Fix #49114.
21351
21352         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
21353         temporary workaround for cygwin header problem.
21354
21355         * object.c (mono_object_isinst): Synchronize this with the code
21356         generated by the JIT for casts.
21357
21358 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
21359
21360         * reflection.c (encode_type): Fix #38332.
21361
21362 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
21363
21364         * marshal.c (mono_marshal_method_from_wrapper): New function to return
21365         the original method from the wrapper method.
21366
21367 2003-09-25  Martin Baulig  <martin@ximian.com>
21368
21369         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
21370         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
21371         (ves_icall_Type_get_IsGenericInstance): New interncall.
21372
21373 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
21374
21375         * object.c: fix cast warning in big endian code.
21376
21377 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
21378
21379         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
21380         
21381 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21382
21383         * assembly.c: don't call check_env from mono_assembly_load. It's
21384         already done once in mono_assemblies_init and may cause headaches when
21385         multiple threads are loading assemblies.
21386
21387 2003-09-19  Martin Baulig  <martin@ximian.com>
21388
21389         * reflection.c (mono_reflection_define_generic_parameter): Don't
21390         allocate `klass->methods', set `klass->flags' to
21391         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
21392
21393 2003-09-18  Martin Baulig  <martin@ximian.com>
21394
21395         * class.c (mono_class_init): Don't create `class->methods' if it's
21396         already initialized.
21397
21398         * metadata.c (mono_metadata_load_generic_params): Make this
21399         actually work.
21400
21401         * reflection.c (mono_reflection_define_generic_parameter): Set
21402         parent class and interfaces from the constraints.
21403
21404         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
21405         to keep this struct in sync with the declaration in TypeBuilder.cs.
21406
21407 2003-09-17  Martin Baulig  <martin@ximian.com>
21408
21409         * metadata.h (MonoType): Replaced the data's `int type_param'
21410         field with `MonoGenericParam *generic_param'.
21411         (MonoGenericParam): Added `MonoClass *klass'.
21412
21413         * class.c (mono_class_from_gen_param): Removed the
21414         `MonoImage *image' and `int type_num' arguments.
21415
21416         * metadata.c (mono_metadata_parse_generic_param): New static
21417         method; creates a MonoGenericParam which just contains the index.
21418         (do_mono_metadata_parse_type): Call
21419         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
21420         MONO_TYPE_MVAR.
21421
21422         * reflection.c (mono_image_typedef_or_ref): Generic type
21423         parameters may be in the same assembly, but never use a typedef
21424         for them.
21425         (mono_reflection_define_generic_parameter): We're now creating a
21426         "real" class for the type parameter; it's now safe to call
21427         mono_class_from_mono_type() on the class'es type, it'll do the
21428         right thing.
21429
21430 2003-09-16  Martin Baulig  <martin@ximian.com>
21431
21432         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
21433         `symfile->range_entry_size' and `symfile->class_entry_size' here;
21434         the `symfile' data structure must be fully initialized before it
21435         gets added to the table.
21436
21437 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
21438
21439         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
21440
21441         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
21442         class init trampolines.
21443
21444 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
21445
21446         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
21447         to the built-in profiler to turn off time and allocation profiling
21448         respectively.
21449
21450 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
21451
21452         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
21453         g_direct_equal.
21454
21455         * debug-helpers.c (mono_method_full_name): Print the wrapper type
21456         in human readable form.
21457
21458 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
21459
21460         * reflection.c icall.c: Fixed warnings.
21461
21462         * image.c (load_class_names): Use a temporary hash table to hold the
21463         namespaces in order to avoid doing many string comparisons.
21464
21465         * image.h: Fix typo.
21466
21467         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
21468         Pass NULL instead of g_direct_equal to the GHashTable constructor 
21469         since the NULL case is short-circuited inside g_hash_table_lookup, 
21470         leading to better performance.  
21471
21472         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
21473         obtain the first custom attribute for a given index. Depends on the
21474         CustomAttribute table being sorted by the parent field.
21475
21476         * reflection.c (mono_custom_attrs_from_index): Use the new function 
21477         for better performance.
21478
21479 2003-09-07  Martin Baulig  <martin@ximian.com>
21480
21481         * class.c (mono_class_init): If we're a generic instance, inflate
21482         all our methods instead of loading them from the image.
21483         (mono_class_from_generic): Set `class->methods = gklass->methods'.
21484
21485 2003-09-07  Martin Baulig  <martin@ximian.com>
21486
21487         * mono-debug-debugger.c: Added support for constructors.
21488
21489 2003-09-06  Martin Baulig  <martin@ximian.com>
21490
21491         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
21492         New interncall.
21493
21494         * reflection.c (mono_reflection_setup_generic_class): Call
21495         ensure_runtime_vtable() to create the vtable.
21496
21497 2003-09-05  Martin Baulig  <martin@ximian.com>
21498
21499         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
21500         MONO_TYPE_MVAR.
21501
21502 2003-09-04  Martin Baulig  <martin@ximian.com>
21503
21504         * reflection.c (mono_reflection_define_generic_parameter): Generic
21505         parameters start with zero.
21506
21507 2003-09-04  Martin Baulig  <martin@ximian.com>
21508
21509         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21510
21511         * reflection.h (MonoReflectionGenericParam): New typedef.
21512         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
21513         the generic parameters from the managed TypeBuilder.
21514
21515         * reflection.c (mono_reflection_define_generic_parameter): New function.
21516         (mono_reflection_create_runtime_class): Encode generic parameters.
21517         (mono_reflection_setup_generic_class): New function; this is
21518         called after adding adding all generic params to the TypeBuilder.
21519         (encode_type): Added MONO_TYPE_VAR.
21520
21521 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
21522
21523         * class.h class.c (mono_class_needs_cctor_run): Moved this method
21524         here from the JIT.
21525
21526         * assembly.h assembly.c: Moved the AOT loading code into an assembly
21527         load hook.
21528
21529 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
21530
21531         * reflection.h reflection.c class.h class.c: Delete duplicate 
21532         definition of mono_type_get_name () from reflection.c and export the
21533         one in class.c.
21534
21535         * class.c: Class loading fixes from Bernie Solomon 
21536         (bernard@ugsolutions.com).
21537
21538         * reflection.c: Endianness fixes from Bernie Solomon 
21539         (bernard@ugsolutions.com).
21540         
21541 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
21542
21543         * assembly.h assembly.c: Define a file format version for AOT
21544         libraries.
21545         
21546         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
21547
21548         * appdomain.h (MonoJitInfo): New field to determine whenever the
21549         code is domain neutral.
21550         
21551 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
21552
21553         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
21554
21555 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
21556
21557         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
21558         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
21559         Avoid caching the result since strings must be domain specific. Fixes
21560         #48050.
21561
21562 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
21563
21564         * marshal.c (mono_marshal_init): Make this callable multiple times
21565         since it is hard to find a correct place to call it.
21566
21567         * object.c (mono_runtime_class_init): Execute static constructors in
21568         the correct appdomain.
21569
21570         * image.c (build_guid_table): Handle the case when multiple images have
21571         the same GUID.
21572
21573 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21574
21575         * icall.c: added a couple of icalls for System.Web.
21576
21577 2003-08-28  Martin Baulig  <martin@ximian.com>
21578
21579         * icall.c (ves_icall_Type_BindGenericParameters): Use
21580         `klass->generic_inst' instead of `&klass->byval_arg' in the
21581         mono_type_get_object() call.  The returned type must be
21582         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
21583
21584 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
21585
21586         * NOTES: New file.
21587
21588         * object.c (mono_class_proxy_vtable): Make it thread safe.
21589
21590         * pedump.c: Fix warning.
21591
21592         * object.c appdomain.h: Get rid of metadata_section. 
21593         It is no longer needed and it was causing deadlocks with domain->lock.
21594
21595         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
21596
21597 2003-08-26  Martin Baulig  <martin@ximian.com>
21598
21599         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
21600
21601 2003-08-26  Martin Baulig  <martin@ximian.com>
21602
21603         * pedump.c (main): Call mono_metadata_init(),
21604         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
21605         and mono_loader_init().
21606
21607 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
21608
21609         * loader.h: Add missing include to fix build.
21610
21611         * image.h: mono_image_load_references is no more.
21612
21613         * assembly.c: Reworked assembly loading to make it really thread safe.
21614         After these changes, the assembly returned by mono_assembly_open is
21615         fully initialized, i.e. all its references assemblies are loaded.
21616
21617         * assembly.c (mono_image_load_references): Renamed to 
21618         mono_assembly_load_references, and made private, since clients no
21619         longer need to call it.
21620
21621         * class.c: Removed calls to mono_assembly_load_references, since it was
21622         a source of deadlocks.
21623
21624         * loader.h loader.c class.h class.c: Protect data structures using a 
21625         new lock, the loader lock.
21626
21627         * class.c (mono_class_setup_vtable): Create temporary hash tables and
21628         GPtrArrays only when needed.
21629
21630         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
21631         into empty structures by mcs. Fixes pinvoke7.cs.
21632         
21633         * domain.c (mono_init): Call a new initialization function.
21634
21635         * appdomain.c (mono_runtime_init): Call the new initializer function
21636         of the marshal module.
21637
21638         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
21639         inserted into empty structures by mcs. Fixes pinvoke7.cs.
21640
21641         * marshal.h marshal.c: Added locks around the wrapper caches to make
21642         this module thread safe.
21643
21644         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
21645         this argument. Fixes pinvoke1.exe.
21646
21647 2003-08-25  Lluis Sanchez <lluis@ximian.com>
21648
21649         * object.h: Added call_type field to MonoMethodMessage and the corresponding
21650         enumeration of values. Removed fields to store remote call output values in
21651         MonoAsyncResult. Not needed any more.
21652         * object.c: Initialize call_type and async_result fields in mono_message_init.
21653         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
21654         dispatching the message.
21655         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
21656         async call to finish. To do it use a message with EndInvoke call type.
21657
21658 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
21659
21660         * loader.h loader.c (mono_method_hash_marhal_info): New function which
21661         determines whenever a method has marshalling info.
21662
21663 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21664
21665         * assembly.c: fix the build on windows.
21666
21667 2003-08-22 Lluis Sanchez <lluis@ximian.com>
21668
21669         * object.cs: Fixed bug #47785.
21670
21671 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
21672
21673         * string-icalls.c (StringReplace): If their are no occurances of
21674         the old string found return a reference to the supplied
21675         string. This saves some memory and matches MS behavoir.
21676         
21677 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21678
21679         * socket-io.c: fixed compilation for systems that define AF_INET6
21680         and don't define SOL_IP/SOL_IPV6.
21681
21682 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
21683
21684         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
21685         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
21686
21687         * rawbuffer.c rawbuffer.h: Make this module thread safe.
21688
21689         * domain.c: Make this module thread safe.
21690
21691         * domain.c (mono_init): Call new initialization function.
21692
21693         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
21694         reference types too. Fixes #38812.
21695
21696         * image.c (mono_image_init): Fixed warnings.
21697
21698         * class.c (mono_class_from_typeref): Handle assembly load failure
21699         correctly.
21700
21701         * appdomain.c (add_assemblies_to_domain): Handle the case when
21702         the references of an assembly are not yet loaded.
21703
21704         * metadata.c image.c assembly.c: Moved initialization of global
21705         variables to a separate function called at startup since lazy 
21706         initialization of these variables is not thread safe.
21707         
21708         * image.c assembly.c: Made this module thread safe by adding locks in 
21709         the appropriate places.
21710
21711         * domain.c (mono_init): Call the new initialization functions of the
21712         three modules.
21713
21714 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
21715
21716         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
21717           make a direct call. It is proxy's work to make the call asynchronous.
21718           mono_delegate_end_invoke(): If the targe is a proxy, just collect
21719           the return values.
21720         * object.cs: mono_method_call_message_new(): read AsyncResult and
21721           state object from parameters list, if this info is requested.
21722         * object.h: Added fields to store remote call output values in
21723           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
21724
21725 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
21726
21727         * object.h: add needed fields to MonoThread.
21728         * threads.c, threads.h: allow registering a function to cleanup data
21729         allocated per thread by the JIT.
21730
21731 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21732
21733         * loader.h: portability fix by Bernie Solomon
21734         * <bernard@ugsolutions.com>.
21735
21736 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
21737
21738         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
21739         return a MonoArray. This simplifies the code and also ensures that
21740         the cache allways contains an object reference as a value.
21741
21742         * icall.c (ves_icall_get_parameter_info): Simplified using the new
21743         function.
21744
21745 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21746
21747         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
21748         fixes a problem with byte ordering when getting the address family for
21749         a socket.
21750
21751 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
21752
21753         * .cvsignore: Added monosn.
21754
21755         * reflection.h reflection.c loader.c: Added support for parameter
21756         marshalling to dynamically created types. Fixes #47295.
21757
21758 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
21759
21760         * rand.c: remove useless warnings.
21761
21762 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
21763
21764         * class.c: implemented ldtoken for methods and fieldrefs.
21765
21766 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21767
21768         * threadpool.c: when mono_async_invoke was called, no one took care of
21769         monitoring the queue. So if the method invoked took some time and we
21770         got new async invoke requests after 500 ms (the thread created waited
21771         that long in WaitForSingleObject), the new async invoke was not called
21772         until the previous one finished.
21773
21774         This is fixed now. Thanks to Totte for helping with it.
21775
21776 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21777
21778         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
21779
21780 2003-08-11  Martin Baulig  <martin@ximian.com>
21781
21782         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
21783
21784 2003-08-06  Martin Baulig  <martin@ximian.com>
21785
21786         * mono-debug-debugger.c: Added support for static fields,
21787         properties and methods.
21788
21789 2003-08-06  Martin Baulig  <martin@ximian.com>
21790
21791         * mono-debug-debugger.c: Don't store the MonoString's vtable to
21792         make this work for applications with multiple application domains.
21793
21794 2003-08-04  Martin Baulig  <martin@ximian.com>
21795
21796         * mono-debug-debugger.c: Completely reworked the type support; the
21797         most important thing is that we're now just using one single
21798         `MonoType' instance per type.
21799
21800 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
21801
21802         * mono-endian.h, mono-endian.c, icall.c: Added icall
21803         ves_icall_System_Double_AssertEndianity to assert double word endianity
21804         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
21805
21806 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21807
21808         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
21809         support, icalls and fixes.
21810
21811 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
21812
21813         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
21814         classes that are a punctuation character in .NET is not the same a
21815         g_unichar_ispunct.
21816
21817 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
21818
21819         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
21820
21821 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
21822
21823         * icall.c: Add new MemCopy internalcall.
21824         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
21825         Simplified code; It is not necessary to handle all the cases here,
21826         as the C# code takes care of it.  Only handle the case of the name
21827         resource embedded into the assembly.
21828
21829         Changed signature to return the data pointer and the size of the
21830         data. 
21831
21832 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
21833
21834         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
21835         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
21836
21837 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
21838
21839         * socket-io.c: ignore EINTR error in select.
21840
21841 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
21842
21843         * class.h, class.c: removed unused subclasses field in MonoClass.
21844
21845 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
21846
21847         * icall.c: improve fix of get_base_definition(). If the parent class
21848           doesn't have the mehod, look at the parent of the parent.
21849         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
21850           to check if a parameter is an in or out parameter
21851           (PARAM_ATTRIBUTE_IN is not set by default).
21852           mono_method_return_message_restore(): Use mono_class_value_size to
21853           get the size of a value type. mono_type_stack_size (parameterType)
21854           does not return the correct value if parameterType is byRef.
21855           mono_load_remote_field(), mono_load_remote_field_new(),
21856           mono_store_remote_field(), mono_store_remote_field_new():
21857           raise exception if the remote call returns an exception.
21858
21859 2003-07-28  Martin Baulig  <martin@ximian.com>
21860
21861         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
21862         method.  This is a wrapper around mono_runtime_invoke() which
21863         boxes the instance object if neccessary.
21864
21865 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
21866
21867         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
21868         metadata.h, row-indexes.h, verify.c: first cut of generics support.
21869
21870 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
21871
21872         * icall.c: disable mcs bug workaround.
21873
21874 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
21875
21876         * object.c (mono_runtime_class_init): Take the metadata_section
21877         mutex before obtaining the domain mutex.
21878
21879         * appdomain.h: Added definition of metadata_section mutex here. 
21880
21881         * object.c: define metadata_mutex here.
21882
21883 2003-07-24  Ravi Pratap  <ravi@ximian.com>
21884
21885         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
21886         fixed.
21887
21888 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
21889
21890         * reflection.c: Fix bug #46669
21891
21892 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21893
21894         * exception.c:
21895         * exception.h:
21896         * icall.c:
21897         * object.h: fill in the type name for TypeLoadException.
21898
21899 2003-07-23  Ravi Pratap  <ravi@ximian.com>
21900
21901         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
21902         relationship between TypeBuilders while compiling corlib) and bug
21903         45993 (Array types returned from the runtime while compiling
21904         corlib were from the loaded corlib).
21905
21906 2003-07-22  Martin Baulig  <martin@ximian.com>
21907
21908         * mono-debug-debugger.c: Reworked the type support a bit more;
21909         distinguish between types and classes.
21910
21911 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
21912
21913         * icall.c: add IsArrayImpl icall.
21914
21915 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
21916
21917         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
21918         initializing real_size only once. Also fix bug #46602.
21919
21920 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
21921
21922         * object.c: Renamed mono_metadata_section to metadata_section.
21923
21924 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
21925
21926         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
21927           empty array if the type is an array. Fixed.
21928           ves_icall_MonoMethod_get_base_definition: if the base method
21929           is abstract, get the MethodInfo from the list of methods of
21930           the class.
21931         * reflection.c: ParameterInfo.PositionImpl should be zero-based
21932           and it was 1-based. Fixed in mono_param_get_objects.
21933
21934 2003-07-20  Martin Baulig  <martin@ximian.com>
21935
21936         * mono-debug.h: Set version number to 31.
21937         (mono_debug_init): Added `MonoDomain *' argument.
21938
21939         * mono-debug-debugger.c: Reworked the type support; explicitly
21940         tell the debugger about builtin types; pass the `klass' address to
21941         the debugger.
21942
21943 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
21944
21945         * image.c: Allow new metadata tables to be loaded without a
21946         warning. Also update the warning message to give the new constant value.
21947                 
21948 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
21949
21950         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
21951         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
21952         array type representation changes.
21953
21954 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
21955
21956         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
21957         on Environment.Exit () call.
21958
21959 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
21960
21961         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
21962         requires a matching corlib.
21963
21964 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
21965
21966         * Changelog: My editor decided to add a CR to each line. Sorry about that.
21967           Committed again without the CRs.
21968         
21969 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
21970
21971         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
21972           getting it from the "this" socket instance. Did not work
21973           if the socket is a subclass of Socket.
21974           Also fixed bug #35371.
21975
21976 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
21977
21978         * metadata.c: fixed size for TypedByRef.
21979         * loader.c: when searching for a method, consider the vararg amrker.
21980         * unicode.c, decimal.c: constify some arrays.
21981
21982 2003-07-15  Dick Porter  <dick@ximian.com>
21983
21984         * socket-io.c: Fixed compilation for gcc < 3.2.
21985
21986         Fixed compilation for machines that don't have AF_INET6 (thanks to
21987         Bernie Solomon <bernard@ugsolutions.com> for that part.)
21988
21989         Fixed compile warnings.
21990         
21991         Fixed formatting and line endings.
21992
21993 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
21994
21995         * socket-io.h:
21996         * socket-io.c: Added IPv6 support.
21997
21998 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
21999
22000         * class.c (mono_class_is_assignable_from): New function to implement
22001         the is_assignable_from logic. Used by mono_object_isinst, 
22002         Type::IsAssignableFrom () and the interpreter.
22003
22004         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
22005         Object, even interfaces.
22006         
22007         * object.c (mono_object_isinst): Implement in terms of 
22008         is_assignable_from.
22009
22010         * icall.c (ves_icall_type_is_assignable_from): New icall.
22011
22012 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
22013
22014         * domain.c (foreach_domain): fix compiler warning.
22015
22016 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
22017
22018         * image.c (load_metadata_ptrs): use g_strndup because strndup is
22019         not available on all plattforms
22020
22021 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
22022
22023         * image.h image.c: Store the metadata version string in MonoImage.
22024         * icall.c: New icall to retrieve the image version.
22025         * reflection.c (create_dynamic_image): Fill in the image version field
22026         * reflection.c (build_compressed_metadata): Use the image version
22027         from the image structure.
22028
22029 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22030
22031         * appdomain.c: modified comment.
22032         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
22033         That will be its last iteration when mono_gc_cleanup is called from
22034         mono_runtime_cleanup and before the domain is unloaded.
22035
22036         Fixes bug #45962.
22037
22038 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
22039
22040         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
22041         attributes.
22042
22043 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22044
22045         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
22046         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
22047         Bernie Solomon <bernard@ugsolutions.com>.
22048
22049 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22050
22051         * object.c, object.h: provide mono_object_new_fast() for faster
22052         allocation in some special cases.
22053
22054 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
22055
22056         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
22057         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
22058
22059 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
22060
22061         * threadpool.c: fix leaks.
22062
22063 2003-07-01  Dick Porter  <dick@ximian.com>
22064
22065         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
22066         using MonoGHashTables.  Fixes threadpool bug posted to list.
22067
22068 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22069
22070         * image.h, image.c: added support to load an assembly from a byte array.
22071         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
22072         assembly bundle support.
22073
22074 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
22075
22076         * threadpool.c (mono_thread_pool_add): keep a reference to the
22077         AsyncResult to prevent GC
22078
22079 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22080
22081         * class.c: leak fix.
22082
22083 2003-06-25  Dick Porter  <dick@ximian.com>
22084
22085         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
22086         for the async object, the WaitHandle object will close the handle.
22087         Fixes bug 45321.
22088
22089 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22090
22091         * class.c: in mono_array_class_get (), lookup from the hash with the
22092         same type we insert: this works around a bug in
22093         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
22094         lluis. The real fix will have to wait for after the release.
22095
22096 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22097
22098         * icall.c: fix memory leak when getting type members.
22099
22100 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22101
22102         * reflection.c: added more pubtoken special cases.
22103
22104 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
22105
22106         * class.c: handle field offset correctly when class size
22107         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
22108
22109 2003-06-20  Martin Baulig  <martin@ximian.com>
22110
22111         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
22112         *image' field.
22113
22114 2003-06-20  Martin Baulig  <martin@ximian.com>
22115
22116         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
22117
22118 2003-06-20  Martin Baulig  <martin@ximian.com>
22119
22120         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
22121         just distinguish between variables in registers and variables at
22122         an offset relative to a register.
22123
22124 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22125
22126         * icall.c: #ifdef out latest changes until mcs is fixed.
22127
22128 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22129
22130         * icall.c: return members in metadata order.
22131
22132 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
22133
22134         * icall.c: avoid infinite loop in GetTimeZoneData.
22135
22136 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
22137
22138         * icall.c: added Marshal.Prelink/All icalls.
22139
22140 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
22141
22142         * object.c, object.h: fix warnings and do some overflow checking
22143         when creating arrays.
22144
22145 2003-06-17  Dick Porter  <dick@ximian.com>
22146
22147         * file-io.h:
22148         * file-io.c: File attributes need to be tweaked slightly when
22149         passed from the managed to the w32 world.
22150
22151 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22152         * profiler.h profiler-private.h profiler.c: Rework last patch
22153         based on suggestion by Paolo.
22154         
22155 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
22156
22157         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
22158         instruction level coverage data collection.
22159         * profiler.h profiler.c (: Added new callback function which can be
22160         used by the profiler to limit which functions should have coverage
22161         instrumentation.
22162         * profiler.c (mono_profiler_load): Call g_module_build_path to
22163         generate the file name of the profiler library.
22164
22165 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
22166
22167         * profiler.c, profiler.h, profiler-private.h: added basic block 
22168         coverage profiling API.
22169
22170 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
22171
22172         * reflection.c (mono_reflection_create_runtime_class): Add support
22173         for events in dynamically generated code.
22174
22175         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
22176         not allocated.
22177
22178 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
22179
22180         * icall.c: when getting timezone info, return reasonable values if we
22181         can't get the actual data.
22182
22183 2003-06-14  Dick Porter  <dick@ximian.com>
22184
22185         * threads.c (start_wrapper): Remove the reference to the thread
22186         object in the TLS data, so the thread object can be finalized.
22187         This won't be reached if the thread threw an uncaught exception,
22188         so those thread handles will stay referenced :-( (This is due to
22189         missing support for scanning thread-specific data in the Boehm GC
22190         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
22191
22192 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
22193
22194         * reflection.c: ensure streams and tables are first allocated with
22195         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
22196
22197 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
22198
22199         * icall.c: fixed GetElementType for byrefs (bug# 44792).
22200
22201 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
22202
22203         * reflection.c (mono_reflection_create_runtime_class): Add support for
22204         properties to dynamically created classes.
22205         * reflection.c: Fix a few places where non-MonoObjects were inserted
22206         into the tokens hashtable.
22207
22208 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22209
22210         * object.c: some support to handle out of memory exceptions.
22211
22212 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
22213
22214         * marshal.c (mono_marshal_get_native_wrapper): support reference
22215         return types
22216
22217 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22218
22219         * object.h, object.c: more portability stuff from Bernie Solomon.
22220         Unexport mono_object_allocate(). Added mono_object_unbox ().
22221         Set exitcode when an unhandled exception is thrown.
22222
22223 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
22224
22225         * marshal.c (mono_marshal_get_native_wrapper): use custom
22226         marshaler for return types.
22227
22228 2003-06-10  Dick Porter  <dick@ximian.com>
22229
22230         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
22231         ip_mreq is available
22232
22233 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
22234
22235         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
22236         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
22237         by Bernie Solomon <bernard@ugsolutions.com>.
22238
22239 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
22240
22241         * gc.c (mono_gc_init): Avoid error message on shutdown when
22242         GC_DONT_GC=1 is used.
22243
22244         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
22245         New icall to return the GUID of a module.
22246
22247 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
22248
22249         * class.c: ensure instance size always includes the parent's size
22250         even whem class size is set explicitly (fixes bug#44294).
22251
22252 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22253
22254         * profiler.h, profiler.c: made the simple profiler thread-safe,
22255         get more accurate timing info. Allow the loading of an
22256         externally-developed profiler module.
22257
22258 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
22259
22260         * marshal.c (mono_marshal_get_native_wrapper): improved
22261         class/byref arguments.
22262         (mono_marshal_get_native_wrapper): better string marshaling support.
22263
22264 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
22265
22266         * class.c: ensure .pack and .size are handled correctly and
22267         simplified layout of static fields.
22268
22269 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
22270
22271         * appdomain.c
22272         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
22273
22274         * loader.c (mono_lookup_pinvoke_call): look for modules in the
22275         current directory (fix bug 44008)
22276
22277 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
22278
22279         * marshal.c (mono_marshal_get_native_wrapper): started support for
22280         custom marshalers.
22281         (mono_delegate_to_ftnptr): consider marshalling specifications
22282
22283 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
22284
22285         * reflection.c, reflection.h: emit custom marshal info.
22286
22287 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22288
22289         * object.c: free the GError.
22290         * icall.c: added CloseEvent_internal.
22291         * threads.[ch]:
22292         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
22293         call.
22294
22295 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
22296
22297         * loader.c (mono_method_get_signature): Add support for dynamic
22298         assemblies.
22299
22300 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
22301
22302         * reflection.c: fixed bug #43905.
22303
22304 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
22305
22306         * class.c, domain.c, icall.c, metadata.h, object.h: support for
22307         handling TypedReference and ArgIterator.
22308         * loader.c, loader.h: added function to get signature at call site.
22309
22310 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22311
22312         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
22313         data readonly. Buglets and warning fixes. Some MethodSpec support.
22314
22315 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
22316
22317         * class.h, class.c, object.c: remove relative numbering support.
22318
22319 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
22320
22321         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
22322         free the string, until we get a chance to fix Gtk#
22323
22324 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22325
22326         * marshal.c: revert last patch.
22327
22328 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
22329
22330         * icall.c: updates for new mono_class_vtable() not calling
22331         the type constructor anymore.
22332
22333 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
22334
22335         * object.h, object.c: separate vtable creation from type
22336         initialization. Make running the .cctor thread safe.
22337
22338 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
22339
22340         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
22341
22342 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
22343
22344         * loader.c (mono_get_method): consider calling convention
22345
22346 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
22347
22348         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
22349         to return the invisible global type for a module.
22350
22351         * reflection.c (mono_image_build_metadata): Emit global fields too.
22352
22353 2003-05-20  Peter Williams  <peterw@ximian.com>
22354
22355         * loader.c (mono_lookup_internal_call): Add a few newlines.
22356
22357 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
22358
22359         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
22360         literal strings.
22361
22362         * appdomain.c (set_domain_search_path): Recalculate search path when
22363         AppDomainSetup.PrivateBinPath changes.
22364
22365         * object.c (mono_class_compute_gc_descriptor): It turns out some
22366         parts of the class libs (like System.Thread) holds pointers to
22367         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
22368         to treat native int a pointer type here.
22369         
22370 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
22371
22372         * appdomain.h, domain.c: add hashtable for jump target resolution.
22373
22374 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
22375
22376         * reflection.h reflection.c icall.c: Added new icalls 
22377         GetManifestResourceInfoInternal, GetModulesInternal and support
22378         infrastructure.
22379
22380 2003-05-16  Dick Porter  <dick@ximian.com>
22381
22382         * icall.c:
22383         * file-io.h:
22384         * file-io.c: Implement System.IO.MonoIO::GetTempPath
22385
22386 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
22387
22388         * object.c: mono_store_remote_field: little fix to previous patch.
22389
22390 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
22391
22392         * class.c: add constructors to array classes.
22393         * icall.c: special case array construction for InternalInvoke (),
22394
22395 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
22396
22397         * class.h class.c reflection.c object.c: Added support for field
22398         defaults in dynamically generated classes.
22399
22400 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
22401
22402         * reflection.c: properly encode charset for ddlimport.
22403
22404 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
22405
22406         * threads.c: allow compiling without GC.
22407
22408 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
22409
22410         * appdomain.h, object.c, object.h, threads.c, threads.h: added
22411         handling of thread static data.
22412
22413 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
22414
22415         * reflection.h, reflection.c: added mono_custom_attrs_free ().
22416
22417 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
22418
22419         * class.c (mono_array_class_get): always set the serializable flags
22420         (mono_array_class_get): always set the SEALED attribute for array types
22421
22422 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
22423
22424         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
22425         attributes (fix for bug 42021).
22426
22427 2003-05-12  Dick Porter  <dick@ximian.com>
22428
22429         * gc.c: Don't run finalizers when the finalizer thread is
22430         finishing up, because the default domain has already been
22431         destroyed.
22432
22433 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
22434
22435         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
22436         value is null, we should throw an exception.   This is slightly
22437         different than the other conventions used for the constructor.
22438
22439 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22440
22441         * socket-io.c: fixed windows build.
22442
22443 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22444
22445         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
22446
22447 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
22448
22449         * object.c (mono_string_new_wrapper): Compatibility fix for MS
22450         compilers.
22451
22452 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
22453
22454         * class.c (mono_class_layout_fields): Add experimental GC aware
22455         auto layout facility. Requires class library changes to work correctly.
22456
22457         (mono_class_setup_vtable): Avoid overriding explicit interface
22458         method implementations. Fixes iface3.exe test.
22459
22460         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
22461         object reference.
22462         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
22463         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
22464
22465         * metadata.h: Add new type classification macro which determines
22466         whenever the type holds an object reference.
22467
22468 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
22469
22470         * marshal.c (mono_marshal_get_native_wrapper): cleanups
22471
22472 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
22473
22474         * gc.c (finalizer_thread): Work around a GC bug.
22475
22476 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
22477
22478         * marshal.c (emit_struct_conv): allow unions
22479
22480         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
22481
22482 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
22483
22484         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
22485
22486 2003-05-06  Martin Baulig  <martin@ximian.com>
22487
22488         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
22489
22490 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22491
22492         * socket-io.c:
22493         (Select_internal): allow NULLs, don't create arrays if not needed.
22494         Coupled with Socket.cs changes.
22495
22496         * threadpool.c:
22497         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
22498         register a finalizer for it that will close the semaphore handle. This
22499         fixes the leak and make Lupus' test run with > 4080 loops.
22500
22501 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
22502
22503         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
22504         Jerome Laban (bug #42287)
22505
22506 2003-05-02  Martin Baulig  <martin@ximian.com>
22507
22508         * debug-mono-symfile.h
22509         (MonoSymbolFile): Moved declaration into mono-debug.h.
22510         (MonoDebugMethodJitInfo): Likewise.
22511         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
22512         argument.
22513         (_mono_debug_address_from_il_offset): Take a
22514         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
22515
22516         * mono-debug.h
22517         (MonoDebugDomainData): New struct.
22518         (mono_debug_get_domain_data): New function.
22519         (mono_debug_add_method): Take an additional `MonoDomain *'
22520         argument.
22521         (mono_debug_source_location_from_address): Likewise.
22522         (mono_debug_il_offset_from_address): Likewise.
22523         (mono_debug_address_from_il_offset): Likewise.
22524
22525 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
22526
22527         * reflection.c: one more check for null type in custom attrs.
22528
22529 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22530
22531         * reflection.c: avoid warning (comparison is always false due to limited
22532         range of data type).
22533
22534 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22535
22536         * icall.c: throw an exception in Type.GetField if the argument 'name'
22537         is NULL.
22538
22539 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
22540
22541         * reflection.c: fixed handling of enums in named arguments to custom
22542         attributes (bug #42123).
22543
22544 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
22545
22546         * reflection.c: use the right array element type and handle
22547         a null for a Type argument, too.
22548
22549 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
22550
22551         * reflection.c: handle arrays as arguments to custom attributes.
22552
22553 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
22554
22555         * reflection.c: handle a string value in a custom attr
22556         ctor that takes an object.
22557
22558 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
22559
22560         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
22561         (fix bug #42063)
22562
22563 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
22564
22565         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
22566
22567 2003-04-27  Martin Baulig  <martin@ximian.com>
22568
22569         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
22570         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
22571         MONO_DEBUGGER_EVENT_BREAKPOINT.
22572         (mono_breakpoint_trampoline_code): Removed.
22573         (mono_debugger_event_handler): The last argument is now a
22574         `guint32'.
22575         (mono_debugger_insert_breakpoint_full): Removed the
22576         `use_trampoline' argument.
22577         (mono_debugger_method_has_breakpoint): Likewise.
22578         (mono_debugger_trampoline_breakpoint_callback): Renamed to
22579         mono_debugger_breakpoint_callback(); take the method and
22580         breakpoint number as arguments.
22581
22582 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
22583
22584         * metadata.c: fix off by one when loading parameters attributes.
22585
22586 2003-04-24  Martin Baulig  <martin@ximian.com>
22587
22588         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
22589
22590 2003-04-24  Martin Baulig  <martin@ximian.com>
22591
22592         * mono-debug-debugger.c: Moved all code which interacts with the
22593         Mono Debugger here.
22594
22595         * debug-mono-symfile.c: This code now just deals with the symbol
22596         file itself, the debugger code is now in mono-debug-debugger.c.
22597
22598 2003-04-23  Martin Baulig  <martin@ximian.com>
22599
22600         * mono-debug.c (mono_debug_source_location_from_il_offset):
22601         New method; like mono_debug_source_location_from_address(), but
22602         takes an IL offset instead of a machine address.
22603
22604 2003-04-23  Martin Baulig  <martin@ximian.com>
22605
22606         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
22607         `line' field; this is now computed by the debugger.
22608
22609 2003-04-23  Martin Baulig  <martin@ximian.com>
22610
22611         * mono-debug.[ch]: New files.  This is the new debugging interface.
22612
22613         * mono-debug-debugger.[ch]: New files.  Moved all code which
22614         interacts with the Mono Debugger here.
22615
22616 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
22617
22618         * domain.c (mono_init): initialize mono_defaults.monitor_class
22619
22620 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
22621
22622         * reflection.c (method_encode_code): Add a spicy exception to help
22623         future compiler authors.
22624
22625 2003-04-21  Martin Baulig  <martin@ximian.com>
22626
22627         * icall.c
22628         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
22629         Make this work with relative pathnames; g_filename_to_uri() needs
22630         an absolute filename.
22631
22632 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
22633
22634         * icall.c: Track name changes in Object and ValueType.
22635
22636 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
22637
22638         * metadata.c (mono_type_stack_size): size should be a multiple of
22639         sizeof (gpointer)
22640
22641 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22642
22643         * gc.c:
22644         (internal_domain_finalize): moved into mono_domain_finalize. No need
22645         to create another thread because the finalizers will be run in the
22646         finalizer thread.
22647         
22648         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
22649         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
22650         to be run (MS does this too).
22651
22652 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
22653
22654         * object.c (mono_class_compute_gc_descriptor): Update comment.
22655
22656         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
22657
22658         * image.h: Add synchronized wrapper cache.
22659
22660         * image.c (do_mono_image_open): Initialize cache.
22661
22662         * reflection.c (create_dynamic_mono_image): Initialize cache.
22663
22664 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22665
22666         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
22667         ves_icall_System_Buffer_ByteLengthInternal.
22668
22669 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
22670
22671         * reflection.c: setup klass->nested_in earlier. Allow
22672         a dash in the assembly name.
22673
22674 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
22675
22676         * metadata.c (mono_type_to_unmanaged): dont access
22677         type->data.klass for MONO_TYPE_OBJECT
22678         (mono_type_to_unmanaged): consider System.Delegate class
22679
22680 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
22681
22682         * class.c: just setup supertypes in the proper place instead of
22683         initializing the full element class for arrays.
22684
22685 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
22686
22687         * class.c: ensure the element class of arrays is initialized.
22688         Setup the supertype info for array classes, too.
22689
22690 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
22691
22692         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
22693
22694 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22695
22696         * Makefile.am: re-added -m option when running cygpath. This way,
22697         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
22698         separator.
22699         * mono-config.c: same codepath for locating mono config file for WIN32
22700         and the rest.
22701         * assembly.c: if mono_assembly_setrootdir is called, don't override
22702         the value set.
22703
22704 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22705
22706         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
22707         MONO_ASSEMBLIES variable.
22708
22709 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
22710
22711         * icall.c: added Assembly::GetNamespaces() icall.
22712
22713 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22714
22715         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
22716
22717 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
22718
22719         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
22720         * object.c: fixed bug in the construction of vtable for proxies
22721
22722 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
22723
22724         * object.c (mono_array_new): Mark mono_array_new as an icall.
22725
22726 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22727
22728         * class.c: fixed test for public method when overriding interfaces.
22729         Closes bug #40970.
22730
22731 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
22732
22733         * appdomain.h, domain.c: added mono_domain_foreach() to
22734         be able to access the currently loaded appdomains.
22735         * object.c: make string interning work across sppdomains.
22736         Mark some functions for use as icalls.
22737
22738 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
22739
22740         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
22741
22742         * reflection.h reflection.c: Allocate long living data using 
22743         GC_MALLOC_ATOMIC so the collector does not need to scan it.
22744
22745         * reflection.c: Double the allocation size in streams instead of
22746         increasing it, to prevent unneccesary copying on large assemblies.
22747         
22748         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
22749         creation if the assembly does not have the Run flag set.
22750
22751 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
22752
22753         * class.h: avoid the C++ keywords in header files (Jerome Laban
22754         spotted and fixed this).
22755
22756 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22757
22758         * object.c:
22759         (mono_unhandled_exception): fill in the arguments for the
22760         UnhandledException event. Only trigger that event for the default
22761         domain (as MS does).
22762
22763 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
22764
22765         * object.c: Improve typed allocation stuff based on suggestions from
22766         Paolo. Also turn it on if the GC library supports it.
22767
22768 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
22769
22770         * object.c object.h class.h: Added experimental typed allocation
22771         facility using the interfaces in gc_gcj.h.
22772
22773         * os/gc_wrapper.h: Added new include files.
22774         
22775 2003-04-03  Martin Baulig  <martin@ximian.com>
22776
22777         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
22778         which is not yet enabled by default.
22779
22780         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
22781         functions.
22782         (mono_gc_lock, mono_gc_unlock): New static functions.
22783
22784         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
22785         functions; stop/start the world for the garbage collector.  This
22786         is using the windows API; we need to complete the SuspendThread()/
22787         ResumeThread() implementation in the io-layer to make this work on Unix.
22788         (mono_gc_push_all_stacks): New public function; tells the garbage
22789         collector about the stack pointers from all managed threads.
22790
22791 2003-04-03  Martin Baulig  <martin@ximian.com>
22792
22793         * object.h (MonoThread): Added `gpointer stack_ptr'.
22794
22795         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
22796
22797 2003-04-03  Martin Baulig  <martin@ximian.com>
22798
22799         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
22800
22801 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
22802
22803         * reflection.c (typebuilder_setup_fields): Initialize field.first and
22804         field.last.
22805
22806 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
22807
22808         * loader.c (mono_lookup_internal_call): Report the corlib that is
22809         out of sync.
22810
22811 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
22812
22813         * icall.c (ves_icall_type_GetTypeCode): fixed check for
22814         System.DBNull (it's class not valuetype).
22815
22816 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
22817
22818         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
22819         if the array method was already assigned a token (fixes bug#40646).
22820
22821 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
22822
22823         * reflection.c (mono_reflection_get_type): Attempt type resolve even
22824         if no assembly is given.
22825
22826 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
22827
22828         * metadata.h: Added the new tables.
22829
22830         * row-indexes.h: Added definitions for new tables.
22831
22832         * metadata.c: Add schemas for new tables, and add support for
22833         computing the sizes of them.
22834
22835         * class.c: Update for handling the new type cases.
22836
22837 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
22838
22839         * metadata.h (MONO_TYPE_IS_VOID): new macro
22840
22841 2003-03-31  Martin Baulig  <martin@ximian.com>
22842
22843         * threads.h (MonoThreadCallbacks): Added `thread_created'.
22844
22845         * threads.c (mono_thread_new_init): Call `thread_created' in the
22846         mono_thread_callbacks.
22847
22848 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
22849
22850         * loader.h: added marshalbyrefobject_class to mono_defaults
22851         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
22852         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
22853           generation of output parameters.
22854           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
22855         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
22856           contextbound and the target object belongs to the context of the caller.
22857         * object.h: added context and unwrapped_server variables in MonoRealProxy.
22858         * object.c: Implemented support for interfaces and abstract classes
22859           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
22860           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
22861
22862 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
22863
22864         * class.h class.c (mono_class_is_subclass_of): New function.
22865         
22866         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
22867         routines for most common case (calls from ArrayList::ToArray).
22868
22869         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
22870         routine so programs which call Environment::Exit() can be profiled.
22871
22872         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
22873         Added MONO_ARCH_SAVE_REGS.
22874
22875         * icall.c (ves_icall_type_is_subtype_of): Use new function.
22876
22877 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
22878
22879         * blob.h: Add a couple of new MonoType types definitions.
22880
22881         * tabledefs.h: Add a couple of new call convs.
22882
22883 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
22884
22885         * reflection.h (MonoReflectionDynamicAssembly): track changes in
22886         the layout of the class.
22887
22888         * reflection.c (alloc_table): double the size on overflow to avoid
22889         unnecessary copying.
22890
22891         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
22892         avoid filling out metadata tables and blobs. Also set mb->ilgen to
22893         null so it can be garbage collected.
22894         
22895 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
22896
22897         * reflection.c (mono_reflection_get_type): Return the resolved type
22898         only if it is in the assembly we searched.
22899
22900         * reflection.c (ensure_runtime_vtable): Initialize method slots.
22901
22902         * class.c (mono_class_setup_vtable): Set the slot of the overriding
22903         method.
22904
22905 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22906
22907         * appdomain.c:
22908         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
22909         the right one is 'file:///blah', but MS allows it.
22910         * assembly.c:
22911         (mono_assembly_open): allow 'file://blah'
22912
22913         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
22914
22915 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
22916
22917         * socket-io.c: fixes bug #40310.
22918
22919 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
22920
22921         * reflection.c (mono_reflection_parse_type): handle deeply nested
22922         types correctly.
22923
22924         * reflection.c (mono_image_create_token): Use unique token values
22925         since they will be put into a hash table.
22926
22927         * class.c (mono_class_setup_vtable): If a method occurs in more than
22928         one place in the vtable, and it gets overriden, then change the
22929         other occurances too.
22930
22931         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
22932         object as return type.
22933
22934 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
22935
22936         * icall.c: Deleted "ToString" implementation for double and float
22937         because they are full implemented in managed code.
22938
22939 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
22940
22941         * reflection.c, reflection.h: implemented and exported functions
22942         to retrieve info about custom attributes.
22943
22944 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22945
22946         * appdomain.c: moved Uri handling to assembly.c
22947         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
22948         work when using a file Uri in *nix and windows.
22949
22950         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
22951         GetReferencedAssemblies.
22952
22953 2003-03-18  Dick Porter  <dick@ximian.com>
22954
22955         * icall.c: Rename a couple of internal calls
22956
22957         * threads.c: Set the thread state to Stopped when a thread exits.
22958         Fixes bug 39377.
22959
22960 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
22961
22962         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
22963         New icall.
22964
22965         * object.c (mono_class_vtable): fix warning.
22966
22967 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
22968
22969         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
22970
22971         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
22972         memory.
22973         (method_encode_clauses): Create exception info structures in the right
22974         order.
22975         (mono_reflection_setup_internal_class): Initialize supertypes field.
22976
22977         * class.c object.c: Handle interfaces which implement other interfaces 
22978         correctly.
22979
22980         * class.h class.c: Move the supertypes array initialization code into 
22981         a separate function so it can be used for dynamic types too. Also call
22982         it earlier, in mono_class_init(), since it can be used before the
22983         type is initialized.
22984
22985 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22986
22987         * Makefile.am:
22988         * assembly.c:
22989         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
22990
22991         * appdomain.c:
22992         * appdomain.h:
22993         * marshal.c:
22994         * object.c: remove warnings.
22995
22996 2003-03-13  Martin Baulig  <martin@ximian.com>
22997
22998         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
22999         (MonoDebugLexicalBlockEntry): New types.
23000
23001         * debug-mono-symfile.c
23002         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
23003
23004 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23005
23006         * process.c: ret can be any non-zero value accroding to MS doc.
23007
23008 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
23009
23010         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
23011         fixing a warning for a miss-used prototype, would have cause
23012         random memory corruption.
23013
23014 2003-03-07  Martin Baulig  <martin@ximian.com>
23015
23016         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
23017         getting really annoying ....
23018
23019 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
23020
23021         * reflection.c (fixup_method): added support for array methods.
23022
23023 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
23024
23025         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
23026         (pointed out by Michael Adams).
23027
23028 2003-03-04  Dick Porter  <dick@ximian.com>
23029
23030         * icall.c: Temporarily reverted the Double and Single ToString()
23031         change, because it broke nunit.
23032
23033 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
23034
23035         * object.h, threads.h: make include files compatible with C++
23036         (patch by Jerome Laban <jlaban@wanadoo.fr>).
23037
23038 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23039
23040         * icall.c: Erased ToString helper functions for Double and Single.
23041         Now, that implementations ar all in managed code (Double and Single
23042         Formatters).
23043
23044 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
23045
23046         * appdomain.c: Added method for initializing the default context of
23047         a domain. Added internal call for getting the default context.
23048         * appdomain.h: Added context variable in MonoDomain struct.
23049         * domain.c: mono_domain_set also sets the default context of the domain
23050         * icall.c: Mapped internal method InternalGetDefaultContext.
23051         * object.c: mono_object_get_virtual_method returns always a remoting
23052         wrapper if the object is a transparent proxy.
23053         mono_runtime_invoke_array: when creating an object by calling the
23054         constructor, if the created object is a proxy, then the constructor should
23055         be called using the a remoting wrapper.
23056
23057 2003-03-03  Dick Porter  <dick@ximian.com>
23058
23059         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
23060         variable so it compiles on solaris.  Problem spotted by
23061         Christopher Taylor <ct@cs.clemson.edu>
23062
23063 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23064
23065         * appdomain.c:
23066         (get_info_from_assembly_name): don't leak value.
23067
23068         * icall.c:
23069         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
23070         result.
23071
23072 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
23073
23074         * assembly.c: export mono_image_load_references ().
23075         * class.c: handle function pointers. mono_class_from_name() now
23076         supports nested type names directly.
23077
23078 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
23079
23080         * reflection.h reflection.c: Encode already created dynamic methods 
23081         and fields correctly as a DEF instead of a REF.
23082
23083         * reflection.c: Get rid of the force_ref argument to 
23084         mono_image_typedef_or_ref since it was wrong in the first place.
23085
23086         * string-icalls.c: add error checking to string constructors according
23087         to the MSDN docs.
23088
23089         * reflection.c: Emit types in the order their TypeBuilders were 
23090         created. Previously, a new table index was assigned to each type before
23091         the tables were emitted. This was wrong because the signature blob
23092         might already refer to a type by its original table index.
23093
23094 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
23095
23096         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
23097         change.
23098         
23099 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23100
23101         * Makefile.am: make assemblies dir have \ instead of / on windows.
23102
23103 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
23104
23105         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
23106         iterate over the NESTEDCLASS table using a linear search since the
23107         table is not guaranteed to be sorted by the secondary key.
23108
23109         * class.c (mono_class_create_from_typedef): fixed up call to
23110         mono_metadata_nesting_typedef.
23111         
23112 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
23113
23114         * marshal.c (mono_string_to_byvalstr): clear the memory as
23115         suggested by Jerome Laban <jlaban@wanadoo.fr>
23116
23117 2003-02-26  Dick Porter  <dick@ximian.com>
23118
23119         * process.c: Cope with padding in .rsrc blocks
23120
23121 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23122
23123         * metadata.h: reverted the filter_len change, it breaks reflection
23124         
23125 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
23126
23127         * metadata.h: added a new field to store the filter_len
23128         
23129
23130 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
23131
23132         * reflection.c: handle custom attributes for types and members
23133         created with Reflection.Emit (bug#38422).
23134
23135 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
23136
23137         * reflection.c: define RTSpecialName automatically for constructors for
23138         compatibility with MS.NET.
23139
23140         * reflection.c (mono_reflection_create_runtime_class): initialize
23141         nested_in field of dynamically created classes.
23142
23143 2003-02-22  Martin Baulig  <martin@ximian.com>
23144
23145         * debug-mono-symfile.h: Incremented version number.
23146
23147 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23148
23149         * object.h icall.c process.c: fix warnings.
23150
23151 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
23152
23153         * appdomain.h appdomain.c:
23154         (mono_domain_try_type_resolve): split the 
23155         name_or_tb argument into a name and a tb argument.
23156         (mono_domain_has_type_resolve): new function to check whenever the
23157         application has registered a TypeResolve event handler.
23158         
23159         * icall.c reflection.h reflection.c: move the type resolve logic into
23160         mono_reflection_get_type () so it will be invoked when 
23161         Assembly::GetType () is called.
23162
23163         * reflection.c:
23164         (mono_reflection_get_type): renamed to get_type_internal.
23165         (mono_reflection_get_type): fixed type name generation so it works 
23166         for nested types too.
23167         (mono_reflection_get_type): call has_type_resolve () to avoid the 
23168         costly type name generation if there is no resolve event handler.
23169
23170 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23171
23172         * class.c, image.c: load exported types from file references.
23173
23174 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
23175
23176         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
23177           used to cache the managed methods used to create proxies and make 
23178           remote invocation of methods.
23179         * class.h: Added in MonoVTable a flag to indicate that a class needs 
23180           to be remotely created.
23181         * object.c: Modified the method mono_class_vtable(). It now initializes 
23182           the remote flag of the vtable. Modified mono_object_new_specific(), 
23183           so now it checks the remote flag.
23184         * icall.c: Added a couple of internal methods, one for enabling instance 
23185           creation interception for a type, and one for creating objects bypassing
23186           the remote check.
23187
23188 2003-02-18  Martin Baulig  <martin@ximian.com>
23189
23190         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
23191         New interncall to get a method's metadata token.
23192
23193         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
23194         New interncall for the debugger.
23195
23196 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
23197
23198         * class.c (mono_class_setup_vtable): allocate supertype array
23199
23200 2003-02-18  Martin Baulig  <martin@ximian.com>
23201
23202         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
23203
23204 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23205
23206         * reflection.c:
23207         (assembly_name_to_aname): jump over unknown properties (i've found
23208         something like: 'type, assembly, version=xxx, custom=null, public...',
23209         so now will ignore custom=null and still get the rest of the values).
23210
23211 2003-02-17  Dick Porter  <dick@ximian.com>
23212
23213         * threads.c: Have Thread.Start() wait for a semaphore to signal
23214         that the thread has set up all its local data.  This fixes bug
23215         34323, where Abort() raced the new thread's TLS data.
23216
23217         Also removes the handle_store() call from start_wrapper, because
23218         threads are now always created suspended and there is no longer a
23219         race between the parent and child threads to store the info.
23220
23221 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
23222
23223         * image.c: explain the #- heap issue in a message, hopefully
23224         avoiding FAQs on mono-list.
23225
23226 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23227
23228         * icall.c:
23229         (GetEntryAssembly): if the domain has not invoked
23230         AppDomain.ExecuteAssembly yet, return the assembly of the default
23231         AppDomain.
23232
23233 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
23234
23235         * class.c (mono_ldtoken): make it work in dynamic assemblies.
23236
23237 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
23238
23239         * metadata.c, reflection.c: simple speedup to type hash
23240         and equals code.
23241
23242 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
23243
23244         * image.c, image.h, class.c, assembly.c: move module loading
23245         to MonoImage. When loading metadata, consider alignemnet from
23246         the start of metadata, not from the metadata address in memory.
23247
23248 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
23249
23250         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
23251         AssemblyBuilder objects. Factored out custom attribute creation into
23252         a separate function.
23253         (create_custom_attr): new function to create custom attributes.
23254
23255 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
23256
23257         * Makefile.am: Got tired of typing the full pathname to pedump.
23258         Until there is another option, am installing this.
23259
23260 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
23261
23262         * class.c (class_compute_field_layout): always set field->parent 
23263         (mono_ldtoken): use mono_defaults.fieldhandle_class;
23264
23265 2003-02-11  Dick Porter  <dick@ximian.com>
23266
23267         * threads-types.h:
23268         * monitor.c: Rewrote Monitor, making lock much faster and
23269         Pulse/Wait work as specified.  Also uses much fewer handles, and only
23270         creates them as needed.
23271
23272         * exception.c: Added SynchronizationLockException
23273
23274         * threads.c: Deleted old Monitor implementation.  The new one is
23275         in a new file.
23276
23277 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
23278
23279         * class.c: handled TypedReference type code. Set the correct size for
23280         class data. Setup interface_offsets for interface classes, too.
23281
23282 2003-02-09  Martin Baulig  <martin@ximian.com>
23283
23284         * debug-mono-symfile.h: Reflect latest symbol writer changes.
23285
23286 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
23287
23288         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
23289         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
23290         * object.c: fixed mono_object_get_virtual_method () for interfaces.
23291         * verify.c: check for code that runs after the end of the method.
23292
23293 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
23294
23295         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
23296         "System.Math::Round2".
23297         * sysmath.h: Added Floor, Round and Round2 definitions.
23298         * sysmath.c: Modified certain functions that were not 100% compliant
23299         with MS.NET (math precision) and added the implementation of Floor,
23300         Round and Round2.
23301
23302 2003-02-07  Martin Baulig  <martin@ximian.com>
23303
23304         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
23305
23306 2003-02-07  Martin Baulig  <martin@ximian.com>
23307
23308         * debug-mono-symfile.c: Reflected latest symwriter changes.
23309         (mono_debug_create_mono_symbol_file): Removed.
23310         (mono_debug_open_mono_symbol_file): Take an argument which
23311         specifies whether to create a dynamic symbol file.
23312
23313 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
23314
23315         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
23316
23317 2003-02-05  Martin Baulig  <martin@ximian.com>
23318
23319         * reflection.c (mono_image_build_metadata): Make this public,
23320         protect it against being called multiple times, don't create
23321         resources and don't build the compressed metadata here.
23322         (mono_image_create_pefile): Do this here.
23323
23324         * icall.c
23325         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
23326
23327 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23328
23329         * socket-io.c: fixed bug #36322.
23330
23331 2003-02-06  Piers Haken <piersh@friskit.com>
23332
23333         * appdomain.[ch]:
23334         * class.h:
23335         * debug-mono-symfile.c:
23336         * icall.c:
23337         * loader.c:
23338         * mono-config.c:
23339         * monosn.c:
23340         * reflection.c:
23341         * socket-io.c: warning cleanups
23342
23343 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
23344
23345         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
23346         function. works like remoting invoke, but does a check for the Proxy first.
23347
23348 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
23349
23350         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
23351
23352 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
23353
23354         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
23355         array of pointers.
23356         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
23357         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
23358
23359         * object.c (mono_store_remote_field_new): used by the new jit
23360         instead of mono_store_remote_field
23361         (mono_load_remote_field_new): used by the new jit
23362         instead of mono_load_remote_field
23363
23364 2003-02-05  Patrik Torstensson
23365
23366         * appdomain.c: changed unload to take the domain id instead
23367         of domain
23368         
23369         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
23370
23371
23372 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23373
23374         * appdomain.c: don't look for assemblies in ApplicationBase if
23375         PrivateBinPathProbe is set.
23376
23377 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23378
23379         * object.c: make the first argument in main_args contain the absolute
23380         path to the assembly. Fixes bug #37511.
23381
23382 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23383
23384         * icall.c: get correct UTC offset for countries not using daylight
23385         time saving. Fixes bug #30030.
23386
23387 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23388
23389         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
23390         and 1 are the family).
23391
23392 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
23393
23394         * icall.c (ves_icall_InternalExecute): removed wrong assertion
23395
23396         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
23397
23398 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
23399
23400         * reflection.c: added support for SignatureHelper tokens, which is
23401         needed by the Calli opcode.
23402
23403         * reflection.h: track changes to SignatureHelper class.
23404
23405         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
23406
23407 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23408
23409         * appdomain.c: fixed loading assemblies from PrivateBinPath.
23410
23411 2003-02-03  Patrik Torstensson
23412         * appdomain.[c|h], domain.c : 
23413          - Added support for getting a domain via domain id
23414          - Support for setting and getting domain from System.AppDomain 
23415            (used in cross appdomain channel)
23416          - Added support for get/set for a MonoAppContext on a thread 
23417            (Context class in System.Runtime.Remoting.Contexts),
23418          - Removed hack in Get/SetData and ExecuteAssembly.
23419         
23420         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
23421         the managed world to get control when a proxy is created.
23422
23423         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
23424         
23425 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
23426
23427         * icall.c
23428         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
23429         Populate the codebase field as well.
23430
23431 2003-02-02  Martin Baulig  <martin@ximian.com>
23432
23433         * debug-mono-symfile.c
23434         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
23435         (mono_debug_symfile_add_method): Allow interncalls.
23436
23437 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23438
23439         * icall.c: throw parse exception if strtod fails or the string is empty.
23440
23441 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
23442
23443         * marshal.c: handle object type separately from defined
23444         class types.
23445
23446 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
23447
23448         * marshal.c: handle NATIVE_LPSTR for strings when it's
23449         explicitly specified.
23450
23451 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
23452
23453         * reflection.c, reflection.h, icall.c: setup the reflection
23454         handle cache for ModuleBuilders and AssemblyBuilders.
23455
23456 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
23457
23458         * reflection.c (reflection_methodbuilder_to_mono_method): set
23459         pinvoke flag
23460
23461 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23462
23463         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
23464
23465 2003-01-29  Dick Porter  <dick@ximian.com>
23466
23467         * threads.c: No need for the fake_thread kludge now that Thread
23468         doesn't run a class constructor
23469         
23470 2003-01-29  Dick Porter  <dick@ximian.com>
23471
23472         * threads.c: Use g_direct_hash instead of the rather bogus
23473         g_int_hash
23474
23475 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
23476
23477         * marshal.c (mono_marshal_get_native_wrapper): add check for null
23478         (fix pinvoke12.exe)
23479         (mono_marshal_get_struct_to_ptr): generate valid IL code
23480         (mono_marshal_get_ptr_to_struct): generate valid IL code
23481         (*): correctly set sig->pinvoke, we need to memdup the signature
23482         to do that
23483
23484 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
23485
23486         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
23487         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
23488
23489 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23490
23491         * profiler.c: provide more callers information.
23492
23493 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
23494
23495         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
23496
23497         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
23498
23499         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
23500
23501 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23502
23503         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
23504         exception instead of going into an infinite loop on dates which it 
23505         can't yet handle.
23506
23507         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
23508         out-of-range exception if needed.
23509
23510         * class.c (mono_class_setup_vtable): allow a virtual method to provide
23511         an implementation for an interface method and to override an inherited
23512         method at the same time. 
23513         Imagine a scenario when a virtual method is used to override a
23514         virtual abstract method in a parent class, and this same method 
23515         provides an implementation for an method inherited from an interface. 
23516         In this case, the interface resolution code will set im->slot, which 
23517         means that the virtual method override pass will skip this method 
23518         which means a pointer to the abstract method inherited from the parent
23519         will remain in the vtable of this non-abstract class.
23520
23521         * class.c: (mono_class_setup_vtable): continue search for a real 
23522         method if only an abstract method is found.     
23523
23524 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
23525
23526         * reflection.c: add size to encoding for ByValStr and ByValArray
23527         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
23528
23529 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23530
23531         * class.c (mono_class_setup_vtable): pass the override info as an
23532         argument.
23533
23534         * class.c (mono_class_setup_vtable): set the slot of overriding methods
23535         correctly.
23536         
23537         * reflection.c (ensure_runtime_vtable); add support for method 
23538         overrides.
23539         
23540 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23541
23542         * reflection.c (resolution_scope_from_image): Hack to work to work with
23543         dynamic assemblies.
23544
23545         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
23546         added a 'force_ref' argument to force this function to allways return 
23547         a TypeRef. This is needed by mono_image_get_memberref_token ().
23548         
23549 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23550
23551         * reflection.c (mono_image_get_type_info): interfaces really don't have
23552         a parent.
23553
23554         * reflection.c (mono_image_basic_init): fill out missing fields of
23555         image structure.
23556
23557         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
23558         dynamic assemblies. This is required so dynamic assemblies show up in
23559         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
23560         Type::GetType() etc. This is consistent with MS behaviour.
23561
23562         * image.c image.h reflection.c: add newly created classes to the name 
23563         cache so mono_class_get () will find them.      
23564
23565 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
23566
23567         First part of changes to get IKVM.NET running under mono.
23568         
23569         * appdomain.h, appdomain.c: added new function 
23570         mono_domain_try_type_resolve() which will emit TypeResolve events. 
23571         This function will call AppDomain::DoTypeResolve to do the actual work.
23572
23573         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
23574         moved existing code dealing with dynamic tokens to a new function 
23575         called mono_reflection_lookup_dynamic_token (). This function will 
23576         raise TypeResolve events when appropriate. Since reflection.c is not 
23577         part of libmetadata, a new hook function called 
23578         mono_lookup_dynamic_token() is added to class.c which will call this.
23579
23580         * assembly.h assembly.c: make the invoke_load_hook function public,
23581         so it can be called for dynamic assemblies.
23582
23583         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
23584
23585         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
23586         type isn't found.
23587
23588         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
23589         MonoGHashTable, since it contains pointers to objects which the GC 
23590         needs to track.
23591
23592         * assembly.c (search_loaded): remove unused variable.
23593         
23594 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
23595
23596         * object.c: fixed issue exposed by gcc-generated IL programs
23597         that use RVA data for pointers.
23598
23599 2003-01-25  Martin Baulig  <martin@ximian.com>
23600
23601         * threads.c (start_wrapper): Moved the initialization of
23602         `start_func' above the mono_new_thread_init() call to which we
23603         pass it as argument.
23604
23605 2003-01-24  Martin Baulig  <martin@ximian.com>
23606
23607         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
23608         the MonoThread pointer.
23609
23610 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
23611
23612         * icall.c: Rename `PowImpl' to Pow.
23613
23614 2003-01-23  Dick Porter  <dick@ximian.com>
23615
23616         * threads.c (start_wrapper): Create a Thread object if needed, so
23617         the Main() thread can do the class initialisation in a subthread
23618         that has been set up to allow managed code execution.
23619
23620         Pass the thread ID instead of the MonoThread pointer to the thread
23621         start and attach callbacks.  This change is required, because the
23622         jit thread start callback must be called _before_ the Thread
23623         object can be created.
23624         
23625         (mono_thread_init): Removed much object creation code that is no
23626         longer needed.  No managed code is called from here now.
23627
23628         * object.c (mono_runtime_exec_managed_code): Create a subthread
23629         for Main, and call back to the runtime to use it.
23630         Set the exit code when Main exits.
23631
23632         * gc.c: Make sure domain finalisation happens in a subthread.
23633         Re-enable threaded GC, fixing bug 31333 (again).
23634
23635         * environment.c: System.Environment internall calls (so far just
23636         ExitCode is here, the others are still in icall.c)
23637
23638         * appdomain.c (mono_runtime_cleanup): All threads running managed
23639         code should have finished before mono_runtime_cleanup() is
23640         reached, so no need to clean up threads.
23641
23642 2003-01-22  Martin Baulig  <martin@ximian.com>
23643
23644         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
23645         `gpointer func' arguments.      
23646         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
23647         but added `MonoThread *thread' argument.
23648         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
23649
23650         * threads.c (mono_new_thread_init): Added `gpointer func' argument
23651         and pass it to the mono_thread_start_cb callback.
23652         (mono_install_thread_callbacks): New public function to install a
23653         set of callbacks which are set by the debugger.
23654         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
23655
23656 2003-01-22  Martin Baulig  <martin@ximian.com>
23657
23658         * Makefile.am: Install debug-mono-symfile.h.
23659
23660 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
23661
23662         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
23663
23664 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
23665
23666         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
23667         * class.c (mono_ptr_class_get): correctly set access levels of pointers
23668         (mono_array_class_get): correctly set access levels of arrays
23669
23670 2003-01-20      Patrik Torstensson
23671         * image.h (MonoAssemblyName): changed major, minor, build, revision
23672         from signed to unsigned.
23673
23674 2003-01-20  sean kasun <skasun@azstarnet.com>
23675
23676         * reflection.c (load_cattr_value): Now this handles
23677         MONO_TYPE_SZARRAY.  Fixes bug #35629
23678
23679 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
23680
23681         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
23682         integer value
23683
23684 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23685
23686         * decimal.c: fixed bug #26056.
23687
23688 2003-01-17  Martin Baulig  <martin@ximian.com>
23689
23690         * gc.c: Raise an ExecutionEngineException instead of using g_error().
23691
23692 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23693
23694         * exception.[ch]:
23695         (mono_get_exception_type_initialization): new function.
23696
23697         * object.c: throw a TypeInitializationException when an exception is
23698         thrown invoking the class constructor.
23699
23700 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23701
23702         * reflection.c: fixed attribute reading.
23703
23704 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23705
23706         * icall.c:
23707         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
23708         provided, look for the type in the calling assembly and then in
23709         mscorlib; if the assembly name is provided, only try that one.
23710
23711 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
23712
23713         * object.c: register the vtable before there is a chance it's
23714         queried again recursively.
23715
23716 2003-01-13  Duncan Mak  <duncan@ximian.com>
23717
23718         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
23719         gc-internal.h. 
23720         
23721 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
23722
23723         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
23724
23725 2003-01-11  Martin Baulig  <martin@ximian.com>
23726
23727         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
23728         this to 20 for the release.
23729
23730 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
23731
23732         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
23733
23734         * loader.c (mono_method_get_marshal_info): bug fix
23735
23736         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
23737         structures with explicit layout
23738
23739 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
23740
23741         * profiler.c: made the output more readable (and sorted). 
23742         Added caller information for the allocation profiler.
23743
23744 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
23745
23746         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
23747
23748 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23749
23750         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
23751         to get value types.
23752         
23753 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
23754
23755         * object.c, profiler.h, profiler.c, profiler-private.h:
23756         Added object allocation profiler.
23757
23758 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
23759
23760         * reflection.h, reflection.c: handle global methods.
23761         Compress blob entries.
23762
23763 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
23764
23765         * marshal.c: fix compilation.
23766
23767 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
23768
23769         * loader.c (mono_method_get_marshal_info): impl.
23770
23771         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
23772
23773 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23774
23775         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
23776         for reference types.
23777
23778 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
23779
23780         * loader.c: fixed off by one error in loaded parameter names.
23781
23782 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
23783
23784         * marshal.c (mono_marshal_get_icall_wrapper): like
23785         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
23786         instead of a MonoMethod.
23787
23788 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23789
23790         * decimal.c: fixed bug #36537.
23791
23792 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
23793
23794         * marshal.c: throw a missing method exception if a
23795         P/Invoke method is not found.
23796
23797 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
23798
23799         * icall.c: allow a null this for constructors.
23800
23801 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
23802
23803         * icall.c: raise the proper exceptions if the arguments to the
23804         internal Invoke are incorrect.
23805
23806 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
23807
23808         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
23809
23810 2003-01-03  Martin Baulig  <martin@ximian.com>
23811
23812         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
23813
23814 2002-12-31  Martin Baulig  <martin@ximian.com>
23815
23816         * debug-mono-symfile.c: Completely rewrote the type section.
23817         Instead of using individual malloc()ed fields, we use one big
23818         continuous memory area and offsets into this area.
23819         See the comments in the source code for details.
23820
23821 2002-12-30  Martin Baulig  <martin@ximian.com>
23822
23823         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
23824
23825 2002-12-30  Martin Baulig  <martin@ximian.com>
23826
23827         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
23828         line number table in this data blob instead of using an external
23829         pointer.
23830
23831 2002-12-28  Martin Baulig  <martin@ximian.com>
23832
23833         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
23834
23835 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
23836
23837         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
23838         as a boxed return type.
23839
23840 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
23841
23842         * appdomain.c
23843         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
23844         g_build_filename to properly get separators on the filename created.
23845
23846         * object.h: Small change, introduce MonoMarshalByRefObject to
23847         track the layout of that structure in the C# universe as we make
23848         changes there.
23849
23850 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
23851
23852         * object.c: removed assert to allow static fields on interfaces.
23853         * loader.c: a TypeSpec may be used for any type, not just arrays.
23854
23855 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
23856
23857         * class.c, class.h: added mono_class_array_element_size ().
23858         Ignore static methods in interfaces.
23859
23860 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23861
23862         * threads.c: fixed the build under cygwin.
23863
23864 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
23865
23866         * reflection.c: handle nullref constants. Allocate keys for
23867         reflection handles with the GC.
23868
23869 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23870
23871         * threads.c, threads.h: added mono_thread_get_abort_signal()
23872         to get a suitable signal for thread abort.
23873
23874 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
23875
23876         * metadata.c: fix handling of ExportedType table.
23877
23878 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23879
23880         * icall.c: added WriteWindowsDebugString internal call.
23881
23882 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23883
23884         * reflection.h: added fields to match C# implementation.
23885
23886 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23887
23888         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
23889
23890 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
23891
23892         * gc.h, gc-internal.h: Rename header for GC internal calls to
23893         gc-internal.h from gc.h as to not clash with Boehm GC having its
23894         header installed as <gc.h> in outside include paths.
23895         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
23896         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
23897
23898 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23899
23900         * icall.c: assign minor, build and revision in FillName.
23901
23902 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
23903
23904         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
23905         Added support for running code generated by Reflection.Emit.
23906
23907 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23908
23909         * appdomain.c: check for NULL argument in LoadFrom.
23910
23911 2002-12-10  Dick Porter  <dick@ximian.com>
23912
23913         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
23914
23915 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23916
23917         * appdomain.c: fix buglet when building exe file name.  Handle full
23918         assembly name (needed after latest changes to AssemblyName).
23919         * image.c:
23920         (mono_image_close): free some hashtables.
23921
23922 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
23923
23924         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
23925         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
23926         on some systems (redhat 7.3) 
23927
23928 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
23929
23930         * threads.c: delete the critical section of a sync block,
23931         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
23932
23933 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
23934
23935         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
23936
23937 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23938
23939         * appdomain.[ch]: handle the assembly preload event to try loading the
23940         assemblies using the paths we have in the current domain.
23941
23942         * assembly.[ch]: created an assembly preload hook that is called to try
23943         loading the assembly by other means that the ones provided here.
23944
23945         * domain.c: initialize the domain search path.
23946
23947         From now on, assemblies (TODO: except corlib and System) are loaded
23948         according to these rules when using mono_assembly_load ():
23949
23950                 1. It tries to load the assembly from the ApplicationBase
23951                 of the current domain appending .dll and .exe (TODO: have to
23952                 try loading from name/name.dll and name/name.exe).
23953
23954                 2. It tries the search path specified in PrivateBinPath for the
23955                 current domain (if any).
23956
23957                 3. Previous behavior.
23958
23959 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
23960
23961         * icall.c: implemented GetInterfaceMap() related icall.
23962         * domain.c, loader.h: load MethodInfo in mono_defaults.
23963
23964 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
23965
23966         * gc.c: disable the finalizer thread for now, untill all the issues
23967         with it are resolved.
23968
23969 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
23970
23971         * string-icalls.c: handle embedded nulls in string ctor when the
23972         length is specified.
23973
23974 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
23975
23976         * class.c: look for explicit interface implementation in parent
23977         classes, too.
23978
23979 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
23980
23981         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
23982
23983 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
23984
23985         * gc.c: protect handles with a critical section.
23986
23987 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23988
23989         * icall.c:
23990         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
23991         parameters. If no assembly specified, try getting the type from all
23992         the assemblies in the current domain, else, load the assembly and get
23993         the type from it.
23994
23995 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23996
23997         * marshal.c: applied patch from Aleksey Demakov that fixes
23998         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
23999
24000 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24001
24002         * icall.c: fixed get_location.
24003
24004 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
24005
24006         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
24007         declarations to make it work with older gcc. 
24008
24009         * loader.c (mono_get_method): set signature->pinvoke for native calls
24010
24011 2002-11-20  Dick Porter  <dick@ximian.com>
24012
24013         * threads.c (mono_thread_init): Set the main thread's handle
24014
24015 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
24016
24017         * gc.c: allow compilation without GC support. Changed to match the
24018         mono coding style.
24019
24020 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
24021
24022         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
24023
24024 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
24025
24026         * reflection.c: set a public key token on the core assemblies.
24027
24028 2002-11-18  Dick Porter  <dick@ximian.com>
24029
24030         * threads.c: Split out some thread initialisation so that other
24031         files can set the start callback function.
24032
24033         * gc.c: Run finalisers in a separate thread, to avoid stack
24034         overflow.  Fixes bug 31333.
24035
24036         * appdomain.c: Set up GC finalisation thread.
24037
24038         * reflection.c: 
24039         * object.c: 
24040         * domain.c: Use gc.h macros for GC_malloc
24041         
24042 2002-11-15  Dick Porter  <dick@ximian.com>
24043
24044         * threadpool.c: 
24045         * threads.c:
24046         * appdomain.c: Removed mono_runtime_init_with_attach(),
24047         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
24048         merging the extra parameter with the existing function.  Removed
24049         unneeded code in mono_thread_attach().
24050
24051 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
24052
24053         * image.c (mono_image_loaded_by_guid): a method to get loaded
24054         images by guid. 
24055         (load_metadata_ptrs): we store the guid as string.
24056
24057 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
24058
24059         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
24060
24061         * metadata.c (mono_guid_to_string): imported method form Zoltan
24062         Varga (slightly modified)
24063
24064         * assembly.c (mono_assembly_open): load precompiled code
24065
24066         * loader.h (MonoMethod): we store the method token for use in the
24067         aot compiler. 
24068
24069 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24070
24071         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
24072         the hook function called when an assembly is loaded.
24073         
24074         * domain.c: Modified file.
24075         (mono_domain_assembly_load): removed hash table insertion of assemblies.
24076
24077         Fixes bug #33196.
24078
24079 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
24080
24081         * reflection.c: Map PEFileKind to the value expected by the WinNT
24082         image loader. 
24083
24084 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24085
24086         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
24087         Read until the buffer is filled completely.
24088
24089 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24090
24091         * icall.c: implemented MonoType.InternalGetEvent ().
24092
24093 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24094
24095         * appdomain.c: implemented InitAppDomainSetup. Delayed
24096         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
24097         the entry_assembly.
24098
24099         * assembly.c: base_dir is now an absolute path ending with
24100         G_DIR_SEPARATOR.
24101
24102         * icall.c: modified get_location according to the above changes.
24103
24104         * object.c: init AppDomain.SetupInformation for the default domain after
24105         we have the entry assembly.
24106
24107         * domain.c: when unloading a domain, setup = NULL.
24108
24109 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
24110
24111         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
24112
24113 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
24114
24115         * object.h, object.c: introduced mono_object_get_virtual_method ()
24116         to lookup the method invoked on an object when a callvirt is done on
24117         a method.
24118         * icall.c: make MethodInfo::Invoke() always do a virtual call.
24119
24120 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24121
24122         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
24123         current domain when loaded an assembly and failed to load it.
24124
24125         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
24126
24127 2002-10-31  Dick Porter  <dick@ximian.com>
24128
24129         * icall.c: 
24130         * file-io.h: 
24131         * file-io.c: Return the error status in a parameter, as the
24132         GetLastError() value has long since been blown away if we try and
24133         look it up in a subsequent internal call invocation.  Delete the
24134         GetLastError() internal call, because it's useless.
24135
24136 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
24137
24138         * class.[ch]: added cast_class to fix bug 29517
24139
24140 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
24141
24142         * marshal.c: create valid IL code in the filter clause:
24143         the new JIT is less forgiving:-)
24144
24145 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24146
24147         * icall.c: removed get_property internal call.
24148
24149 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
24150
24151         * appdomain.h domain.c: Added an ID to appdomains.
24152         
24153         * threads.c threads.h icall.c: Implement icall
24154         Thread:GetDomainID(), and remove unused icall 
24155         CurrentThreadDomain_internal.
24156
24157 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24158
24159         * icall.c: Don't recurse through the base types in GetConstructor.
24160         Fixes bug #32063. 
24161
24162 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
24163
24164         * mempool.h, mempool.c: added mono_mempool_empty() and
24165         mono_mempool_stats().
24166
24167 2002-10-23  Dick Porter  <dick@ximian.com>
24168
24169         * file-io.c: 
24170         * file-io.h: 
24171         * icall.c: Added MonoIO.GetFileType internal call
24172
24173 2002-10-17  Dick Porter  <dick@ximian.com>
24174
24175         * appdomain.c (mono_runtime_cleanup): Don't signal the async
24176         delegate semaphore before waiting for all threads to finish,
24177         because new threads can also call async delegates.  Fixes bug
24178         32004.
24179
24180         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
24181         of 3 seconds, in case another async job is queued.  (This part is
24182         needed because the bug fix reintroduced the 3s exit lag.)  This
24183         makes the mono_runtime_shutdown flag superfluous.
24184
24185 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
24186
24187         * reflection.c: include ehader size in method section headers.
24188         Really check for suplicated modules entries.
24189
24190 2002-10-17  Martin Baulig  <martin@gnome.org>
24191
24192         * debug-mono-symfile.c: Added back support for locals.
24193
24194 2002-10-14  Martin Baulig  <martin@gnome.org>
24195
24196         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
24197         MONO_TYPE_VOID.
24198
24199 2002-10-14  Martin Baulig  <martin@gnome.org>
24200
24201         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
24202         mono_class_get() instead of looking in the class cache. 
24203
24204 2002-10-13  Martin Baulig  <martin@gnome.org>
24205
24206         * debug-mono-symfile.c: Set version number to 28, include the
24207         signature in method names.
24208
24209 2002-10-13  Martin Baulig  <martin@gnome.org>
24210
24211         * debug-mono-symfile.h: Set version number to 27.
24212
24213 2002-10-11  Martin Baulig  <martin@gnome.org>
24214
24215         * gc.c: Don't register/unregister NULL pointers as disappearing links.
24216
24217 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24218
24219         * metadata.c, metadata.h: added helper function to allocate signatures.
24220
24221 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24222
24223         * icall.c: added internal call to get the location of machine.config.
24224
24225 2002-10-08  Martin Baulig  <martin@gnome.org>
24226
24227         * debug-mono-symfile.c: Ignore classes with a pending init for the
24228         moment.
24229
24230 2002-10-03  Dick Porter  <dick@ximian.com>
24231
24232         * threads.c: Freebsd pthread_t is a pointer
24233
24234 2002-10-03  Dick Porter  <dick@ximian.com>
24235
24236         * socket-io.c: Implemented GetHostName_internal
24237
24238 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24239
24240         * mono-config.c:
24241         (mono_config_parse_file): don't leak the text.
24242
24243 2002-10-02  Martin Baulig  <martin@gnome.org>
24244
24245         * debug-mono-symfile.c: Added support for methods.
24246
24247 2002-10-01  Martin Baulig  <martin@gnome.org>
24248
24249         * debug-mono-symfile.c: Don't emit methods and line numbers for
24250         the dynamic symbol file, just write the type table.  We can easily
24251         have an external helper program which creates a symbol file for an
24252         IL file.        
24253
24254 2002-10-01  Dick Porter  <dick@ximian.com>
24255
24256         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
24257         Only add the handle to the cleanup array when we're about to
24258         launch the thread.  Bug 31425 deadlocked when the test was run on
24259         mono under w32.
24260
24261 2002-10-01  Martin Baulig  <martin@gnome.org>
24262
24263         * debug-mono-symfile.c: Added support for properties.
24264
24265 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24266
24267         * reflection.c: unaligned store fix from Mark Crichton
24268         <crichton@gimp.org>.
24269
24270 2002-09-27  Martin Baulig  <martin@gnome.org>
24271
24272         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
24273         New interncall.
24274
24275 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
24276
24277         * assembly.h, assembly.c: use a sane API to hook into the assembly
24278         loading process instead of a useless special-purpouse hack
24279         (ngen needs a hook, too, for example).
24280
24281 2002-09-27  Dick Porter  <dick@ximian.com>
24282
24283         * threads.c (mono_thread_init): Call GetCurrentProcess() so
24284         io-layer can set up some process handle info.  Not needed on w32,
24285         but doesn't hurt either.
24286
24287         * process.c: Pass the program name in the second parameter to
24288         CreateProcess, so the path is searched.  Include the working
24289         directory. Implemented process name, process enumeration, and some
24290         process detail internal calls.
24291         
24292         * icall.c: Added internal calls for process lookup, and some
24293         process details
24294
24295 2002-09-26  Martin Baulig  <martin@gnome.org>
24296
24297         * assembly.c (mono_install_open_assembly_hook): New global
24298         function to install a function to be invoked each time a new
24299         assembly is loaded.
24300         (mono_assembly_open): Run this callback function if set.
24301
24302         * debug-mono-symfile.c: Put back line numbers for the dynamic
24303         symbol file and also record the .il file as source file.  This
24304         allows us to install the temporary symbol file as `file.dbg' just
24305         like a compiler-generated one.
24306
24307 2002-09-26  Nick Zigarovich <nick@chemlab.org>
24308
24309         * Corrected typo in gc.c (BOHEM vs BOEHM).
24310
24311 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24312
24313         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
24314         GetProperties. Also avoid calling g_slist_length in GetProperties and
24315         GetMethods.
24316
24317 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24318
24319         * reflection.c: avoid unaligned stores (bug spotted by
24320         Mark Crichton  <crichton@gimp.org>).
24321
24322 2002-09-25  Martin Baulig  <martin@gnome.org>
24323
24324         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
24325         instead of guint64 for addresses and added prologue/epilogue info.
24326
24327 2002-09-25  Martin Baulig  <martin@gnome.org>
24328
24329         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
24330         store line number info.  For the dynamic symbol file, we only need
24331         to provide the JIT generated dynamic line number info for the dynamic
24332         symbol file.
24333
24334 2002-09-25  Martin Baulig  <martin@gnome.org>
24335
24336         * debug-mono-symfile.h: Incremented version number.
24337
24338 2002-09-24  Martin Baulig  <martin@gnome.org>
24339
24340         * class.c (mono_debugger_class_init_func): New global function
24341         pointer variable.
24342         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
24343         call it.
24344
24345         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
24346         function.  This is called via the mono_debugger_class_init_func
24347         hook to add all types to the dynamic type table.
24348         (ves_icall_MonoDebugger_GetType): New interncall to get a class
24349         from its metadata token.
24350
24351         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
24352         New interncall for the debugger.
24353
24354 2002-09-24  Nick Drochak <ndrochak@gol.com>
24355
24356         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
24357         before using it in case it is null.
24358         
24359 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
24360
24361         * metadata.c: allow custom modifiers in local var signatures
24362         (bug spotted by Zoltan Varga).
24363
24364 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
24365
24366         * class.c: deal with the <Module> class that may have a NULL vtable.
24367         Eliminate warnings.
24368
24369 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24370
24371         * image.c, image.h: more strong name helpers.
24372         * monosn.c: more work: convert pem keys to cryptoapi format.
24373
24374 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24375
24376         * string-icalls.c: speedup IndexOf.
24377
24378 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24379
24380         * icall.c: updates from Zoltan.2.Varga@nokia.com.
24381
24382 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
24383
24384         * icall.c: cleanup: use mono_object_domain ().
24385
24386 2002-09-23  Martin Baulig  <martin@gnome.org>
24387
24388         * debug-mono-symfile.c: Improved type support.
24389
24390 2002-09-22  Martin Baulig  <martin@gnome.org>
24391
24392         * debug-mono-symfile.c: Added support for reference types and strings.
24393
24394 2002-09-22  Martin Baulig  <martin@gnome.org>
24395
24396         * debug-mono-symfile.c: Started to work on the type table.
24397
24398 2002-09-21  Martin Baulig  <martin@gnome.org>
24399
24400         * debug-mono-symfile.c: Largely reworked the symbol table format.
24401         The symbol table is now incrementally updated each time a new
24402         method is added.  We're now also using our own magic and version
24403         so that you don't need to recompile all your classes if the
24404         dynamic table changes.
24405         (mono_debug_update_mono_symbol_file): Removed.
24406         (mono_debug_symfile_add_method): New function to add a method.
24407
24408 2002-09-21  Martin Baulig  <martin@gnome.org>
24409
24410         * icall.c
24411         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
24412         New interncall.
24413
24414         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
24415         New interncall to get a method from its metadata token.
24416
24417 2002-09-21  Martin Baulig  <martin@gnome.org>
24418
24419         * debug-mono-symfile.c: Create type table.
24420
24421 2002-09-20  Martin Baulig  <martin@gnome.org>
24422
24423         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
24424
24425 2002-09-20  Martin Baulig  <martin@gnome.org>
24426
24427         * debug-mono-symfile.c: Provide information about params and locals.
24428
24429 2002-09-20  Martin Baulig  <martin@gnome.org>
24430
24431         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
24432         New interncall.
24433
24434         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
24435         interncall to get a method from its metadata token.
24436
24437 2002-09-20  Martin Baulig  <martin@gnome.org>
24438
24439         * debug-mono-symfile.c: Added a few checks for method->header
24440         being non-NULL.  This should never happen, but for the moment
24441         let's use a g_warning() rather than a g_assert().
24442
24443 2002-09-19  Mark Crichton  <crichton@gimp.org>
24444
24445         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
24446         even if support for it isn't present.  Added an #ifdef to fix this.
24447
24448         * socket-io.c: Added checks back for Solaris support.
24449
24450 2002-09-19  Martin Baulig  <martin@gnome.org>
24451
24452         * debug-mono-symfile.c (read_string, write_string): Reflect latest
24453         changes in the symbol file format.
24454
24455 2002-09-18  Martin Baulig  <martin@gnome.org>
24456
24457         * debug-mono-symfile.c: Set version number to 21.
24458
24459 2002-09-18  Dick Porter  <dick@ximian.com>
24460
24461         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
24462         on netbsd.  Fixes bug 30051.
24463
24464 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24465
24466         * reflection.c:
24467         (set_version_from_string): little fix.
24468
24469 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24470
24471         * monosn.c, Makefile.am: added strong name utility.
24472         * reflection.h, reflection.c: implemented delayed signing,
24473         locale, version and hash id assembly attributes.
24474
24475 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
24476
24477         * loader.c, metadata.c: load param attributes in signatures.
24478
24479 2002-09-16  Martin Baulig  <martin@gnome.org>
24480
24481         * debug-mono-symfile.c: Added string table with all method names.
24482
24483 2002-09-14  Martin Baulig  <martin@gnome.org>
24484
24485         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
24486         fast method lookup.
24487
24488 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24489
24490         * reflection.c: record the public key token of referenced assemblies.
24491
24492 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
24493
24494         * image.c, image.h: added functions to get the strong name and the
24495         public key of an assembly.
24496         * pedump.c: use them.
24497
24498 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
24499
24500         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
24501
24502 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
24503
24504         * marshal.c (mono_marshal_get_managed_wrapper): Added
24505         MONO_TYPE_BOOLEAN 
24506
24507 2002-09-11  Martin Baulig  <martin@gnome.org>
24508
24509         * gc.c: Call GC_unregister_disappearing_link() on all links when
24510         finalizing them, this is necessary to aviod a crash in boehm's
24511         finalize handler.
24512
24513 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24514
24515         * gc.c: handle GetTarget for finalized objects spotted and fixed by
24516         nick@chemlab.org.
24517
24518 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
24519
24520         * icall.c: implemented MonoType::Module.
24521         * reflection.c, reflection.h: mono_module_get_object () from
24522         Tomi Pakarinen <tomi.pakarinen@welho.com>.
24523
24524 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
24525
24526         * icall.c: ignore overridden methods in GetMethods ().
24527         Fix for FieldInfo::SetValue().
24528         * object.c: handle float/double in runtime invoke.
24529
24530 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
24531
24532         * object.c: allow a constructor to be called again on an object.
24533
24534 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24535
24536         * class.h, class.c: move field layout code to it's own function and
24537         export it. Get an interface id earlier. Move fields in MonoClass
24538         so they are more cache friendly and align the bitfields.
24539         * loader.c: temporary handle get_param_names() for a runtime method.
24540         * reflection.c, reflection.h: more code to handle runtime creation of
24541         types.
24542
24543 2002-09-09  Martin Baulig  <martin@gnome.org>
24544
24545         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
24546         signature with the pinvoke field being set for the actual call.
24547
24548 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
24549
24550         * icall.c: removed some unused icalls. Start of map of glib charsets
24551         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
24552
24553 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24554
24555         * debug-helpers.c: break infinite loop (found and fixed by
24556         Holger Arnold <harnold@gmx.de>).
24557
24558 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
24559
24560         * icall.c: target may be null in create_delegate.
24561
24562 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
24563
24564         * marshal.c: handle a boolean return type.
24565
24566 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
24567
24568         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
24569
24570 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24571
24572         * gc.c: fix weakreferences.
24573
24574 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
24575
24576         * icall.c: added icall to get default codepage.
24577
24578 2002-09-03  Dick Porter  <dick@ximian.com>
24579
24580         * threads.h: 
24581         * threads.c: Use MonoThread instead of MonoObject where
24582         apropriate.
24583
24584         Store running thread objects in a hash table, so that we have all
24585         the info to hand when waiting for them to finish
24586         (means we don't need OpenThread() any more, so mingw builds should
24587         be fully functional again.)
24588
24589         * verify.c:
24590         * object.h: Added thread ID to MonoThread
24591
24592 2002-09-03  Martin Baulig  <martin@gnome.org>
24593
24594         * icall.c (System.Reflection.Assembly::get_location): New interncall.
24595
24596 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24597
24598         * icall.c: fixed leak in get_temp_path. Thanks lupus.
24599
24600 2002-09-03  Martin Baulig  <martin@gnome.org>
24601
24602         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
24603         argument to store the end address of the disassembled instruction.
24604
24605         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
24606         here from debug-symfile.h.
24607         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
24608         JIT into this struct.
24609         (MonoSymbolFile): Added `char *image_file' field.
24610         (MonoDebugGetMethodFunc): Removed.
24611         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
24612         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
24613         (mono_debug_find_method): New method.
24614
24615         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
24616         create a full symbol file.
24617         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
24618         and static symbol files.
24619         (mono_debug_find_method): The symbol file keeps an internal method hash,
24620         call this to get a MonoDebugMethodInfo from a MonoMethod.
24621
24622         * debug-symfile.[ch]: Removed.
24623
24624 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
24625
24626         * image.c (do_mono_image_open): Remove linker version check.
24627
24628 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
24629
24630         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
24631         wrappers for instance methods.
24632         
24633 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24634
24635         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
24636
24637 2002-08-28  Dick Porter  <dick@ximian.com>
24638
24639         * Makefile.am: Export HOST_CC for w32 builds
24640
24641 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
24642
24643         * file-io.c process.c: MonoString are null terminated, no
24644         need for mono_string_to_utf16() anymore.
24645
24646 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24647
24648         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
24649
24650 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
24651
24652         * icall.c, reflection.h: speedup System.MonoType.
24653
24654 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
24655
24656         * reflection.c: allow null as the value of a string argument in
24657         custom attributes constructors.
24658
24659 2002-08-27  Martin Baulig  <martin@gnome.org>
24660
24661         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
24662         `trampoline_address' field.
24663
24664 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
24665
24666         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
24667         check (fixes bug #29486) 
24668
24669 2002-08-27  Martin Baulig  <martin@gnome.org>
24670
24671         * debug-mono-symfile.c: Changed the file format in a way that allows us
24672         open it read-only and to use a specially malloced area for all the
24673         dynamic data.  We can now also generate a symbol file on-the-fly if we're
24674         debugging IL code and there is no MCS generated symbol file for it.
24675
24676 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
24677
24678         * object.c: added a define for a good string and array
24679         creation speedup (not enabled by default because we need to deal with
24680         the synch stuff).
24681
24682 2002-08-26  Martin Baulig  <martin@gnome.org>
24683
24684         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
24685         function to create a dynamic symbol file.  This is used by the
24686         debugger to create a symbol file for IL code on-the-fly.
24687
24688 2002-08-26  Martin Baulig  <martin@gnome.org>
24689
24690         * loader.c (mono_lookup_pinvoke_call): Include the error message
24691         from g_module_error() in the error message.
24692
24693 2002-08-24  Martin Baulig  <martin@gnome.org>
24694
24695         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
24696         function to update the symbol file.  The symbol file is mmap()ed
24697         writable, but private.  This allows us to install the symbol file
24698         together with the assembly.
24699
24700 2002-08-24  Martin Baulig  <martin@gnome.org>
24701
24702         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
24703         but they can read the new symbol file format which mcs is now creating.
24704
24705         * debug-symfile.c (mono_debug_find_source_location): Moved to
24706         debug-mono-symfile.c; this is now operating on the new symbol file.
24707
24708 2002-08-23  Martin Baulig  <martin@gnome.org>
24709
24710         * debug-helpers.c (mono_method_desc_from_method): New function to get
24711         a MonoMethodDesc from a MonoMethod.
24712
24713 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
24714
24715         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
24716         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
24717
24718 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
24719
24720         * string-icalls.[ch]: make helper methods static.
24721
24722 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24723
24724         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
24725         types to it and to SetValueInternal.
24726
24727         * object.c: Moved handle_enum label to its proper place. This was the
24728         f... bug! ;-)
24729
24730         This time i compiled mcs and gtk-sharp and they both work.
24731
24732 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24733
24734         * icall.c: reverted partially my previous patch until 
24735         object.c:set_value handles enums correcly.
24736
24737 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24738
24739         * icall.c:
24740         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
24741         (ves_icall_System_Environment_get_MachineName): removed warning when
24742         compiling under cygwin.
24743
24744 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
24745
24746         * object.c: fixed field_get_value() for reference types.
24747
24748 2002-08-22  Dick Porter  <dick@ximian.com>
24749
24750         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
24751         Don't free a buffer while it's still needed.  Patch from Jonathan
24752         Liger <Jonathan.liger@wanadoo.fr>
24753
24754 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
24755
24756         * icall.c (ves_icall_System_Environment_get_Platform): Add new
24757         internal call.
24758
24759 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
24760
24761         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
24762         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
24763
24764         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
24765         we call unmanaged code which throws exceptions.
24766
24767 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24768
24769         * appdomain.h: added per-domain entry_assembly.
24770         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
24771         arguments.
24772         * icall.c: Assembly::GetEntryAssembly icall.
24773         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
24774         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
24775
24776 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
24777
24778         * appdomain.h, gc.c: added mono_domain_finalize ().
24779
24780 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24781
24782         * object.c:
24783         (mono_print_unhandled_exception): changed g_warning by g_printerr
24784         because g_log has a 1024 characters limit (yeah, i got a big stack
24785         trace). Don't print exception name, that should be in ToString 
24786         returned string.
24787
24788 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24789
24790         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
24791         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
24792
24793 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24794
24795         * object.c:
24796         (mono_print_unhandled_exception): after previous commit, i realized
24797         that MS calls ToString on the exception. I changed this function to
24798         do that. This way we get stack_trace for free.
24799
24800 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24801
24802         * object.c:
24803         (mono_print_unhandled_exception): invoke Message property instead of
24804         getting 'message' field from Exception. Don't allocate memory for
24805         'trace' and 'message' if not needed.
24806
24807 2002-08-18  Dick Porter  <dick@ximian.com>
24808
24809         * unicode.c: Fix asserts to match Encoder.cs checks
24810
24811 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
24812
24813         * marshal.c: fix unaligned store issue and a few wrong
24814         opcode argument types.
24815
24816 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24817
24818         * icall.c: added GetUninitializedObjectInternal internal call.
24819
24820 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
24821
24822         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
24823         to the right domain.
24824
24825 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
24826
24827         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
24828
24829         * class.c (class_compute_field_layout): set blittable to false for Strings
24830
24831         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
24832
24833 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
24834
24835         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
24836         first chunk of code to create types at runtime. Code to
24837         handle ReflectedType/DeclaringType. Make reflection handles
24838         domain specific.
24839
24840 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
24841
24842         * class.c: set correct name in arrays.
24843
24844 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
24845
24846         * appdomain.c (mono_domain_transfer_object): make it work with
24847         valuetypes. bug fixes.
24848
24849 2002-08-12  Dick Porter  <dick@ximian.com>
24850
24851         * object.h: Rename some parameters to avoid c++ keywords (Patch
24852         from Joseph Wenninger <kde@jowenn.at>)
24853
24854 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
24855
24856         * icall.c: added icall to implement Assembly.GetFile*.
24857
24858 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
24859
24860         * reflection.h, reflection.c: code to embed managed resources.
24861
24862 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
24863
24864         * class.c: move all the type size stuff into
24865         class_compute_field_layout().
24866
24867 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
24868
24869         * class.c: ensure enums have always the correct instance size.
24870         * unicode.c: remove wrong assert.
24871
24872 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
24873
24874         * assembly.c: fix mem corruption issue.
24875         * image.h, image.c: added mono_image_get_resource () to access
24876         managed resources.
24877         * icall.c: implemented Assembly.EntryPoint property and some
24878         Managed Resources related internalcalls.
24879
24880
24881 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
24882
24883         * image.c, image.h: impemented mono_image_get_entry_point ().
24884         * appdomain.c: use mono_image_get_entry_point.
24885
24886 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
24887
24888         * reflection.c: support the object type argument when loading
24889         custom attributes.
24890
24891 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
24892
24893         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
24894         String as return type.
24895
24896 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
24897
24898         * reflection.c: fix encoding of named args for custom attrs to match
24899         the ms implementation. Read them back when instantiating custom
24900         attributes.
24901
24902 2002-08-02  Radek Doulik  <rodo@ximian.com>
24903
24904         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
24905         by Dietmar as quick fix
24906         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
24907         16 as stack size, used on more places as quick fix before Dietmar
24908         will fix it properly
24909
24910 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
24911
24912         * object.h, object.c: added accessors for fields and properties.
24913
24914 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
24915
24916         * class.c, class.h: made mono_class_get_field_from_name ()
24917         loop on parent types.
24918         Added mono_class_get_property_from_name ().
24919
24920 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
24921
24922         * class.c, class.h: move the code to setup the type vtable in its own
24923         function so that it can be reused also for types created at runtime.
24924         Eliminate the "class" identifier from the header file.
24925         * reflection.c: setup the vtable for enums so that we can create
24926         objects for use in SetConstant ().
24927
24928 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
24929
24930         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
24931         instead of the delegate itself as this pointer (bug #28383)
24932
24933 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
24934
24935         * marshal.c (mono_marshal_get_managed_wrapper): added return type
24936         conversions.
24937
24938 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
24939
24940         * loader.c: don't set the pinvoke bit on icalls.
24941
24942 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
24943
24944         * debug-helpers.c (mono_method_full_name): only print a number to
24945         indicate wrapper type (so that the output is more readable in traces).
24946
24947 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
24948
24949         * class.c (mono_class_init): include method override patch from Paolo
24950
24951 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
24952
24953         * icall.c: fixed GetTypeCode().
24954
24955 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
24956
24957         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
24958         use real delegate invoke function to make it work with multicast
24959         delegates (fix bug# 28291).
24960
24961 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
24962
24963         * object.c: load constant strings.
24964
24965 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
24966
24967         * reflection.c: no magic numbers.
24968         * tabledefs.h: security action enum.
24969
24970 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
24971
24972         * assembly.c: fix possible memory corruption.
24973
24974 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
24975
24976         * reflection.h, reflection.c: added support for linking resources.
24977         * verify.c: check we have an updated corlib.
24978
24979 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
24980
24981         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
24982         string arrays.
24983         (mono_marshal_string_array): null terminate unmanaged string arrays.
24984         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
24985
24986 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
24987
24988         * icall.c: Type.GetType () can now return also types from the
24989         calling assembly.
24990
24991 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
24992
24993         * loader.h, loader.c: stack walking support.
24994         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
24995         GetCallingAssembly.
24996
24997 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
24998
24999         * marshal.c: added optimisations for blittable types 
25000
25001         * class.c (mono_array_class_get): do not set blittable attribute on arrays
25002         (mono_class_setup_mono_type): set blittable attribute for single
25003         and double.
25004
25005         * marshal.c (mono_string_utf8_to_builder): impl.
25006         (mono_string_builder_to_utf8): impl.
25007         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
25008
25009 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
25010
25011         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
25012         (mono_marshal_get_managed_wrapper): impl. byref types
25013
25014 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25015
25016         * icall.c:
25017         (search_method): don't display debug message. 
25018
25019 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25020
25021         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
25022
25023 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
25024
25025         * appdomain.c: set the missing filename when throwing exception.
25026
25027 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
25028
25029         * metadata.c (mono_type_size): code cleanup
25030         (mono_type_stack_size): removed some test code
25031
25032 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
25033
25034         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
25035         mono_get_exception_file_not_found now.
25036
25037         * exception.c (mono_exception_from_name_two_strings): New version
25038         that will call a constructor with two string arguments. 
25039         (mono_get_exception_file_not_found): New helper routine, used to
25040         report file-not-found errors.
25041
25042 2002-07-20  Dick Porter  <dick@ximian.com>
25043
25044         * process.h:
25045         * process.c: Pass file handles to CreateProcess
25046         
25047         * icall.c:
25048         * file-io.h:
25049         * file-io.c: Implemented CreatePipe
25050
25051 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25052
25053         * metadata.c (mono_get_param_info): set alignment for value types
25054
25055 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25056
25057         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
25058         Constify mono_domain_assembly_open().
25059         * loader.c: handle null namespace in icalls.
25060
25061 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
25062
25063         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
25064         (emit_str_to_ptr_conv): marshal object as structs
25065
25066         * metadata.c (mono_type_to_unmanaged): marshal object as structs
25067
25068         * marshal.c (mono_marshal_get_runtime_invoke): support value types
25069
25070 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
25071
25072         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
25073         (mono_marshal_get_native_wrapper): we an now return value types
25074
25075 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25076
25077         * verify.c: more checks implemented.
25078
25079 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
25080
25081         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
25082         (fix bug #27695)
25083         (mono_marshal_get_native_wrapper): allow byref arguments
25084         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
25085         impl. PtrToStringXXX methods
25086         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
25087         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
25088         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
25089         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
25090         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
25091
25092 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25093
25094         * reflection.c: fix buglet in parsing an assembly name.
25095
25096 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25097
25098         * marshal.c (emit_ptr_to_str_conv): first impl.
25099
25100 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25101
25102         * object.c, class.h: cache the vtable in the class as suggested by
25103         vargaz@freemail.hu (Zoltan Varga).
25104
25105 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25106
25107         * class.h, loader.c: added mono_field_from_token().
25108         * verify.c: first cut of type checking code.
25109
25110 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
25111
25112         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
25113
25114 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
25115
25116         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
25117         (fix bug #27782)
25118         (mono_marshal_get_remoting_invoke): impl.
25119         (mono_delegate_begin_invoke): impl.
25120         (mono_mb_emit_save_args): impl.
25121         (mono_delegate_end_invoke): impl.
25122         (mono_marshal_get_delegate_begin_invoke):
25123         (mono_marshal_get_delegate_end_invoke):
25124         (mono_marshal_get_delegate_invoke): generate a special name for
25125         those methods (including the signature) and associate them whith
25126         the delegate class. 
25127
25128 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
25129
25130         * reflection.[ch]: 
25131         (mono_reflection_type_from_name): now it has a MonoImage parameter
25132         which is used as the default image to search the type in. If the image
25133         is NULL or getting the type from it fails, it defaults to corlib.
25134
25135         * icall.c: changed 1 call to mono_reflection_type_from_name to match
25136         new parameter.
25137
25138 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25139
25140         * reflection.c: update the parameter table index.
25141
25142 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25143
25144         * domain.c: don't include the mark byte in the string hash.
25145
25146 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25147
25148         * icall.cs: icall for Type.GetTypeCode ().
25149         * verify: a couple of fixes and disabled local initialization checks.
25150
25151 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
25152
25153         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
25154
25155         * debug-helpers.c (mono_method_full_name): print the type of the
25156         runtime wrapper
25157
25158         * metadata.c (mono_signature_hash): a hash function for signatures
25159         (mono_signature_hash): better hash algorithm
25160
25161         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
25162
25163         * debug-helpers.c (mono_method_full_name): this can now generate
25164         method names with signatures
25165
25166         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
25167         method dont have this pointers.
25168
25169 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
25170
25171         * reflection.c: fixup typebuilder tokens.
25172         * image.c: fix buglet.
25173         * marshal.h: remove whitespace.
25174         * metadata.h, metadata.c: reinstate code that was removed.
25175         * verify.c: handle catch directives and fix another couple of bugs.
25176
25177 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
25178
25179         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
25180         (mono_marshal_get_native_wrapper): make it comp. with the old code
25181         (mono_marshal_get_native_wrapper): support boolean
25182         (mono_marshal_get_managed_wrapper): support more types
25183
25184 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
25185
25186         * class.c (class_compute_field_layout): compute class->blittable attribute.
25187
25188 2002-07-09  Dick Porter  <dick@ximian.com>
25189
25190         * threads.c: Make the thread cleaning up cope with threads that
25191         call ExitThread()
25192
25193 2002-07-08  Radek Doulik  <rodo@ximian.com>
25194
25195         * reflection.c (method_encode_code): use non-translated values to
25196         compute finally_start, this fixes exception handling on ppc, yay!
25197
25198         * decimal.h (struct signscale): fix endianess
25199
25200 2002-07-07  Radek Doulik  <rodo@ximian.com>
25201
25202         * reflection.c: swap box_val and not val
25203
25204 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25205
25206         * reflection.c, reflection.h: handle full assembly info in type name.
25207         Handle Type arguments when loading custom attributes.
25208         * icall.c: updated to use new mono_reflection_type_from_name () method.
25209
25210 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25211
25212         * loader.c:
25213         (method_from_memberref): also print assembly name when method not found.
25214
25215 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25216
25217         * icall.c:
25218         (ves_icall_TypeGetProperties): fixed bug #27473. 
25219
25220 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25221
25222         * reflection.c: display image name and token when cannot find the
25223         .ctor for an attribute.
25224
25225 2002-07-05  Martin Baulig  <martin@gnome.org>
25226
25227         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25228
25229 2002-07-04  Dick Porter  <dick@ximian.com>
25230
25231         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
25232         compile on mingw.  This will cause mingw builds to not wait for
25233         subthreads to terminate after the main thread does.  I've lodged a
25234         bug with the mingw developers for them to wrap OpenThread().
25235
25236 2002-07-03  Dick Porter  <dick@ximian.com>
25237
25238         * threads.c: Store thread IDs instead of handles, because
25239         GetCurrentThread() returns a pseudohandle and therefore stores
25240         useless values.  mono_thread_cleanup() continues checking the
25241         array of threads until it is empty, to cope with subthreads
25242         spawning new threads after the main thread has finished.
25243
25244         * profiler.h:
25245         * profiler.c:
25246         * profiler-private.h: Pass the thread ID to thread profiler
25247         functions, instead of a handle
25248
25249 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25250
25251         * verify.c: fixes to make it more usable.
25252         * pedump.c: added --verify code to verify IL code in an assembly.
25253
25254 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25255
25256         * reflection.c: turn errors into warnings to allow compiling corlib.
25257
25258 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
25259
25260         * reflection.c: add special cases to compile corlib.
25261
25262 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25263
25264         * reflection.c: handle properties with only a set method.
25265
25266 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25267
25268         * opcodes.h: add enum with opcodes in opval order.
25269
25270 2002-07-01  Dick Porter  <dick@ximian.com>
25271         
25272         * object.h:
25273         * object.c (mono_runtime_run_main): Removed unneeded argument
25274
25275 2002-06-28  Martin Baulig  <martin@gnome.org>
25276
25277         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
25278
25279 2002-06-27  Dick Porter  <dick@ximian.com>
25280
25281         * threads.c: Store the handle in both the parent thread and in the
25282         subthread, to minimise the time between starting a new thread and
25283         storing its ID.
25284
25285 2002-06-26  Dick Porter  <dick@ximian.com>
25286
25287         * appdomain.c (mono_runtime_cleanup): Close the socket library
25288         after all the threads have finished, not before
25289
25290 2002-06-26  Martin Baulig  <martin@gnome.org>
25291
25292         * debug-symfile.c (mono_debug_find_source_location): Added
25293         `guint32 *line_number' argument.  If it's not NULL, store the line number
25294         there and return the file name without the line number.
25295
25296 2002-06-25  Dick Porter  <dick@ximian.com>
25297
25298         * icall.c:
25299         * process.h:
25300         * process.c: Process forking and other support functions
25301
25302 2002-06-25  Dick Porter  <dick@ximian.com>
25303
25304         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
25305         things dont happen when the image is closed.
25306         (mono_image_lookup_resource): Walk the resource section looking
25307         for a particular entry
25308
25309         * cil-coff.h: PE resource section decoding
25310
25311 2002-06-25  Dick Porter  <dick@ximian.com>
25312         
25313         * assembly.h:
25314         * assembly.c: 
25315         (mono_assembly_foreach): Accessor functions to walk the list of
25316         loaded assemblies
25317         (mono_assembly_set_main):
25318         (mono_assembly_get_main): Process methods need to know which
25319         assembly is the "main" one
25320
25321         * object.c (mono_runtime_run_main): Record the main assembly
25322
25323         * debug-helpers.c: Fix typo
25324
25325 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
25326
25327         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
25328         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
25329
25330 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25331
25332         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
25333
25334 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
25335
25336         * image.c (do_mono_image_open): Initialize reference count,
25337         otherwise we leak the MonoImage.
25338
25339 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25340
25341         * reflection.c: small tweak to handle self-hosting.
25342
25343 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25344
25345         * reflection.c: fix type name parse code.
25346
25347 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25348
25349         * reflection.c: break out of the loop.
25350         * image.c: special case corlib.
25351
25352 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25353
25354         * reflection.c: add all the custom attrs at the end to ensure the
25355         ctors have been properly initialized when the attributes are defined
25356         in the current assembly.
25357
25358 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25359
25360         * reflection.c: handle correctly multiple-nested types.
25361
25362 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
25363
25364         * row-indexes.h: fix typos.
25365         * reflection.c: adjust for typos and fix method_def_or_ref
25366         encoding in MethodImpl table.
25367
25368 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25369
25370         * reflection.c: fix entry point patching (thanks Serge!).
25371
25372 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
25373
25374         * verify.c: add check for System.Exception
25375
25376 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
25377
25378         * image.c, class.c: minifix for code just c&p'ed.
25379         * reflection.c: warning fix.
25380         * object.h, loader.h, domain.c: load also StringBuilder.
25381
25382 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
25383
25384         * marshal.h, marshal.c: some support code to handle complex marshaling.
25385
25386 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25387
25388         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
25389         Better signatures with vtable error dump.
25390
25391 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
25392
25393         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
25394
25395 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
25396
25397         * icall.c (ves_icall_Type_GetField): impl.
25398
25399 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25400
25401         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
25402         to retrieve a marshal description blob for a field or param.
25403
25404 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25405
25406         * reflection.h, reflection.c: change order of nested type emission
25407         to avoid table corruption. The NestedTypes table is sorted.
25408         * icall.c: change order of GetConstructor results to workaround mcs bug.
25409
25410 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25411
25412         * reflection.h, reflection.c: handle field and param marshal
25413         information.
25414
25415 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25416
25417         * icall.c, marshal.c marshal.h: more Marshal class implementation.
25418
25419 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25420
25421         * reflection.c: fix call convention.
25422
25423 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25424
25425         * reflection.h, reflection.c: mono_image_get_memberref_token()
25426         takes a type instead of a class, now. Added
25427         mono_image_get_array_token() to create tokens for the special
25428         multi-dim array methods.
25429
25430 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25431
25432         * assembly.c: handle modules (no assembly table). Split
25433         loading references in its own function.
25434         * class.c: handle moduleref resolution scope.
25435         * image.c, image.h: cache module name in image.
25436
25437 2002-06-07  Martin Baulig  <martin@gnome.org>
25438
25439         * reflection.c (mono_image_get_type_info): Only add a class layout entry
25440         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
25441
25442 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25443
25444         * icall.c: more signature fixes that used uint instead of int.
25445
25446 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25447
25448         * reflection.c: fixed signature of field refs.
25449
25450 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25451
25452         * class.c, reflection.c: handle typerefs of nested types
25453         (both on read and when writing files).
25454
25455 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
25456
25457         * icall.c: fix method signatures that tried to workaround the previous
25458         typo, d'oh!
25459
25460 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
25461
25462         * debug-helpers.c: fix typo.
25463
25464 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
25465
25466         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
25467         rewrote the PE/COFF writing code (our programs are understood by the
25468         ms runtime, now).
25469
25470 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
25471
25472         * gc.c, gc.h, icall.c: weakreference support.
25473
25474 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
25475
25476         * Makefile.am, mono-config.c: use $(sysconfdir).
25477
25478 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
25479
25480         * icall.c: changed default precision of Double.ToString() to 15.
25481         Fixed memory leak. Unified with Single.ToString.
25482
25483 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
25484
25485         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
25486
25487 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
25488
25489         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
25490         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
25491         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
25492         and myself.
25493
25494 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25495
25496         * debug-symfile.c, sysmath.c: yet more compilation fixes.
25497
25498 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25499
25500         * reflection.c, socket-io.c: more compilation fixes.
25501
25502 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25503
25504         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
25505         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
25506         unicode.c: warning and compiler compatibility fixes.
25507
25508 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25509
25510         * class.h, metadata.c: fixed warnings/compilation errors.
25511
25512 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
25513
25514         * Makefile.am, mono-config.c, mono-config.h: configuration file
25515         support routines.
25516         * loader.c, loader.h: make Dll mapping configurable at runtime in the
25517         config file. Export methods to insert and lookup mappings.
25518
25519 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25520
25521         * reflection.c: handle types and boxed objects in custom attr
25522         constructors.
25523
25524 2002-05-30  Martin Baulig  <martin@gnome.org>
25525
25526         * debug-symfile.c
25527         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
25528
25529 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
25530
25531         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
25532         to lookup the implmap row for a P/Invoke method.
25533         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
25534         P/Invoke method from the runtime on an as needed basis.
25535
25536 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
25537
25538         * metadata.c (mono_metadata_parse_signature): impl.
25539
25540 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25541
25542         * class.c: handle .pack directive.
25543
25544 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25545
25546         * object.c: initialize static fields with RVA data.
25547
25548 2002-05-25  Martin Baulig  <martin@gnome.org>
25549
25550         * debug-symfile.c
25551         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
25552
25553 2002-05-24  Martin Baulig  <martin@gnome.org>
25554
25555         * debug-symfile.c
25556         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
25557         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
25558         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
25559
25560 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
25561
25562         * object.c: special case string ctros in invoke.
25563         * gc.c: silly whitespace changes.
25564
25565 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
25566
25567         * threadpool.[ch]: impl. a threadpool that can
25568         be used by mint and mono.
25569
25570 2002-05-22  Martin Baulig  <martin@gnome.org>
25571
25572         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
25573         The first argument is now a `MonoReflectionModuleBuilder *', the return
25574         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
25575         `methods' field to get the method builder.  The `token' argument is the
25576         unfixed token.
25577
25578         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
25579         invalid characters instead of g_assert_not_reached()ing.  This seems
25580         to be the behaviour of mscorlib.
25581
25582 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
25583
25584         * object.c (mono_runtime_invoke_array): applied patch from Rachel
25585         Hestilow to fix bug #25104
25586
25587 2002-05-21  Martin Baulig  <martin@gnome.org>
25588
25589         * debug-symfile.c (mono_debug_find_source_location): New function.
25590         Looks up an IL offset in the line number table and returns the source
25591         location as a string.
25592
25593 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25594
25595         * icall.c:
25596         (mono_double_ToStringImpl): changed %f by %g until we have something
25597         better.
25598
25599 2002-05-21  Nick Drochak  <ndrochak@gol.com>
25600
25601         * icall.c : Use different name for Math.Pow's icall.  Needed to check
25602         parameters first in C#.
25603
25604 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25605
25606         * icall.c, reflection.h: added icall to get info about an event.
25607
25608 2002-05-20  Radek Doulik  <rodo@ximian.com>
25609
25610         * object.c (mono_value_box): don't use memcpy for boxing on BIG
25611         endian
25612         (mono_value_box): don't use memcpy for small sizes on
25613         architectures with unaligned access
25614
25615 2002-05-20  Martin Baulig  <martin@gnome.org>
25616
25617         * reflection.c (mono_reflection_setup_internal_class): Don't crash
25618         if `tb->parent == NULL'.
25619         (mono_reflection_create_internal_class): New function.  This is
25620         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
25621         for enum types.
25622
25623         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
25624         New interncall.
25625
25626 2002-05-19  Martin Baulig  <martin@gnome.org>
25627
25628         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
25629         argument to get the length, don't default to the array length.
25630
25631 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
25632
25633         * assembly.c (mono_assembly_setrootdir): New function used to
25634         override the MONO_ASSEMBLIES directory.
25635
25636 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
25637
25638         * icall.c: ValueType_GetHashCode() initialize local var.
25639
25640 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
25641
25642         * reflection.c: sort custom attributes table.
25643
25644 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25645
25646         * reflection.c: support named args in custom attributes (write support).
25647
25648 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
25649
25650         * reflection.c: fix finally position calculation.
25651
25652 2002-05-15  Radek Doulik  <rodo@ximian.com>
25653
25654         * reflection.c: fixed endianess at many places
25655
25656         * icall.c (ves_icall_InitializeArray): comment out debug msg
25657
25658 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
25659
25660         * object.c (mono_unhandled_exception): new function to handle
25661         unhandled exceptions.
25662         (mono_unhandled_exception): call the UnhandledException event.
25663         (mono_runtime_delegate_invoke): impl.
25664
25665 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
25666
25667         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
25668         returns the RVA, not the direct pointer to the data. Handle the case
25669         when the class size is fixed.
25670
25671 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
25672
25673         * reflection.c: fix some endianess issues.
25674
25675 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
25676
25677         * object.c (mono_runtime_invoke): is now able to catch exceptions.
25678
25679         * threads.c (mono_thread_init): added a callback which is invoked
25680         at thread start.
25681
25682 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25683         
25684         * icall.c: make GetHashCode return non-negative values.
25685
25686 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
25687
25688         * object.c, icall.c, gc.c: revert to address-based hashcode.
25689
25690 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
25691
25692         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
25693
25694 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
25695
25696         * icall.c, class.c: special case <Module>.
25697
25698 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
25699
25700         * icall.c: fix bug in GetNow().
25701
25702 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
25703
25704         * object.c (mono_runtime_class_init): make sure that we call all
25705         static class constructors.
25706
25707 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25708
25709         * reflection.c: sort methodsemantics table.
25710
25711 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
25712
25713         * reflection.h, reflection.c: honour init locals setting.
25714
25715 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
25716
25717         * icall.c: copied Double ToStringImpl for Single ToStringImpl
25718
25719 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25720
25721         * reflection.c: support ContructorBuilders in attribute blob creation.
25722
25723 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25724
25725         * reflection.c: some changes to build a binary that can be run
25726         directly in windows.
25727
25728 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
25729
25730         * loader.c: print a big message when an icall can't be found.
25731
25732 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25733
25734         * string-icalls.c: fix bug 24248.
25735
25736 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
25737
25738         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
25739         icall.c, reflection.h: separate assembly loading by pathname and by
25740         assembly name. Use the MONO_PATH env var to search for assemblies.
25741
25742 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25743
25744         * assembly.c, image.h: add some support for assemblies
25745         with multiple modules.
25746         * class.c, class.h: export mono_class_from_typeref().
25747         * loader.c: remove duplicated code and use mono_class_from_typeref(),
25748         instead.
25749
25750 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25751
25752         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
25753         documentation says (the ECMA one is correct).
25754
25755 2002-05-02  Dick Porter  <dick@ximian.com>
25756
25757         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
25758         Don't name the synchronisation mutex.
25759
25760 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
25761
25762         * rand.c
25763         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
25764         Make the prototypes match.
25765         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
25766         Same.
25767
25768         * icall.c
25769         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
25770         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
25771         all systems have tm.tm_zone, so use strftime() with %Z to print
25772         the timezone abreviation into a temp string.
25773
25774         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
25775         rather than mono_array_addr() on a MonoString on Big Endian
25776         machines.
25777
25778 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
25779
25780         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
25781         fix bug 24041
25782
25783 2002-04-30  Dick Porter  <dick@ximian.com>
25784
25785         * socket-io.c: Cope with SOCKET being an integer rather than a
25786         pointer now.
25787
25788         * threads.c: Added Thread_free_internal, to deal with thread
25789         handle cleanup.  Moved calls to handle_store() and handle_remove()
25790         to start_wrapper(), so each can only be called once.  Allocate
25791         synchronisation blocks with GC_malloc(), and use GC finalisation
25792         to close the handles.
25793
25794         * icall.c: added System.Threading.Thread::Thread_free_internal
25795
25796 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25797
25798         * icall.c: support Environment.Exit, CommandLineArgs().
25799
25800 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
25801
25802         * object.c, object.h: added mono_runtime_run_main () and
25803         mono_runtime_get_main_args () for use in System.Environment.
25804
25805 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
25806
25807         * gc.c: fix thinko, enable actual finalization since the jit is now
25808         fixed.
25809
25810 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
25811
25812         * gc.c, object.c: take into account that an object may be offset wrt the address
25813         returned by GC_malloc().
25814
25815 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
25816
25817         * image.c: handle files without entries in the assembly table (modules).
25818
25819 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
25820
25821         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
25822         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
25823         allowed to be null when it's System.Object class setup.
25824
25825 2002-04-27  Martin Baulig  <martin@gnome.org>
25826
25827         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
25828         if `tb->parent == NULL' rather than crashing.
25829
25830 2002-04-28  Nick Drochak  <ndrochak@gol.com>
25831
25832         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
25833         calling acos() where asin() should have been called.
25834
25835 2002-04-26  Martin Baulig  <martin@gnome.org>
25836
25837         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
25838         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
25839         there's a subdirectory called `System', but we don't want to read that
25840         subdirectory as an assembly.
25841
25842 2002-04-25  Martin Baulig  <martin@gnome.org>
25843
25844         * debug-symfile.c: Reflect latest MonoString changes.
25845
25846 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25847
25848         * rand.c, rand.h: instance method icalls need to have an explicit
25849         this pointer as first argument in the C implementation.
25850
25851 2002-04-25  Nick Drochak <ndrochak@gol.com>
25852
25853         * icall.c: Fix typo in map for GetNonZeroBytes
25854
25855 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
25856
25857         * string-icalls.c : String does now passes unit tests without any 
25858         errors, the following changes has been made:
25859         
25860         Implemented replace methods.
25861         Renaming of methods to (try) follow the standard.
25862         Fixed compare ordinal
25863         Made all memory allocated directly to function instead of via icall function.
25864         Small performance fix in is_in_array function
25865                         
25866  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
25867
25868         c (mono_string_Internal_ctor_charp_int_int):
25869         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
25870         sindex < 0, throw ArgumentOutOfRangeException instead of
25871         ArgumentNullException.
25872
25873         Added new check for length == 0, however
25874         I need to make it return String.Empty from the C code.
25875         
25876         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
25877         that calculate the length for us here.
25878         
25879         (mono_string_Internal_ctor_sbytep_int_int): Replaced
25880         mono_string_new_utf16 with mono_string_new, since value is utf8.
25881
25882 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
25883
25884         * object.c: register the object for finalization if needed.
25885         Allocate one more char in the string for the terminating 0 char.
25886
25887 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
25888
25889         * class.c, class.h, image.c: check if a type implemenst a destructor.
25890         Use the proper key for array class lookups.
25891         * icall.c: register the icalls in the System.GC class.
25892         * gc.c, gc.h: GC-related functions and icalls.
25893
25894 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25895
25896         * icall.c:
25897         * socket-io.c:
25898         * unicode.c: free some strings gotten from mono_string_to_utf8 and
25899         changed a couple of free () by g_free ().
25900
25901         * decimal.c: one-liner in the comments for decimal2string ().
25902
25903 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
25904
25905         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
25906
25907 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
25908
25909         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
25910         * object.c (mono_runtime_invoke_array) : handle null in params
25911
25912 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
25913
25914         * string-icalls.c: fixed bug in split (one off bug)
25915
25916 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
25917
25918         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
25919         * icalls.c: added String::Equals as internal method
25920
25921 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
25922
25923         * threads.c: fixed bug in the double interlocked functions
25924
25925 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
25926
25927         * threads.c: implemented all of the new interlocked icalls.
25928         * string-icalls.c: fix a bug in insert.
25929         * icalls.c: added the icalls for interlocked, removed old string functions.
25930         
25931 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25932
25933         * loader.c: fix off-by-one error when reading argument names.
25934
25935 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
25936
25937         * profiler.c: win32 counter implementation (untested).
25938         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
25939         (the latter needs testing and more complete impl. from win32 folks).
25940
25941 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
25942
25943         * object.c: mono_array_new_full workaround mono_array_class_get
25944         problem.
25945
25946 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
25947
25948         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
25949         * object.h (mono_string_chars): Changed casting type.
25950
25951 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
25952
25953         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
25954                            method signatures to use gunichar2 instead of gint16.
25955
25956 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
25957
25958         * object.h, object.c: domain-specific versions of mono_object_new and
25959         mono_array_new.
25960
25961 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
25962
25963         * object.c: changed String layout
25964
25965         * string-icalls.c (mono_string_Internal_ctor_chara): added
25966         internal string constructors.
25967
25968 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
25969
25970         * threads.c: pass 'this' to the thread start routine.
25971
25972 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25973
25974         * string-icalls.c: fix IndexOf and LastIndexOf. Now
25975         InternalCompareStr don't call twice mono_string_cmp_char for the last
25976         character. Improved performance in mono_string_cmp_char.
25977
25978 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
25979
25980         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
25981         code into its own library: libmonoruntime.
25982
25983 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
25984
25985         * object.h, object.c: changed array format so that szarrays do not
25986         require a bounds structure.
25987         * icall.c, appdomain.c: support for new szarray format.
25988
25989 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
25990
25991         * metadata.c: compare also the retuns type when comparing signatures:
25992         we didn't do this as an optimization since really overloaded methods
25993         must differ also in the arguments, but this doesn't work with
25994         low-level IL code (or when using explicit conversion operators: see
25995         bug#23498 for an example).
25996
25997 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
25998
25999         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
26000
26001 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26002
26003         * icall.c: make MonoType::GetElementType its own icall.
26004
26005 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26006
26007         * icall.c: remove MonoMethod_get_Name().
26008         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
26009         object.
26010
26011 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26012
26013         * string-icalls.c: optimized a few methods.
26014
26015 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
26016
26017         * icall.c: added all new string internal calls
26018         * string-icalls.c: added, new string internal call implementation.
26019         * object.c: added mono_string_new_size for allocating a string a size
26020
26021 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
26022
26023         * object.c (mono_object_isinst): use the same code as in the
26024         optimized x86 version.
26025
26026 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26027
26028         * profiler.c: TSC-based timer code (faster and more accurate).
26029         Not hooked up in configure, yet (set USE_X86TSC to 1).
26030
26031 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
26032
26033         * profiler.c, profiler.h: track time spent compiling methods.
26034         * threads.c: track thread creation/destruction.
26035
26036 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
26037
26038         * profiler.c, profiler.h, profiler-private.h: profiling interface
26039         and sample implementation. Moved here so that it can be used also by
26040         the jit.
26041
26042 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
26043
26044         * reflection.c, reflection.h: keep types and other handles separate in
26045         the hash tables for referred tokens. Add guid for modules.
26046
26047 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26048
26049         * assembly.c: fix bugs found with valgrind.
26050         * metadata.h, metadata.c: added mono_metadata_guid_heap().
26051
26052 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
26053
26054         * threads: added icall support for getting current domain for
26055                    the thread.
26056  
26057 2002-04-13  Martin Baulig  <martin@gnome.org>
26058
26059         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
26060         (MonoDebugVarInfo): Added `index' field for register based addresses.
26061         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
26062         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
26063         `MonoDebugVarInfo *params' and `guint32 this_offset' with
26064         `MonoDebugVarInfo *this_var'.
26065
26066         * debug-symfile.c (relocate_variable): New static function to write
26067         a location description for a local variable or method parameter.
26068
26069 2002-04-12  Martin Baulig  <martin@gnome.org>
26070
26071         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
26072         stack offset and begin/end scope address of a local variable.
26073         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
26074         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
26075         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
26076
26077         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
26078         Added new relocation types for start/end scope of a local variable.
26079
26080 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26081
26082         * object.h: add mono_object_domain() macro.
26083         * reflection.c: handle typespecs.
26084         * icall.c: MonoMethod::get_Name() implementation.
26085
26086 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26087
26088         * icall.c: String::GetHashCode() icall implementation.
26089
26090 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26091
26092         * icall.c: String::IndexOfAny icall.
26093         * object.c, object.h: make array->max_length more useful.
26094         Intrduced mono_object_class() and mono_string_length() macros.
26095
26096 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26097
26098         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
26099         instead of g_unichar_isdigit.
26100
26101 2002-04-11  Nick Drochak  <ndrochak@gol.com>
26102
26103         * icall.c: Implement a simple Double.ToString().
26104
26105 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
26106
26107         * appdomain.h: only io-layer.h is supposed to be included.
26108         * icall.c: explicitly import environ. Fix warning.
26109
26110 2002-04-10  Nick Drochak  <ndrochak@gol.com>
26111
26112         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
26113                 return true even if it's not Daylight Savings time.
26114                 Only return false for the case where the function isn't
26115                 implemented for a plaform (read Windows).
26116
26117 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26118
26119         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
26120         data with a mutex.
26121
26122 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
26123
26124         * mempool.c (mono_mempool_alloc): only use g_malloc when
26125         absolutely necessary.
26126
26127 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26128
26129         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
26130
26131         * class.c (mono_class_vtable): use domain mempool to allocate vtable
26132         (mono_class_proxy_vtable): use domain mempool
26133
26134 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26135
26136         * appdomain.h, appdomain.c: split initialization that requires the
26137         execution engine support into mono_runtime_init().
26138
26139 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
26140
26141         * class.c (mono_class_init): don't include vtable inside MonoClass
26142         to save some memory, gather some statistics.
26143         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
26144
26145 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26146
26147         * icall.c: internalcall implementation for ValueType.Equals().
26148
26149 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
26150
26151         * object.c (mono_message_init): moved 
26152         (mono_runtime_exec_main): new arch. independent impl.
26153         (mono_runtime_invoke_array): new method - like
26154         mono_runtime_invoke, but you can pass an array of objects.
26155         (mono_remoting_invoke): new arch. independent impl.
26156         (mono_message_invoke): new arch. independent impl.
26157         (mono_runtime_class_init): new arch. independent impl.
26158         (mono_runtime_object_init): new arch. independent impl.
26159
26160 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26161
26162         * metadata.c, object.c, reflection.c: documented the exported
26163         functions.
26164
26165 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
26166
26167         * icall.c: simpler code to pass the assembly builder data to corlib.
26168         Implement GetNestedTypes() internalcall.
26169
26170 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26171
26172         * class.c: warn if a type can't be loaded.
26173
26174 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
26175
26176         * image.h: typedef MonoImageOpenStatus
26177         * types.h: removed unused file
26178         
26179 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
26180
26181         * icall.c: Enum_ToObject accepts enum value arguments.
26182
26183 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26184
26185         * class.c: move initialization of properties, events and nested
26186         classes, so that they happen for interfaces, too.
26187
26188 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26189
26190         * icall.c: cleanup some ugly casts in Array_SetValue*.
26191
26192 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26193
26194         * icall.c: the values array fro enums is of the correct type, now.
26195         Implement (correctly) getFullName instead of assQualifiedName for
26196         MonoType.
26197         * reflection.h, reflection.c: added mono_type_get_name ().
26198
26199 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26200
26201         * assembly.c, image.h: for each MonoImage, record from wich assembly
26202         it was loaded.
26203         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
26204         Make Type.Assembly work.
26205
26206 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
26207
26208         * debug-symfile.h: use char* instead of gpointer to avoid
26209         unnecessary casts.
26210
26211         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
26212
26213         * icall.c (ves_icall_InternalExecute): impl. FielSetter
26214         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
26215
26216 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
26217
26218         * icall.c (mono_message_init): impl. (code cleanup)
26219         (ves_icall_InternalExecute): impl. FieldGetter
26220
26221         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
26222         defined we call all (non-static)methods through the vtable. 
26223
26224 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
26225
26226         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
26227         finalizer even though the memory is still referenced (and the chunk of
26228         memory is not freed).
26229
26230 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
26231
26232         * assembly.c: fix brokeness.
26233
26234 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
26235
26236         * class.c: kill some warnings. Check explicit interface method
26237         implementation also without considering the namespace.
26238         Load also literal strings in static class data.
26239
26240 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
26241
26242         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
26243         (default_assembly_name_resolver): Make the resolver take the
26244         "base" directory where the assembly was originally defined, so we
26245         can load DLLs that are in the same directory as the assembly that
26246         is being referenced.
26247
26248 2002-03-28  Dick Porter  <dick@ximian.com>
26249
26250         * file-io.h: 
26251         * file-io.c:
26252         * socket-io.c: 
26253         * unicode.h: 
26254         * unicode.c: Warning cleanups
26255
26256 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
26257
26258         * object.h, reflection.h: use the correct type instead of MonoObject.
26259
26260 2002-03-28  Martin Baulig  <martin@gnome.org>
26261
26262         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
26263         (mono_debug_update_symbol_file): Initialize classes if necessary.
26264
26265 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26266
26267         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
26268         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
26269
26270 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
26271
26272         * assembly.h: fix function prototype.
26273         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
26274         * mono-endian.h: use const cast.
26275
26276 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26277
26278         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
26279
26280 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26281
26282         * loader.c: don't assert when a typeref can't be loaded, give
26283         a chance to the runtime to trow an exception instead.
26284         * loader.h: fix warning.
26285
26286 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
26287
26288         * class.c (mono_class_proxy_vtable): added proxy support
26289
26290 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
26291
26292         * icall.c: removed last of PAL calls, added System.Environment
26293         * file-io.h, file-io.c: MonoIO implementation
26294         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
26295
26296 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26297
26298         * appdomain.c: do not use the byte marker in ldstr table lookup.
26299         * debug-helpers.c: allow two ':' to separate class and method name.
26300         * object.c: allocate arrays bounds with the GC, too.
26301         * verify: add a few more checks.
26302
26303 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
26304
26305         * reflection.c: output also literal strings. Allocate parameter data
26306         with GC_malloc() (thanks, Martin, for catching this!).
26307
26308 2002-03-26  Martin Baulig  <martin@gnome.org>
26309
26310         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
26311         include the `this' offset in the `param_offsets'.
26312
26313 2002-03-25  Martin Baulig  <martin@gnome.org>
26314
26315         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
26316         mono_debug_get_class() function to get the classes. Added new
26317         relocation types for arrays and strings.
26318         (mono_debug_get_class): New static function to search in all
26319         referenced assemblies for a metadata token.
26320
26321         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
26322
26323 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
26324
26325         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
26326         hold gc-allocated objects. Make the string heap a stream like the
26327         others. Removed duplicated code when writing stream info.
26328         Added asserts to catch possible buffer overflows. Set the sorted map
26329         for tables that need sorting. Added some documentation.
26330
26331 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
26332
26333         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
26334         for interned strings and vtables.
26335
26336 2002-03-24  Martin Baulig  <martin@gnome.org>
26337
26338         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
26339         it in the array since it was created with g_slist_prepend().
26340
26341 2002-03-24  Martin Baulig  <martin@gnome.org>
26342
26343         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
26344         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
26345         (mono_debug_method_from_token): Renamed to
26346         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
26347         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
26348
26349         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
26350         relocation types.
26351
26352         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
26353
26354 2002-03-24  Martin Baulig  <martin@gnome.org>
26355
26356         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
26357         (mono_debug_method_from_token): New func.
26358
26359         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
26360         New interncall, calls mono_debug_local_type_from_signature().
26361         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
26362         calls mono_debug_method_from_token().
26363
26364 2002-03-23  Martin Baulig  <martin@gnome.org>
26365
26366         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
26367         specifies the number of bytes to be converted, not the array size.
26368         Return the number of chars, not the number of bytes.
26369         (ves_icall_iconv_get_chars): The `byteCount' argument
26370         specifies the number of bytes to be converted, not the array size.
26371
26372 2002-03-23  Martin Baulig  <martin@gnome.org>
26373
26374         * reflection.h (MonoReflectionSigHelper): New type.
26375
26376         * reflection.c (mono_reflection_sighelper_get_signature_local),
26377         (mono_reflection_sighelper_get_signature_local): New functions.
26378
26379         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
26380         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
26381         interncalls.
26382
26383 2002-03-23  Martin Baulig  <martin@gnome.org>
26384
26385         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
26386         is_writeable is set.
26387         (mono_raw_buffer_update): New function to write the modified map
26388         back to disk.
26389
26390         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
26391
26392         * debug-symfile.c (mono_debug_update_symbol_file): Call
26393         mono_raw_buffer_update() when done writing.
26394
26395 2002-03-23  Martin Baulig  <martin@gnome.org>
26396
26397         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
26398
26399         * debug-symfile.c: Added support for arguments and local variables.
26400
26401 2002-03-23  Dick Porter  <dick@ximian.com>
26402
26403         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
26404         protected by ifdefs, hence breaking the w32 build.
26405
26406 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26407
26408         * object.c: implement is_interned() the right way.
26409
26410 2002-03-21  Martin Baulig  <martin@gnome.org>
26411
26412         * debug-symfile.[ch]: New files to handle debugging information
26413         files. There's also support to dynamically update these symbol
26414         files to include machine dependent information.
26415
26416 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
26417
26418         * threads.c (mono_thread_create): new function to create thread
26419         from C
26420
26421 2002-03-20  Martin Baulig  <martin@gnome.org>
26422
26423         * icall.c (ves_icall_InternalInvoke): Create a new object if the
26424         method is a constructor.
26425         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
26426         points to ves_icall_InternalInvoke().
26427
26428 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
26429
26430         * file-io.c: Flush shouldn't throw exceptions.
26431
26432 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
26433
26434         * file-io.c: FileStream flush support; FileSetLength now
26435         restores file pointer.
26436
26437 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
26438
26439         * class.c: set image for pointer classes.
26440
26441 2002/03/19  Nick Drochak <ndrochak@gol.com>
26442
26443         * sysmath.c: Forgot one.
26444
26445 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
26446
26447         * sysmath.c: Avoid redefining existing names.
26448
26449 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
26450
26451         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
26452         handled by runtime as icall rather than dllimport from libm.so
26453         * file-io.c, file-io.h: fixed handle argument type.
26454
26455 2002-03-18  Dick Porter  <dick@ximian.com>
26456
26457         * reflection.c (mono_image_get_type_info): rename interface to
26458         iface, because of "#define interface struct" on windows.
26459
26460 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
26461
26462         * class.c, class.h: rename and export mono_ptr_class_get().
26463         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
26464         * reflection.c, reflection.h, icall.c: better/saner type name
26465         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
26466         method signatures.
26467
26468 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
26469
26470         * class.c (mono_class_init): removed hardcoded GHC_SLOT
26471
26472         * icall.c (ves_icall_InternalInvoke): impl.
26473
26474 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
26475
26476         * reflection.c: output the interface map table, too.
26477
26478 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26479
26480         * class.c (class_compute_field_layout): separate computation of 
26481         static field layout
26482
26483 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
26484
26485         * icall.c: added System.Buffer support.
26486         * file-io.c: moved file icalls from PAL to FileStream.
26487
26488 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
26489
26490         * icall.c (ves_icall_System_Object_GetHashCode): impl.
26491
26492 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
26493
26494         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
26495
26496 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26497
26498         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
26499
26500 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
26501
26502         * debug-helpers.{c,h}: moved here from monograph some useful functions
26503         to locate a method by name/signature in a class or image. Included
26504         also a small and flexible IL disassembler.
26505
26506 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26507
26508         * reflection.c: fixup tokens in methods with small header size, too.
26509
26510 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
26511
26512         * object.c (mono_string_to_utf8): remove assert(!error), instead
26513         print a warning. 
26514
26515 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
26516
26517         * icall.c: update to the new mono_Array_class_get interface.
26518
26519 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26520
26521         * appdomain.c, object.c: Boehm-GC enable.
26522         * icall.c: make get_data_chunk() support split data requests.
26523         Ensure a class is initialized in more cases. Return only the first
26524         property found in GetProperties() or the compiler gets confused. 
26525         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
26526         * reflection.h, reflection.c: add fixup mechanism for field and method
26527         tokens. Initialize assembly->typeref in a single place. Output
26528         properties after events. Support custom attributes for events, too.
26529         Typo fix for paramter custom attrs.
26530
26531 2002-03-07  Martin Baulig  <martin@gnome.org>
26532
26533         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
26534
26535 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
26536
26537         * class.c (mono_array_class_get): fix. for multi. dim. arrays
26538
26539 2002-03-06  Martin Baulig  <martin@gnome.org>
26540
26541         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
26542         non-zero lower bounds. See testcases #F10-#F13.
26543
26544 2002-03-05  Martin Baulig  <martin@gnome.org>
26545
26546         * exception.c (mono_get_exception_argument_out_of_range): New exception.
26547
26548         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
26549         ves_icall_System_Array_GetValue(), only calculate the absolute array position
26550         here.
26551         (ves_icall_System_Array_SetValue): Likewise.
26552         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
26553         as argument and does the actual work. This function is used when copying a
26554         multi-dimensional array.
26555         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
26556         now do all the widening conversions of value types.
26557         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
26558
26559 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26560
26561         * class.c: remove some magic numbers and use the smbolic names,
26562         instead. Added init_events() to load event info at class init time.
26563         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
26564         and mono_metadata_methods_from_event().
26565         * reflection.h, reflection.c: added support for writing out the evnets
26566         related information.
26567
26568 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
26569
26570         * reflection.h, icall.c: use a different method (GetInterfaces)
26571         to gather interface info and add isbyref, isprimitive and
26572         ispointer to the ves_icall_get_type_info() return value.
26573
26574 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
26575
26576         * class.h: stared adding support for events.
26577         * icall.c: split find_members implementation. Added debug icall to get
26578         the address of an object.
26579         * reflection.c: handle TypeBuilders in mono_type_get_object().
26580
26581 2002-03-01  Martin Baulig  <martin@gnome.org>
26582
26583         * icall.c (ves_icall_System_Array_GetLength): This must throw an
26584         ArgumentOutOfRangeException(), not an ArgumentException().
26585         (ves_icall_System_Array_GetLowerBound): Likewise.
26586         (ves_icall_System_Array_GetValue): Improved argument checking.
26587         (ves_icall_System_Array_SetValue): Improved argument checking.
26588
26589 2002-03-01  Martin Baulig  <martin@gnome.org>
26590
26591         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
26592         called with invalid arguments rather than just dying with g_assert().
26593         (ves_icall_System_Array_SetValue): Likewise.
26594         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
26595         raise a NotImplementedException instead.
26596         (ves_icall_System_Array_GetLength): Added argument checking.
26597         (ves_icall_System_Array_GetLowerBound): Added argument checking.
26598
26599 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
26600
26601         * object.h (mono_assert): new macros mono_assert and
26602         mono_assert_not_reached
26603
26604 2002-02-28  Martin Baulig  <martin@gnome.org>
26605
26606         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
26607         and "System::String::IsInterned" to "System::String::_IsInterned".
26608
26609 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
26610
26611         * icall.c: remove hacks for typebuilder. Added icall to create a
26612         modified type from a tybebuilder.
26613         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
26614         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
26615         to create a backing MonoClass for a TypeBuilder.
26616
26617 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26618
26619         * class.c, class.h: more refactoring of class init.
26620         Export mono_class_setup_mono_type() and mono_class_setup_parent().
26621
26622 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
26623
26624         * marshal.c, marshal.h: start of marshaling interface.
26625
26626 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
26627
26628         * icall.c: fix order in assembly qualified name icall.
26629
26630 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
26631
26632         * class.c: do not free str, since we store it in the hash table.
26633         * reflection.h: add label field to MonoILExceptionInfo.
26634         * reflection.c: handle references to more than one assembly. Handle
26635         case when there isn't a module created in the assembly.
26636
26637 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
26638
26639         * class.c: Fix typo. Start refactoring of class init code.
26640
26641 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
26642
26643         * appdomain.c: exit with 1 on error.
26644         * class.c: we already have the name in MonoClassField.
26645         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
26646         MonoStreamHeader instead of an offset of image->raw_metadata.
26647
26648 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
26649
26650         * appdomain.c (mono_init): Be even more descriptive about the error.
26651
26652 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
26653
26654         * appdomain.c: give the user an informative message when corlib can't
26655         be loaded.
26656
26657 2002-02-26  Martin Baulig  <martin@gnome.org>
26658
26659         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
26660         New icall to get the time zone data.
26661
26662 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26663
26664         * reflection.c: set virtual and raw size of section correctly.
26665         * threads.c: transfer domain information to newly created threads.
26666
26667 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
26668
26669         * class.c: when instancing a class in a domain, load the default
26670         vaules for static fields from the constant table. Fix System.Enum to
26671         not be an enum.
26672         * icall.c: implement Object::GetType() internalcall. Implemented
26673         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
26674         Fixed checking of binding flags in find_members().
26675         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
26676         * reflection.c: handle enumerations when writing to the constant
26677         table. Use a different object cache for types.
26678
26679
26680 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
26681
26682         * object.c (mono_object_isinst): fix for arrays
26683
26684         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
26685
26686 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
26687
26688         * object.c: don't use mprotect ()  and fix intern pool hash table
26689         lookup for big endian systems.
26690
26691 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26692
26693         * icall.c: change type_is_subtype_of () signature.
26694
26695 2002-02-21  Mark Crichton  <crichton@gimp.org>
26696
26697         * rand.c, rand.h: Added random number generator for
26698         System.Security.Cryptography classes.
26699
26700         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
26701
26702         * icall.c: Added System.Security.Cryptography calls.
26703
26704 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
26705
26706         * class.c, icall.c, metadata.c: better support for pointer types.
26707         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
26708         * reflection.c: Add support for getting custom attrs for properties
26709         and simplify some code.
26710
26711 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
26712
26713         * icall.c: change getToken () and add custom attribute GetBlob()helper
26714         method.
26715         * reflection.h: add custom attrs array to the reflection builder structures.
26716         * reflection.c: encode and emit custom attributes for all the relevant
26717         reflection objects. Cache fieldref and methodref tokens. Change
26718         mono_image_create_token() interface to take a MonoDynamicAssembly.
26719         More complete custom attributes decoder. Load custom attributes for
26720         Assembly, Field, Method and Constructor objects, too. Make the
26721         returned array an Attribute[] one, not object[]. Added
26722         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
26723         custom attribute constructor.
26724
26725 2002-02-20  Dick Porter  <dick@ximian.com>
26726
26727         * icall.c:
26728         * rawbuffer.c:
26729         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
26730         problem code out for now).
26731
26732 2002-02-19  Radek Doulik  <rodo@ximian.com>
26733
26734         * object.c (mono_ldstr): use hash table to avoid multiple swapping
26735
26736 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
26737
26738         * icall.c: register the GetCustomAttributes method.
26739         * object.c, object.h: add mono_string_new_len ().
26740         * reflection.h, reflection.c: added mono_runtime_invoke(),
26741         mono_install_runtime_invoke(). Added
26742         mono_reflection_get_custom_attrs () to load custom attributes and
26743         create the attribute objects.
26744
26745 2002-02-19  Dick Porter  <dick@ximian.com>
26746         * threads-dummy-types.c:
26747         * threads-dummy-types.h:
26748         * threads-dummy.c:
26749         * threads-dummy.h:
26750         * threads-pthread-types.c:
26751         * threads-pthread-types.h:
26752         * threads-pthread.c:
26753         * threads-pthread.h:  Deleted obsolete files
26754
26755 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
26756
26757         * class.c (mono_class_vtable): runtime init the class when we
26758         allocate static class data.
26759
26760         * icall.c (ves_icall_System_Array_SetValue): check for null values.
26761
26762         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
26763         and String - but we will need generic marshalling support in the
26764         future. 
26765         (mono_init): set the domain name in a ms compatible way
26766
26767         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
26768         String[].
26769
26770 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
26771
26772         * object.c (mono_array_clone): use alloca() instead of g_malloc  
26773         for sizes
26774
26775         * appdomain.c (mono_domain_unload): impl.
26776
26777 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
26778
26779         * appdomain.c, object.c: fix intern pool implementation.
26780         * class.c: fix alignment code.
26781
26782 2002-02-16  Radek Doulik  <rodo@ximian.com>
26783
26784         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
26785         and s2 > s1, just copy lower bytes to be compatible with little
26786         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
26787         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
26788
26789         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
26790         force big_endian to be 1 for big endian machines 
26791         (ves_icall_iconv_new_decoder): ditto
26792
26793 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
26794
26795         * socket-io.c (convert_sockopt_level_and_name): If the system
26796         doesn't define SOL_IP or SOL_TCP, get them by hand using
26797         getprotobyname() and caching the values (because this could be a
26798         slow operation).
26799         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
26800         Use the appropriate struct when the system does support it. Ie,
26801         not all systems have struct ip_mreqn so use struct ip_mreq when
26802         appropriate.
26803
26804 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
26805
26806         * reflection.c: handle finally clauses.
26807
26808 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
26809
26810         * socket-io.c: use g_snprintf() instead of snprintf.
26811
26812 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
26813
26814         * reflection.c (mono_param_get_objects): Cast second argument to
26815         mono_method_get_param_names to a const char** to silence the
26816         compiler warning.
26817
26818         * appdomain.c (mono_domain_assembly_open): Put parens around the
26819         truth statement in the for-loop.
26820
26821         * unicode.c (iconv_convert): Got rid of a compiler warning about
26822         int i being unused when the system has a new iconv.
26823         (iconv_get_length): Same.
26824
26825         * image.c (load_class_names): Cast the second argument to
26826         g_hash_table_insert() to char* to hush compiler warnings about the
26827         arg being a const.
26828         (mono_image_open): Same here.
26829
26830         * socket-io.c: Don't conditionally include sys/filio.h or
26831         sys/sockio.h here anymore since we now get them from
26832         io-layer/io-layer.h
26833         (inet_pton): If the system doesn't support inet_aton, implement
26834         using inet_addr and also #define INADDR_NONE if it isn't defined
26835         by the system.
26836
26837 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
26838
26839         * metadata.c, metadata.h: added function to get packing and size info
26840         of a typedef.
26841         * reflection.h, reflection.c: handle field RVA data. Save info about
26842         the table layout if needed. Assign typedef indexes to all the types
26843         before dumping the info about them to avoid forward reference problems.
26844
26845 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
26846
26847         * socket-io.c (convert_sockopt_level_and_name): ifdef
26848         SO_ACCEPTCONN because it is not defined on my system (old debian)
26849
26850 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
26851
26852         * opcode.c: use stddef.h to get NULL.
26853
26854 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
26855
26856         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
26857         for FIONBIO, FIONREAD and SIOCATMARK.
26858         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
26859         define INADDR_NONE and besides, inet_addr() is deprecated and
26860         should not be used. Use inet_pton() instead - it also has the
26861         added bonus that it can easily handle IPv6 addresses as well.
26862         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
26863
26864 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
26865
26866         * decimal.c: remove _MSC_VER conditional.
26867
26868 2002-02-13  Dick Porter  <dick@ximian.com>
26869
26870         * socket-io.c: 
26871         * icall.c: Internal calls for Blocking, Select, Shutdown,
26872         GetSocketOption and SetSocketOption
26873
26874 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26875
26876         * assembly.cs: better resolver: use it instead of some kludgy
26877         code.
26878
26879 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
26880
26881         * reflection.c: the best way to speed-up the compiler is to avoid
26882         infinite loops.
26883
26884 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
26885
26886         * class.c (mono_class_vtable): changed the object layout
26887         (obj->vtable->class). 
26888         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
26889
26890 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
26891
26892         * assembly.c: look for assemblies in the assembly dir, too.
26893
26894 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
26895
26896         * class.c: fix thinko in mono_class_from_type().
26897
26898 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
26899
26900         * exception.h, exception.c: added TypeLoadException.
26901         * object.h, object.c: added mono_array_clone ().
26902         * icall.c: handle throwOnError in AssemblyGetType().
26903         Added Array.Clone().
26904         * opcode.h, opcode.c: use a single value for the opcode val.
26905         Compile fix for non-gcc compilers.
26906
26907 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
26908
26909         * opcodes.c, opcodes.h: export interesting info about opcodes.
26910
26911 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
26912
26913         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
26914         icalls. 
26915
26916         * class.c (class_compute_field_layout): set element_class for enums
26917         (mono_class_create_from_typedef): set element_class for normal classes
26918
26919         * icall.c (ves_icall_System_Enum_get_value): impl.
26920
26921         * class.c (mono_class_create_from_typedef): do not set valuetype
26922         flag for System.ValueType and System.Enum
26923
26924 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
26925
26926         * unicode.c (iconv_convert): fix big endian problem.
26927
26928 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
26929
26930         * class.c: add asserts if we are ever going to scribble over memory.
26931         * socket-io.c: not all systems have AF_IRDA defined.
26932
26933 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
26934
26935         * class.c (class_compute_field_layout): do not consider static
26936         fields to compute alignment
26937
26938 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
26939
26940         * appdomain.c (mono_appdomain_get): impl.
26941         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
26942
26943 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
26944
26945         * icall.c: ignore "file://" prefix when loading an assembly.
26946
26947 2002-01-23  Dick Porter  <dick@ximian.com>
26948
26949         * socket-io.c:
26950         * icall.c:
26951         * Makefile.am: Added socket support
26952
26953 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
26954
26955         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
26956         code back.  This should return the assemblies that are loaded by
26957         the runtime on behalf of an application domain. 
26958
26959         The current implementation is still broken, it just returns every
26960         assembly loaded, but until we get real applications domain this
26961         will do.
26962
26963 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
26964
26965         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
26966         AppDomain object.
26967
26968 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
26969
26970         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
26971         the mono_class_from_name lookup.
26972         (ves_icall_get_parameter_info): ditto.
26973         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
26974         method.
26975         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
26976
26977 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
26978
26979         * class.c: load also nested classes on class init.
26980         System.ValueType instance methods gets passed boxed
26981         values, unless methods in derived classed that get a pointer to the
26982         data.
26983         * icall.c: use better name parsing code in GetType().
26984         * image.c, image.h: add mono_image_loaded ().
26985         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
26986         * reflection.c, reflection.h: added mono_reflection_parse_type().
26987
26988 2002-01-22  Veronica De Santis <veron78@interfree.it>
26989
26990         * icall.c : Added mapping of internal calls for Manual and Auto reset events
26991         * threads.c : Added the implementation of internal calls for events
26992         * threads.h : Added prototypes of internal calls for events
26993         
26994 2002-01-21  Radek Doulik  <rodo@ximian.com>
26995
26996         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
26997
26998 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
26999
27000         * class.c (mono_class_init): set min_align to 1 (instead of 0)
27001         (mono_class_value_size): use min_align
27002
27003 2002-01-20  Dick Porter  <dick@ximian.com>
27004
27005         * threads.h:
27006         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
27007         so it compiles on w32.
27008
27009 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
27010
27011         * metadata.c (mono_type_stack_size): impl.
27012
27013         * class.c (mono_class_get_field): impl. memberref token
27014
27015 2002-01-16 Veronica De Santis <veron78@@interfree.it>
27016
27017         * icall.h : Added the internal calls mapping for CreateMutex_internal
27018                     and ReleaseMutex_internal.
27019         * threads.h : Added the prototype of mutexes internal calls.
27020         * threads.c : Added the implementations of mutexes internal calls.
27021
27022 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
27023
27024         * metaparse.h: removed unused file.
27025         * reflection.c, reflection.h: added stream_data_align () function 
27026         to align data in streams and keep stream aligned. Add support for
27027         exception support in method headers.
27028
27029 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
27030
27031         * unicode.c: make iconv_convert () return the number of bytess written
27032         in the output buffer.
27033
27034 2002-01-15  Dick Porter  <dick@ximian.com>
27035         * threads.c: Make the runtime's idea of infinite timeouts coincide
27036         with the class library's
27037
27038         Fix a particularly egregious bug in mono_thread_cleanup(). That
27039         code was so utterly bogus it must have been written on a Monday.
27040
27041 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
27042
27043         * reflection.h: add subtypes field to TypeBuilder.
27044         * reflection.c: encode constants for literal fields.
27045         Handle subtypes. Fix user string token (and add a zero byte)
27046         at the end.
27047         
27048 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
27049
27050         * class.c (mono_class_init): bug fix: assign slot numbers for
27051         abstract methods.
27052
27053 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
27054
27055         * reflection.c: don't try to output a code RVA for abstract methods.
27056         Small fixes for method header format. Output parameter info to the
27057         ParamDef table. Save method overriding info to MethodImpl table.
27058         Fix property support. Allow typedef.extends to be a type in the
27059         building assembly.
27060         * verify.c: fix off-by-one error.
27061
27062 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
27063
27064         * class.c: fix mono_class_from_mono_type () for szarray types.
27065         Remove unused cache check in mono_class_from_type_spec().
27066         * icall.c: *type_from_name () functions handle simple arrays and byref.
27067         * reflection.c: handle byref and szarray types. Handle methods without
27068         body (gets P/Invoke compilation working). Handle types and fields in
27069         get_token ().
27070         * reflection.h: add rank to MonoTypeInfo.
27071
27072 2002-01-10  Dick Porter  <dick@ximian.com>
27073
27074         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
27075         internal calls
27076
27077 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
27078
27079         * icall.c: initialize class in type_from_handle ().
27080         Loop also in parent classes for get_method ().
27081         * reflection.c: properly encode class and valuetype types.
27082         Start on encoding TypeBuilder types. Handle fieldrefs.
27083         Use correct length when registering a user string.
27084         Handle ConstructorBuilder and MonoMethod in get_token ().
27085         Make mono_type_get_object () aware of cached types.
27086         * object.c: back out change to mono_string_new ().
27087
27088 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
27089         * object.c: mono_string_new should return a NULL when the string 
27090         passed in is NULL -- not try to deference it.
27091         
27092 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27093
27094         * icall.c: hack to make IsSubType work for TypeBuilders.
27095         * reflection.c: emit constructors before methods.
27096         Retrieve param names in mono_param_get_objects().
27097
27098 2002/01/05  Nick Drochak  <ndrochak@gol.com>
27099
27100         * Makefile.am: fix list of headers and sources so automake 1.5
27101         doesn't complain. Removed \# at end of list.
27102
27103 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
27104
27105         * reflection.c: get token for a method ref. Set return type of
27106         constructor to void.
27107         * loader.c: debug message.
27108         * class.c: typo fix.
27109
27110 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
27111
27112         * icall.c: fix array init with rank > 1. FindMembers
27113         loops in parent class as well.
27114         * image.c: do not insert nested types in name cache.
27115         * reflection.c: warning fix.
27116         * reflection.h: add override method (for interface impl).
27117
27118 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
27119
27120         * metadata.c: fix customattr decoding.
27121
27122 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
27123
27124         * rawbuffer.cs: Added native Win32 implementation, avoids using
27125         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
27126
27127 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
27128
27129         * class.c: make the low-level routines handle the cache.
27130
27131 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
27132
27133         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
27134
27135 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
27136
27137         * class.c: fix mono_array_element_size() for objects.
27138         * class.h, class.c: add properties to MonoClass and load them
27139         at init time.
27140         * icall.c: check with isinst() when assigning a value to an array
27141         instead of requiring the classes to match exactly.
27142         Implemented icall for System.Type::GetType().
27143         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
27144         enums. Handle bindingflags when looking for methods and fields.
27145         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
27146         and mono_metadata_methods_from_property().
27147         * reflection.h, reflection.c: added structures for propreties,
27148         parameters and enums. Implemented mono_property_get_object() and
27149         mono_param_get_objects().
27150
27151 2001-12-18  Dick Porter  <dick@ximian.com>
27152
27153         * file-io.c: Use mono_string_to_utf16() instead of
27154         mono_string_chars()
27155
27156         * object.c: Added mono_string_to_utf16(), which copies the non
27157         NULL-terminated MonoString into a new double-null-terminated
27158         buffer.
27159
27160 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
27161
27162         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
27163
27164 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
27165
27166         * file-io.c: raise exceptions if handle is invalid.
27167
27168 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
27169
27170         * assembly.c: yet another check for mscorlib.
27171         * class.c, class.h: load nesting info for classes.
27172         * icall.c: many new functions to support the Reflection classes.
27173         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
27174         * reflection.h, reflection.c: mono_image_create_token(),
27175         mono_assembly_get_object(), mono_type_get_object(),
27176         mono_method_get_object(), mono_field_get_object(): methods to return
27177         objects that parallel the C representation of assemblies, types,
27178         methods, fields.
27179
27180 2001-12-11  Dick Porter  <dick@ximian.com>
27181
27182         * icall.c:
27183         * file-io.c: Internal calls for file IO.
27184
27185 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
27186
27187         * tabledefs.h: missing FileAttributes.
27188         * verify.h, verify.c: use is_valid_string () to simplify and check for
27189         valid strings more correctly. Fix warnings and speeling.
27190         Check more tables: Filed, File, ModuleRef, StandAloneSig.
27191         Check code: branches, maxstack, method calls.
27192
27193 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
27194
27195         * object.c (mono_object_allocate): removed static, so that the jit
27196         can allocate value types.
27197
27198         * icall.c (ves_icall_System_DateTime_GetNow): impl.
27199
27200 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27201
27202         * class.c: init enum types right away and register the
27203         token->MonoClass map in mono_class_create_from_typedef ().
27204         * verify.h, verify.c: first cut of the verifier.
27205         * pedump.c: add --verify switch to verify metadata tables.
27206         * tabledefs.h: add some missing enums.
27207
27208 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
27209
27210         * class.c (mono_install_runtime_class_init): impl.
27211         (mono_class_init): renamed mono_class_metadata_init to
27212         mono_class_init, also removed the metadata_inited flag
27213
27214         * object.c (mono_object_isinst): use faster algorithm
27215
27216 2001-11-30  Radek Doulik  <rodo@ximian.com>
27217
27218         * mono-endian.h: reverted last change
27219         added function prototypes
27220
27221         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
27222         add mono-endian.c back
27223
27224         * mono-endian.c: returned back, as Paolo pointed out, it's needed
27225         for unaligned access, I've mistaked it with endianess. I am
27226         sorry.
27227         (mono_read16): fix reverted endianess
27228         (mono_read64): ditto
27229         (mono_read32): ditto
27230
27231 2001-11-30  Dick Porter  <dick@ximian.com>
27232
27233         * exception.c: Implement mono_exception_from_name()
27234
27235 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27236
27237         * metadata.h, metadata.c: remove params_size and locals_size and their
27238         calculation from the metadata code: they are only usefult to the
27239         interp.
27240
27241 2001-11-29  Radek Doulik  <rodo@ximian.com>
27242
27243         * object.c (mono_ldstr): swap bytes here, it's probably not the
27244         best place, but works for me now, I'll redo it once I know mono
27245         better, also note that I add PROT_WRITE and don't reset back, also
27246         note that it's only affects big endians, so x86 should be OK
27247
27248         * mono-endian.h (read16): use just glib macros for both endians
27249
27250         * mono-endian.c: removed as glib macros are used in in
27251         mono-endian.h so we don't need to care about endianess for read
27252         macros as glib does that for us already
27253
27254 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
27255
27256         * class.h, class.h: take minimum alignment into consideration so
27257         that the fields of a class remain aligned also when in an array.
27258
27259 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27260
27261         * loader.h, loader.c: add mono_method_get_param_names().
27262         * class.c: 0-init class fields.
27263
27264 2001-11-26  Dick Porter  <dick@ximian.com>
27265
27266         * icall.c:
27267         * threads-types.h:
27268         * threads.c: New file that handles System.Threading on all platforms
27269
27270         * object.c: 
27271         * object.h: Remove the synchronisation struct from MonoObject,
27272         replace it with a pointer that gets initialised on demand
27273
27274         * Makefile.am: Replace all the system-specific threading code with
27275         a single file that uses the new wrapper library
27276
27277 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
27278
27279         * class.c, class.h: add mono_install_trampoline() so that the runtime
27280         can register a function to create a trampoline: removes the ugly
27281         requirement that a runtime needed to export arch_create_jit_trampoline.
27282         * object.h, object.c: added mono_install_handler() so that the runtime
27283         can install an handler for exceptions generated in C code (with
27284         mono_raise_exception()). Added C struct for System.Delegate.
27285         * pedump.c: removed arch_create_jit_trampoline.
27286         * reflection.c: some cleanups to allow registering user strings and
27287         later getting a token for methodrefs and fieldrefs before the assembly
27288         is built.
27289         * row-indexes.h: updates and fixes from the new ECMA specs.
27290
27291 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
27292
27293         * class.h, class.c: add enum_basetype field to MonoClass.
27294         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
27295         to get index in the constant table reated to a field, param or
27296         property.
27297         * reflection.h, reflection.c: handle constructors. Set public-key and
27298         version number of the built assembly to 0.
27299         * row-indexes.h: update from new ECMA spec.
27300
27301 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27302
27303         * class.h, class.c: add a max_interface_id to MonoClass.
27304         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
27305         since it's used to do that. Added mono_type_type_from_obj().
27306         Make GetType() return NULL instead of segfaulting if the type was not
27307         found. Handle simple arrays in assQualifiedName.
27308         * object.h: add a struct to represent an Exception.
27309         * reflection.c: output call convention in method signature.
27310         Add code to support P/Invoke methods and fixed offsets for fields.
27311
27312 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
27313
27314         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
27315         the value.
27316         * icall.c: use mono_array_addr instead of array->vector: fixes the
27317         reflection image writing.
27318         * reflection.c: init call convention byte to 0 in method signature.
27319         Encode the property signature. Don't output property-related methods
27320         twice. Really process the properties for a type (don't cast a field to
27321         a property, my mom always told me that).
27322         Fix 64 bit issues in pointer alignment in a different and more
27323         readable way.
27324
27325 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
27326
27327         * loader.h: Removed type class from MonoDefaults, added monotype
27328
27329         * loader.c: Loaded MonoType, removed loading of Type
27330
27331         * icall.c (my_mono_new_object): Now returns a System.MonoType,
27332         and fills in System.Type._impl with a RuntimeTypeHandle rather
27333         than the actual MonoClass *
27334
27335         (ves_icall_type_from_handle): change from type_class to
27336         monotype_class
27337
27338         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
27339         implemented
27340
27341         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
27342         implemented
27343
27344         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
27345
27346         (ves_icall_System_Reflection_Assembly_GetType): implemented
27347
27348         (ves_icall_System_MonoType_assQualifiedName): implemented
27349
27350         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
27351
27352 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
27353
27354         * assembly.c (mono_assembly_open): Implement a cache for the
27355         assemblies. 
27356
27357         (mono_assembly_close): only destroy the assembly when the last
27358         reference is gone.
27359         
27360 2001-11-09  Dick Porter  <dick@ximian.com>
27361
27362         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
27363
27364 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
27365
27366         * class.c (mono_class_metadata_init): bug fix: compute the right slot
27367
27368 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
27369
27370         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
27371         from Martin Weindel.
27372         * object.h: add mono_string_chars ().
27373
27374 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
27375
27376         * reflection.c (build_compressed_metadata): Eliminates warnings
27377         and uses 64-bit clean code.
27378
27379         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
27380         (mono_type_equal): Change signature to eliminate warnings.
27381
27382 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
27383
27384         * icall.c, loader.c: remove the internalcall array constructors.
27385         Changes to match the new MonoArray structure.
27386         * object.h, object.c: an array object doesn't allocate an extra
27387         vector. Add mono_array_new_full () to create jagged arrays easily.
27388
27389 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
27390
27391         * metadata.h, metadata.c: add mono_metadata_field_info () to
27392         retreive all the info about a field from vairous tables.
27393         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
27394         * class.h, class.c: augment MonoClassField with more info.
27395         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
27396         policy and load a field's RVA if needed.
27397
27398 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
27399
27400         * class.c (mono_class_metadata_init): create a trampoline for all
27401         virtual functions instead of actually compiling them.
27402
27403 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
27404
27405         * class.h, class.c: include name in MonoClassField.
27406         * class.c: fix fundamental type of System.Object and System.String.
27407         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
27408         tokens in ldtoken.
27409         * icall.c: remove internalcalls for the Reflection stuff that is now
27410         done in C# code.
27411         * loader.c: mono_field_from_memberref () implementation.
27412         * mono-endian.c: thinko (s/struct/union/g).
27413         * object.c, object.h: make the mono_string_* prototypes actually use
27414         MonoString instead of MonoObject.
27415         * reflection.c, reflection.h: updates for changes in the reflection
27416         code in corlib: we use C structures that map to the actual C# classes.
27417         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
27418         fat method header if needed and use the info from the ILGenerator for
27419         methods. Handle fields in types. Misc fixes.
27420
27421 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
27422
27423         * class.c (mono_class_metadata_init): bug fix: always allocate
27424         space for static class data
27425
27426 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
27427
27428         * class.c (mono_compute_relative_numbering): use relative
27429         numbering to support fast runtime type checks.
27430
27431 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
27432
27433         * class.c (mono_class_create_from_typeref): added debugging output
27434         to print class name when MonoDummy is returned instead of real class
27435
27436 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
27437
27438         * class.c (mono_class_metadata_init): interface offset table now
27439         contains pointers into the vtable - this is more efficient for the jit
27440
27441 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
27442
27443         * class.c (mono_class_metadata_init): use a temporary vtable (the
27444         old algorithm only worked for the interpreter, but not for the jit)
27445
27446 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
27447
27448         * loader.c (method_from_memberref): use mono_class_get to get the
27449         class of an array instead of using System.Array directly.
27450         (mono_get_method): also add MEMBERREF methods to the method cache
27451         which usefull for arrays.
27452
27453 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
27454
27455         * pedump.c (arch_compile_method): added to compute vtable entry
27456
27457         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
27458         number of interfaces.
27459         
27460         * class.h: merged MonoArrayClass into MonoClass
27461
27462         * class.c (mono_class_create_from_typedef): compute the vtable size and
27463         allocate space to include the vtable inside MonoClass
27464         (mono_class_metadata_init): initialize the vtable
27465
27466 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
27467
27468         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
27469         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
27470         * image.c: endian fixes by Laurent Rioux.
27471         * object.h, object.c: rename MonoStringObject to MonoString and
27472         MonoArrayObject to MonoArray. Change some function names to conform to
27473         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
27474         guint16* as first argument, so don't use char*.
27475         Provide macros to do the interesting things on arrays in a portable way.
27476         * threads-pthread.c: updates for the API changes and #include <sched.h>
27477         (required for sched_yield()).
27478         * icall.c: updates for the API changes above.
27479         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
27480         platforms that need them.
27481
27482 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27483
27484         * class.c: set the correct type for all the fundamental
27485         type when loading the class.
27486
27487 2001-10-05  Dick Porter  <dick@ximian.com>
27488
27489         * threads-pthread.c (pthread_mutex_timedlock): Simple
27490         compatibility version for C libraries that lack this call.
27491
27492 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27493
27494         * class.c: MonoTypes stored in MonoClass are stored as
27495         fundamental MonoTypes when the class represents a
27496         fundamental type (System.Int32, ...).
27497         The TypeHandle return by ldtoken is a MonoType*.
27498         * icall.c: ves_icall_get_data_chunk () write out all the
27499         PE/COFF stuff. Implement ves_icall_define_method (),
27500         ves_icall_set_method_body (), ves_icall_type_from_handle ().
27501         * image.c: properly skip unknown streams.
27502         * loader.h, loader.c: add type_class to mono_defaults.
27503         * metadata.c, metadata.h: export compute_size () as
27504         mono_metadata_compute_size () with a better interface.
27505         Typo and C&P fixes.
27506         * pedump.c: don't try to print the entry point RVA if there is no entry point.
27507         * reflection.c, reflection.h: many cleanups, fixes, output method
27508         signatures and headers, typedef and typeref info, compress the metadata
27509         tables, output all the heap streams, cli header etc.
27510         * row-indexes.h: typo fixes.
27511
27512 2001-10-04  Dick Porter  <dick@ximian.com>
27513
27514         * object.h: Add a synchronisation mutex struct to MonoObject
27515
27516         * object.c (mono_new_object): Initialise the object
27517         synchronisation mutexes
27518
27519         * icall.c: System.Threading.Monitor internal calls
27520         
27521         * threads-pthread.h:
27522         * threads-pthread.c: System.Threading.Monitor internal calls
27523
27524         * threads-types.h: New file, includes the system-specific thread
27525         structures
27526         
27527         * threads-pthread-types.h:
27528         * threads-pthread-types.c: New files, handle pthread-specific
27529         synchronisation types
27530
27531         * threads-dummy-types.h: 
27532         * threads-dummy-types.c: New files of dummy support for
27533         thread-specific types
27534
27535         * metadata.c:
27536         * image.c:
27537         * pedump.c: include mono-endian.h not endian.h
27538         
27539         * Makefile.am: More threads files.
27540         Name mono-endian.h not endian.h
27541
27542 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
27543
27544         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
27545         stuff and implement a few more bits.
27546         * icall.c: a field needs to be dereferenced twice. Do not use the same
27547         name for two variables in the same scope.
27548         * image.c, image.h: cleanups.
27549
27550 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
27551
27552         * class.c (mono_class_metadata_init): bug fix: compute the right size
27553
27554 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
27555
27556         * icall.c: implemented some of the Reflection internalcalls.
27557         * image.c, image.h: start writing out the PE/COFF image.
27558         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
27559         that does the reverse than decode_blob_size ().
27560         * object.c: use mono_metadata_encode_value (). Move here
27561         temporary implementation of mono_string_to_utf8 ().
27562         * rawbuffer.c: make malloc_map static.
27563
27564 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27565
27566         * metadata.c: fix type comparison for arrays.
27567         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
27568         Added a couple of new classes to monodefaults.
27569         * icall.c: added a couple of Reflection-related internalcalls.
27570         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
27571         Added a byval_arg MonoType to MonoClass.
27572
27573 2001-09-28  Dick Porter  <dick@ximian.com>
27574
27575         * icall.c:
27576         * threads-pthread.h: 
27577         * threads-pthread.c: Implemented internal calls for
27578         LocalDataStoreSlot operations.  Applied mutexes around all shared
27579         data.  Reworked the thread creation and Start() operations to
27580         avoid a race condition.
27581         
27582         * threads-dummy.h:
27583         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
27584
27585 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
27586
27587         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
27588
27589 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
27590
27591         * class.c, loader.c: warn and return NULL instead of erroring out.
27592         * icall.c: added System.AppDomain::getCurDomain().
27593         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
27594
27595 2001-09-25  Dick Porter  <dick@ximian.com>
27596
27597         * threads-pthread.h:
27598         * threads-pthread.c: Implemented timed thread joining and added
27599         System.Threading.Thread::Join_internal internal call
27600
27601         * icall.c: Added System.Threading.Thread::Join_internal internal call
27602
27603         * threads-dummy.h:
27604         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
27605
27606 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
27607
27608         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
27609         mono_string_intern () to implement the semantics of the ldstr opcode
27610         and the interning of System.Strings.
27611         * icall.c: provide hooks to make String::IsIntern and String::Intern
27612         internalcalls.
27613
27614 2001-09-23  Dick Porter  <dick@ximian.com>
27615
27616         * threads-dummy.c: 
27617         * threads-dummy.h: New files of dummy threading routines
27618
27619         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
27620         support code based on system specifics
27621
27622         Rename PTHREAD_LIBS to THREAD_LIBS
27623         
27624 2001-09-23  Dick Porter  <dick@ximian.com>
27625
27626         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
27627         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
27628         internal calls.
27629         (mono_thread_init): Set up a Thread object instance to return when
27630         the main thread calls Thread.CurrentThread
27631         (mono_thread_cleanup): Wait for all subthreads to exit
27632
27633         * icall.c: New internal calls for System.Threading.Thread::Sleep
27634         (including Schedule) and CurrentThread
27635
27636         * threads.h: New file, to insulate thread-specific stuff from the
27637         rest of the code
27638
27639 2001-09-21  Dick Porter  <dick@ximian.com>
27640
27641         * threads-pthread.h: 
27642         * threads-pthread.c: New file, for handling pthreads-style
27643         threading support.  Start() now starts a new thread and executes
27644         the ThreadStart delegate instance.
27645
27646         * icall.c: Added the internalcall for
27647         System.Threading.Thread::Start_internal
27648
27649         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
27650
27651 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
27652
27653         * loader.c: work around the different signatures for delegates
27654         constructors csc generates in compiled code vs the ones compiled in mscorlib.
27655
27656 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
27657
27658         * class.h, class.c: add mono_class_get_field_from_name ().
27659         * *: Fix C comments and other ANSI C issues.
27660
27661 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
27662
27663         * endian.h, assembly.c: fix some endianness issues.
27664
27665 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
27666
27667         * loader.h, load.c: add delegate_class to mono_defaults.
27668         Handle runtime provided methods in mono_get_method ().
27669
27670 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
27671
27672         * loader.c (mono_get_method): use pinvoke for internal call
27673
27674         * icall.c: use pinvoke for internal call
27675
27676         * loader.c (method_from_memberref): set the method name
27677
27678 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
27679
27680         * metadata.c: help the compiler generate better code for
27681         mono_class_from_mono_type ().
27682
27683 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
27684
27685         * class.c (mono_class_metadata_init): delayed computing of the
27686         class size to mono_class_metadata_init ()
27687
27688 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
27689
27690         * class.c, class.h: add an interfaces member to MonoClass.
27691         * image.c, image.h: add assembly_name field to MonoImage
27692         from the assembly table.
27693         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
27694
27695 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
27696
27697         * class.c: Handle Array in mono_class_from_mono_type ().
27698         * metadata.c, pedump.c: some endian fixes.
27699
27700 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
27701
27702         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
27703         * metadata.c: fix small problem introduced with the latest commit.
27704
27705 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
27706
27707         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
27708         We don't need a MonoMetadata pointer anymore to compare signatures in
27709         mono_metadata_signature_equal (), update callers.
27710         Reduced memory usage an number of allocations for MonoMethodHeader and
27711         MonoMethodSignature.
27712
27713 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
27714
27715         * metadata.c: added compare for szarray.
27716
27717 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
27718
27719         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
27720         and add a couple more types to it and mono_defaults. Give an hint on
27721         classes that need implementing in our corlib and are referenced
27722         in mscorlib.
27723
27724 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
27725
27726         * class.h, class.c: keep track if a class is also an Enum.
27727         * loader.c: Implement a couple more types for use in libffi
27728         marshalling. Gives better diagnostics when failing to dlopen
27729         a library. Set method->klass for P/Invoke methods, too.
27730
27731 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
27732
27733         * class.c, class.h: add a MonoType this_arg to MonoClass that
27734         represents a pointer to an object of the class' type that
27735         can be used by the interpreter and later the type cache.
27736         Add best guess alignment info for valuetype objects.
27737
27738 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
27739
27740         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
27741         into MonoType: one less level of indirection and allocation and
27742         simplifies quite a bit of code. Added cache for MonoTypes that are
27743         used frequently, so that we don't need to allocate them all the time.
27744
27745 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
27746
27747         * class.c (mono_class_create_from_typedef): System.Enum is also a
27748         value type, although it does not derive from System.ValueType
27749         (maybe a bug in the ms compiler?)
27750
27751         * metadata.c (mono_type_size): return the right size for value types
27752
27753         * loader.c (mono_get_method): only initialize method header if not abstract
27754
27755         * class.c (mono_class_from_mono_type): use mono_default values. 
27756
27757 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
27758
27759         * *: use MonoClass pointers instead of <type_tokens>
27760         
27761         * class.h: new flag: metadata_inited.
27762
27763         * class.c (mono_class_metadata_init): impl.
27764         (mono_class_instance_size): impl.
27765         (mono_class_data_size): impl.
27766
27767 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
27768
27769         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
27770         MonoClass now has the name and name_space fields. 
27771         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
27772         mono_get_method () takes and optional MonoClass as argument.
27773         Removed mono_typedef_from_name() and added mono_class_token_from_name()
27774         instead that takes advantage of a map from class names to typedef
27775         tokens in MonoImage.
27776
27777 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
27778
27779         * metadata.c: zero is not a valid alignment boundary.
27780         Merge MONO_TYPE_VOID in default decoding code.
27781
27782 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
27783
27784         * image.h: merged MonoMetadata into MonoImage
27785
27786         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
27787         identify the type of elements.
27788
27789 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
27790
27791         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
27792         * cil-coff.h: split MonoMSDOSHeader and add size info.
27793         * image.c: add some consistency checks.
27794         * metadata.c: fix row size computation: one programmer
27795         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
27796         add explanation for the locator routine.
27797         Fix decoding of size in method header.
27798         
27799 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
27800
27801         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
27802         (g_concat_dir_and_file): Bring g_concat_dir_and_file
27803         function from gnome-libs.  This uses the right path separator
27804         based on the OS, and also works around a bug in some systems where
27805         a double slash is not allowed. 
27806         (default_assembly_name_resolver): Use g_concat_dir_and_file
27807         (mono_assembly_open): ditto.
27808
27809 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
27810
27811         * metadata.c (mono_metadata_signature_equal): impl.
27812
27813         * *: void is now a realy MonoType (instead of using NULL)
27814         
27815         * metadata.c (do_mono_metadata_parse_type): use
27816         mono_metadata_parse_type to parse void value.
27817
27818 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
27819
27820         * metadata.c, metadata.h: in the signature and method header store
27821         only the space required for holding the loca vars and incoming arguments.
27822
27823 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
27824
27825         * metadata.c (do_mono_metadata_parse_type): treat void like any
27826         other type (instead of assigning NULL);
27827
27828 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
27829
27830         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
27831
27832 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
27833
27834         * image.c (do_mono_image_open): added a cache for arrays.
27835
27836 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
27837
27838         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
27839         decode a single column from a row in a metadata table and changes
27840         to take advantage of it in the typedef locator (gives a nice speed up).
27841         Store offset info for function params.
27842
27843 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
27844
27845         * image.h (MONO_IMAGE_IS_CORLIB): removed 
27846
27847 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
27848
27849         * assembly.c: how could mono_assembly_close () had ever worked?
27850         * metadata.c, metadata.h: provide offset info for local vars.
27851         Implement mono_type_size () to take care of alignment as well
27852         as size (it was mono_field_type_size in cli/class.c before).
27853
27854 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
27855
27856         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
27857
27858         * assembly.h (CORLIB_NAME): set to corlib.dll
27859
27860         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
27861
27862 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
27863
27864         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
27865         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
27866         tokentype.h: massive namespace cleanup.
27867
27868 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
27869
27870         * metadata.h, metadata.c: decode exception clauses when parsing method header.
27871
27872 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
27873
27874         * metadata.c (mono_metadata_free_type): added check for type !=
27875         NULL (void) before calling mono_metadata_free_type()
27876
27877 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
27878
27879         * metadata.h, row_indexes.h: added header with enumerations to use
27880         to index in the columns from tables in metadata and to decode coded
27881         tokens: we should start using this instead of embedding magic numbers
27882         all over the code.
27883
27884 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
27885
27886         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
27887         Move metadata_t info from cli_image_info_t to MonoImage, where
27888         it's easily accessible. Changed all the uses accordingly.
27889         Added the method and class caches to MonoImage.
27890         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
27891         and mono_metadata_decode_value () signature to be more consistent
27892         with the other parse functions (and simplify code). Taken advantage
27893         of zero-length array allocation with GCC. Removed reduntant (and
27894         wrong) MonoFieldType struct and use MonoParam instead. Changed
27895         mono_metadata_parse_field_type () to use common code for parsing.
27896         Added mono_metadata_typedef_from_field () and
27897         mono_metadata_typedef_from_method () to lookup a typedef index from a
27898         field or method token.
27899         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
27900
27901 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
27902
27903         * metadata.c (mono_metadata_parse_field_type): Implement. 
27904         (do_mono_metadata_parse_type): Split engine from
27905         mono_metadata_parse_type, so that we can create smaller structures
27906         for things that just have one pointer to the MonoType (look at
27907         the MonoFieldType)
27908
27909 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
27910
27911         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
27912         as Jan Gray found out, it is incorrect. 
27913
27914 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
27915
27916         * assembly.c: Implement asssembly loading.  This loads an image
27917         and loads all the referenced assemblies.  Come to think of it, we
27918         could always do lazy loading of the assemblies. 
27919
27920         * image.c (mono_image_open): Keep loaded images in a hashtable.
27921
27922         * image.h (MonoImage): Add reference count.
27923
27924 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
27925
27926         * assembly.c (mono_assembly_open): Keep track of the file name in
27927         case the assembly has no ASSEMBLY table.
27928
27929         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
27930         from get.c here.
27931
27932 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
27933
27934         * metadata.c, metadata.h: decode local vars in method header
27935         parse function. Change callers accordingly.
27936
27937 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
27938
27939         * metadata.h, cil-coff.h: protect against multiple inclusion.
27940         Added some new structures to hold information decoded from metadata:
27941         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
27942         and relevant decoding/free functions.
27943         * metadata.c: implement decoding functions. Add warning for out of bounds
27944         index in mono_metadata_locate(). Implement mono_get_method () to retreive
27945         all the info about a method signature and invocation. Remove check on
27946         uninitialized local var in parse_mh() and fix memory leak.
27947
27948 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
27949
27950         * metadata.h: More macros.
27951
27952         * tokentype.h: New file.
27953
27954 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
27955
27956         * assembly.c: added a consistency check and initialize
27957         some structures with g_new0().
27958         * metadata.c: fixed a couple more bugs in table size computation
27959         and add other checks for out-of bound access to metadata.
27960
27961 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
27962
27963         * metatada.c: fix bugs computing table sizes. Spew a
27964         warning when index in string heap is out of bounds.
27965
27966 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
27967
27968         * metadata.h: Add a couple of macros to manipulate tokens. 
27969
27970 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
27971
27972         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
27973         cli_section_tables).
27974
27975 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
27976
27977         * metadata.c (mono_metadata_user_string): New function, provides
27978         access to the UserString heap. 
27979
27980 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
27981
27982         * metadata.c: Add inline documentation.
27983
27984 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
27985
27986         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
27987         files. 
27988
27989 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
27990
27991         * typeattr.h: New file, TypeAttribute flags. 
27992
27993 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
27994
27995         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
27996         mono_assembly_ensure_section): Section loading code.
27997         (load_section_tables): Load the sections.
27998
27999         * mono/metadata/metadata.c (mono_metadata_locate_token,
28000         mono_metadata_locate): Functions to locate the information
28001         definition given a token or a table and an index.
28002         (mono_metadata_compute_table_bases): New.
28003         (compute_size): New function to compute the sizes of the various
28004         tables.
28005
28006         * mono/metadata/metadata.h: Finish listing the different index
28007         types. 
28008
28009         * mono/metadata/pedump.c: Improve to dump new information.
28010
28011 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
28012
28013         * mono/metadata/metadata.c: Entered all the tables matching
28014         Beta2. 
28015
28016         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
28017
28018
28019