2009-02-02 Zoltan Varga <vargaz@gmail.com>
[mono.git] / mono / metadata / ChangeLog
1 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
2
3         * mono-debug.c (mono_debug_print_stack_frame): Avoid crashes when this is
4         called while the debugging module is not initialized. Fixes #471669.
5
6 2009-02-02 Rodrigo Kumpera  <rkumpera@novell.com>
7
8         * icall.c (type_from_name): Ignore reflection frames to find out the real caller.
9
10         Fixes #471255.
11
12 2009-02-02  Mark Probst  <mark.probst@gmail.com>
13
14         * generic-sharing.c (lookup_or_register_other_info): Make sure the
15         loader lock is not taken while the templates lock is held.  Fixes
16         #471089.
17
18 2009-02-02  Mark Probst  <mark.probst@gmail.com>
19
20         * metadata.c (type_in_image): Added a check to fix a monodis
21         crash.
22
23 2009-02-02  Zoltan Varga  <vargaz@gmail.com>
24
25         * marshal.c (mono_marshal_get_runtime_invoke): Add support for byref
26         nullable arguments.
27
28         * object.c (mono_runtime_invoke_array): Ditto.
29         
30         * marshal.c (mono_marshal_free_dynamic_wrappers): New function for
31         freeing wrappers of dynamic methods.
32
33         * loader.c (mono_free_method): Call it. Fixes #463323.
34         
35         * marshal.c (mono_marshal_get_runtime_invoke): Disable sharing for
36         methods taking vtype/byref arguments, to fix yet another bug caused by
37         the sharing of runtime invoke wrappers. Partly fixes #471259.
38
39 2009-02-01  Zoltan Varga  <vargaz@gmail.com>
40
41         * debug-mono-symfile.c (check_line): Return NULL instead of returning
42         <first file in file table>:1 when the IL offset does not have an associated
43         line number.
44
45 2009-01-31  Zoltan Varga  <vargaz@gmail.com>
46
47         * mono-debug.c (mono_debug_lookup_locals): New function to return local
48         variable info for a method.
49
50         * debug-mono-symfile.c (mono_debug_symfile_lookup_locals): Ditto.
51         
52 2009-01-30  Jb Evain  <jbevain@novell.com>
53
54         * pedump.c: reuse code from monodis to make sure pedump honors
55         MONO_PATH, which is needed to verify net_2_1 assemblies.
56
57 2009-01-29  Zoltan Varga  <vargaz@gmail.com>
58
59         * mono-debug.c (mono_debug_print_stack_frame): Print the IL offset even when
60         there is no line number info.
61
62 2009-01-29  Raja R Harinath  <harinath@hurrynot.org>
63
64         Avoid some MonoType allocations
65         * reflection.c (mono_reflection_initialize_generic_parameter):
66         Reuse MonoType from param->pklass rather than allocating one.
67         (mono_dynamic_image_free): Update to changes.
68
69 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
70
71         Rearrange some code to improve consistency
72         * reflection.c (mono_reflection_setup_generic_class): Move body ...
73         (mono_reflection_initialize_generic_parameter): ... here.
74
75 2009-01-28  Zoltan Varga  <vargaz@gmail.com>
76
77         * generic-sharing.c (has_constraints): Enable gshared for methods/classes
78         with type constraints as an experiment.
79
80         * boehm-gc.c (on_gc_notification): Update mono_stats.
81
82 2009-01-28  Raja R Harinath  <harinath@hurrynot.org>
83
84         Avoid some allocations
85         * class-internals.h (_MonoGenericInst::type_argv): Convert from
86         pointer to tail array to avoid extra allocation.
87         * metadata.c (free_generic_inst): Update to changes.
88         (mono_metadata_get_generic_inst): Likewise.  Use alloca instead of
89         on-stack struct.
90
91 2009-01-27  Zoltan Varga  <vargaz@gmail.com>
92
93         * icall.c (ves_icall_System_Type_EqualsInternal): For user-defined types,
94         return TRUE if the two type objects are the same.
95
96 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
97
98         * marshal.c (mono_marshal_load_type_info): Fill out info->min_align.
99         (mono_class_native_size): Use klass->marshal_info->min_align instead of
100         klass->min_align, since klass->min_align contains the managed alignment,
101         while the native alignment can be different, like for longs on x86.
102         Fixes #469135.
103
104         * class-internals.h (MonoMarshalType): Add a min_align field.
105
106 2009-01-26 Rodrigo Kumpera  <rkumpera@novell.com>
107
108         * assembly.c (mono_assembly_try_decode_skip_verification): Add a hack to check
109         the 1.0 format.
110
111 2009-01-26  Zoltan Varga  <vargaz@gmail.com>
112
113         * domain-internals.h (struct _MonoJitInfo): Add a 'from_aot' field plus
114         some comments about the usage of the used_regs field.
115
116         * marshal.c (emit_marshal_ptr): Allow pointers to blittable structures.
117         Fixes #469217.
118
119 2009-01-24 Gonzalo Paniagua Javier <gonzalo@novell.com>
120
121         * appdomain.c: return NULL instead of throwing FileNotFoundException
122         when LoadAssembly() fails.
123
124 2009-01-23  Mark Probst  <mark.probst@gmail.com>
125
126         * metadata.c (mono_metadata_generic_param_equal): Only compare the
127         image if the owner is NULL.  Fixes the AOT failures.
128
129 2009-01-23  Zoltan Varga  <vargaz@gmail.com>
130
131         * metadata.c (mono_metadata_load_generic_params): Initialize the 
132         MonoGenericParam structure using memset so the image field is initialized
133         as well.
134
135 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
136
137         * appdomain.c (mono_domain_unload): Change the InterlockedIncrement to
138         a plain store.
139
140 2009-01-21  Zoltan Varga  <vargaz@gmail.com>
141
142         * class.c (mono_class_setup_vtable_general): In the generic instance
143         optimization, set method->slot for abstract virtual methods. Fixes part of
144         #467834.
145
146 2009-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
147
148         * domain-internals.h: Add new appdomain state MONO_APPDOMAIN_UNLOADING_START
149         which signals that the unloading has started but all appdomain services must
150         remain operational.
151
152         * appdomain.c (mono_domain_unload): The initial state for unloading now
153         is unloading_start and we switch to unloading after the managed call to
154         AppDomain::DomainUnload has finished.
155
156         The new unloading state has to be created because managed code in the
157         DomainUnload event can depend on things like the threadpool still working.
158         The domain must remain fully functional while the event executes.
159
160         This shown as an issue due to Process::WaitForExit, which waits for
161         async reads of stdout and stderr to complete. Since those are processed
162         in the threadpool the code deadlocks because the DomainUnload callback 
163         waits for the async read finished event, which should have been set by a
164         threadpool job but has been discarded due to the domain been in unload
165         state.
166
167 2009-01-21  Mark Probst  <mark.probst@gmail.com>
168
169         * metadata.c (mono_metadata_generic_param_equal): Owner as well as
170         image must match.
171
172 2009-01-21  Mark Probst  <mark.probst@gmail.com>
173
174         * reflection.c (resolve_object): For fields, inflate the class and
175         then get the field in the inflated class.
176
177 2009-01-20  Mark Probst  <mark.probst@gmail.com>
178
179         * object-internals.h (struct _MonoException): Added a comment
180         explaining the new use of trace_ips.
181
182 2009-01-20  Mark Probst  <mark.probst@gmail.com>
183
184         * generic-sharing.c (inflate_other_data): Inflate array methods
185         correctly.
186
187         * loader.c, class-internals.h: Rename search_in_array_class() to
188         mono_method_search_in_array_class() and make it non-static.
189
190 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
191
192         * metadata.c (inflated_signature_in_image): Call signature_in_image as well.
193         Hopefully fixes #458168.
194
195 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
196
197         * object.c (mono_raise_exception): Remove call to InterlockedIncrement
198         as it is performed elsewhere.
199
200         Code is contributed under MIT/X11 license
201
202 2009-01-19  Christian Hergert  <christian.hergert@gmail.com>
203
204         * mono-perfcounters-def.h: Add counters for asp.net requests total and
205         requests queued.
206         * object.c (mono_raise_exception): Increment the exceptions total
207         counter when an exception is thrown.
208         * class-internals.h: Add a location for storing the total number of
209         asp.net requests served.
210         * mono-perfcounters.c: Implement update support for asp.net counters
211         from the class libraries. Implement read support for asp.net counters
212         and exceptions total counter.
213
214 2009-01-19  Zoltan Varga  <vargaz@gmail.com>
215
216         * loader.c (search_in_array_class): Call mono_class_setup_methods () before
217         accessing klass->methods. Fixes #467385.
218
219 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
220
221         * marshal.c (emit_marshal_custom): Avoid calling MarshalNativeToManaged
222         for byval arguments without an [Out] attribute. Fixes #467212.
223
224         * attach.c: Applied patch from Koushik Dutta (koush@koushikdutta.com). 
225         Fix compilation under android.
226         
227         * sgen-gc.c: Instead of scanning gray objects after all roots have been 
228         processed, scan them directly after they are copied, to achieve better locality
229         and cache usage.
230
231         * socket-io.c: Applied patch from Koushik Dutta
232         (koush@koushikdutta.com). Disable IPV6 when running under android.
233
234 2009-01-18  Zoltan Varga  <vargaz@gmail.com>
235
236         * icall.c (ves_icall_InternalExecute): Add write barriers.
237
238         * marshal.c (mono_marshal_get_write_barrier): Remove, this is now done in
239         the GC code.
240
241         * sgen-gc.c: Implement write barriers in IL code.
242
243 2009-01-17  Geoff Norton  <gnorton@novell.com>
244
245         * image.c: Avoid trying to walk the reference table of dynamic assemblies.
246
247 2009-01-17  Geoff Norton  <gnorton@novell.com>
248
249         * image.c: When unloading the image->references table, there can be gaps
250         in it.  Ensure that we iterate every entry to avoid leaking assembly references
251         when unloading an appdomain.
252
253 2009-01-16  Zoltan Varga  <vargaz@gmail.com>
254
255         * sgen-gc.c: Add support for allocating a nursery at an aligned address, to
256         speed up ptr-in-nursery checks.
257
258         * threads.c (mono_threads_abort_appdomain_threads): Abort threads outside the
259         threads_lock () to prevent deadlocks.
260
261         * sgen-gc.c gc-internal.h: Add a new root type root-with-wbarrier, which
262         does not need to be scanned during minor collections, since writes to it
263         must use write barriers.
264
265 2009-01-15 Rodrigo Kumpera  <rkumpera@novell.com>
266
267         * metadata-verify.c: Add pe nt header verification.
268         
269 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
270
271         * gc.c: Fix a few warnings when using SGEN.
272
273 2009-01-14 Rodrigo Kumpera  <rkumpera@novell.com>
274
275         * metadata-verify.c: Add pe optional header verification.
276
277 2009-01-15  Zoltan Varga  <vargaz@gmail.com>
278
279         * sgen-gc.c: Add support for user defined marker functions, used by
280         MonoGHashTable to avoid registering a GC root for every hash node.
281
282 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
283
284         * sgen-gc.c: Fix warnings. Optimize copy_object () a bit. Split pinned/
285         non-pinned roots into separate hashes to avoid having to traverse them
286         in functions which are only interested in one kind.
287
288 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
289
290         * metadata-verify.c: Add pe header machine field verification.
291         
292 2009-01-13 Rodrigo Kumpera  <rkumpera@novell.com>
293
294         * metadata-verify.c: Add pe header size verification.
295
296 2009-01-14  Zoltan Varga  <vargaz@gmail.com>
297
298         * reflection.c (ALLOC_REFENTRY): Don't allocate the ReflectionEntry structures
299         using the GC, they don't contain references.
300
301         * domain.c (mono_domain_create): Create ldstr_table using MONO_HASH_KEY_VALUE_GC.
302
303 2009-01-13  Geoff Norton  <gnorton@novell.com>
304
305         * appdomain.c|h: Expose mono_domain_unload to the embedding api so that 
306         AppDomains created on the native side can be cleaned up on the native side.
307
308 2009-01-13  Geoff Norton  <gnorton@novell.com>
309
310         * appdomain.c: Ensure that we call mono_context_init for the embedding api
311         as well as the managed api.
312
313 2009-01-13  Geoff Norton  <gnorton@novell.com>
314
315         * appdomain.h|c: New API for creating a MonoDomain in the embedding api
316         with a MonoAppDomain initialized against it.
317
318 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
319
320         * reflection.c (MOVING_GC_REGISTER): Fix a warning.
321         
322         * reflection.c (mono_image_get_generic_param_info): Use MOVING_GC_REGISTER.
323
324         * marshal.c: Avoid setting the exception clauses after a method has been entered 
325         into the wrapper caches. Fixes #465700.
326
327         * method-builder.c (mono_mb_set_clauses): New function to set the clauses of the
328         method builder.
329         (mono_mb_create_method): Set the clauses from the method builder.
330
331 2009-01-13 Gonzalo Paniagua Javier <gonzalo@novell.com>
332
333         * threadpool.c: include sys/socket.h. Fixes compilation on FreeBSD.
334         Patch from Makoto Kishimoto.
335
336 2009-01-13  Zoltan Varga  <vargaz@gmail.com>
337
338         * sgen-gc.c (mono_gc_make_descr_from_bitmap): Handle large bitmaps by 
339         encoding them as ROOT_DESC_COMPLEX.
340         (precisely_scan_objects_from): Implement support for ROOT_DESC_COMPLEX.
341
342 2009-01-12  Zoltan Varga  <vargaz@gmail.com>
343
344         * sgen-gc.c (scan_from_remsets): Clear the global remset of pointers which
345         no longer point to the nursery.
346
347         * sgen-gc.c: Add a few comments/FIXMEs.
348         
349         * sgen-gc.c: Implement scanning of the alloc_pinned objects.
350
351         * marshal.c (mono_marshal_get_synchronized_wrapper): Make the 
352         initialization of the various _method variables thread safe. Fixes
353         #465377.
354
355 2009-01-12  Mark Probst  <mark.probst@gmail.com>
356
357         * domain.c, domain-internals.h: Remove the shared_generics_hash
358         and its lookup functions.
359
360 2009-01-12  Bill Holmes  <billholmes54@gmail.com>
361
362         * socket-io.c:  Fixing the MSVC build. 
363
364         Code is contributed under MIT/X11 license.
365
366 2009-01-12 Rodrigo Kumpera  <rkumpera@novell.com>
367
368         * metadata-verify.c: Add pe header watermark verification.
369
370 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
371
372         * metadata-verify.c: Add lfanew verification.
373
374 2009-01-12  Jb Evain  <jbevain@novell.com>
375
376         * tabldefs.h: rename METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE to
377         METHOD_ATTRIBUTE_STRICT to match the ECMA terminology.
378
379 2009-01-10  Zoltan Varga  <vargaz@gmail.com>
380
381         * socket-io.c: Fix the build.
382
383         * environment.c: Fix an #ifdef.
384
385 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
386
387         * threadpool.c (async_invoke_thread): Handle the wait function returning
388         WAIT_IO_COMPLETION as well.
389         (async_invoke_io_thread): Ditto.
390
391 2009-01-09  Bill Holmes  <billholmes54@gmail.com>
392
393         * threads.c: Fixing the Windows build.
394
395         Code is contributed under MIT/X11 license.
396
397 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
398  
399         * threads.c (signal_thread_state_change): Call wapi_interrupt_thread () to
400         interrupt a wait.
401         (mono_thread_execute_interruption): Call wapi_clear_interruption () to enable
402         the thread to wait again.
403
404 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
405
406         * metadata-verify.c: Initial skeleton of the metadata verifier.
407
408         * pedump.c: Add support for the metadata verifier.
409
410         * verify-internal.h: Export the whole assembly metadata verifier function.
411
412 2009-01-09 Rodrigo Kumpera  <rkumpera@novell.com>
413
414         * gc.c (mono_gc_init): Fix the comments about deadlock on windows.
415
416 2009-01-09  Zoltan Varga  <vargaz@gmail.com>
417
418         * Makefile.am: Upgrade dtrace-prelink.sh location.
419
420 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
421
422         * gc.c (mono_gc_init): Wait for finalizer thread to init on windows as
423         well. Otherwise the shutdown deadlock that happens on unix will can happen
424         as well.
425         If the main thread code finishes too fast it's possible that the finalizer
426         thread won't have executed yet, won't record itself as the finalizer thread
427         and the shutdown sequence will wait on it forever.
428
429 2009-01-08 Rodrigo Kumpera  <rkumpera@novell.com>
430
431         * threads.c (mono_thread_current): Make THREAD_DEBUG work on windows
432         with MSVC.
433
434 2009-01-08  Miguel de Icaza  <miguel@novell.com>
435
436         * appdomain.c: Initialize the mono_strtod_mutex here, thanks to
437         Robert Jordan for pointing this out.
438
439 2009-01-08  Christian Prochnow  <cproch@seculogix.de>
440
441         * icall.c
442         * icall-def.h: added internal calls ves_icall_System_IO_DriveInfo_GetDiskFreeSpace,
443         ves_icall_System_IO_DriveInfo_GetDriveType.
444
445 2009-01-07  Miguel de Icaza  <miguel@novell.com>
446
447         * icall.c: Wrap calls to mono_strtod in CriticalSection
448         invocations when using eglib, to work around #464316.
449
450 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
451
452         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Double check the
453         return value of GetCurrentDirectory to never access unitialized memory.
454
455 2009-01-07 Rodrigo Kumpera  <rkumpera@novell.com>
456
457         * file-io.c (ves_icall_System_IO_MonoIO_GetCurrentDirectory): Properly check the
458         return value of GetCurrentDirectory and expand the buffer if needed.
459
460         Fixes #459094.
461
462 2009-10-07 Tom Hindle  <tom_hindle@sil.org>
463
464         * marshal.c (GetIUnknownForObjectInternal, GetIUnknownForObjectInternal) : 
465           Adding a call to mono_init_com_types.
466
467         Code is contributed under MIT/X11 license.
468
469 2009-01-07  Geoff Norton  <gnorton@novell.com>
470
471         * socket-io.c: ioctlsocket(FIONREAD) returns the size of the UDP header as well on 
472         darwin.  Use getsockopt SO_NREAD instead to get the right values for TCP and UDP.
473         ai_canonname can be null in some cases on darwin, where the runtime assumes it will 
474         be the value of the ip buffer.
475
476 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
477
478         * verify.c (mono_class_interface_implements_interface): Verify parents as we can't rely on
479         interfaces_packed here.
480
481         Fixes part of #463294.
482
483 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
484
485         * verify.c (is_array_type_compatible): Ignore bounds and sizes when checking array compatibility.
486
487         Fixes part of #463294.
488
489 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
490
491         * verify.c (stack_slot_is_complex_type_not_reference_type): Check if the type
492         is a boxed complex as well.
493
494         Fixes part of #463294.
495
496 2009-01-06 Rodrigo Kumpera  <rkumpera@novell.com>
497
498         * reflection.c (mono_image_get_methodref_token): Add an extra create_typespec parameter to
499         control if a methodspec should be created for the generic method definition from external assemblies.
500         Caching of methodspec is done using the handleref hash table.
501
502         Fixes #462592.
503
504 2009-01-05 Rodrigo Kumpera  <rkumpera@novell.com>
505
506         * loader.c (find_method): When searching the interfaces of a class
507         check the transitive closure of implemented interfaces.
508
509         Fixes #463303.
510
511 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
512
513         * class.c (get_implicit_generic_array_interfaces): Improve debugging code.
514         
515 2009-01-03 Rodrigo Kumpera  <rkumpera@novell.com>
516
517         * class.c (get_implicit_generic_array_interfaces): Extract valuetype
518         interfaces calculation to fill_valuetype_array_derived_types.
519
520         * class.c (get_implicit_generic_array_interfaces): Valuetypes need IList /
521         ICollection / IEnumerator interfaces for their extra twin type - sbyte for byte
522         for example.
523
524         * class.c (get_implicit_generic_array_interfaces): InternalEnumerator gets
525         interfaces for valuetypes if needed.    
526
527         * class.c (fill_valuetype_array_derived_types): Enums should have interfaces
528         for their basetype as well. Types are array expanded if rank is > 0.
529
530         Fixes #400716.
531
532 2008-12-30  Bill Holmes  <billholmes54@gmail.com>
533
534         * socket-io.h : Changing the signature of
535           ves_icall_System_Net_Sockets_Socket_Accept_internal to pass
536           the blocking state.
537
538         * icall-def.h :  Changing the signature of
539           System.Net.Sockets.Socket.Accept_internal to pass the blocking state.
540
541         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Accept_internal) :
542           For Windows only.  Avoid blocking when calling accept by
543           querying for a connection via select.  The loop also queries
544           the thread state every 1000 micro seconds for the thread
545           stop state.  This will avoid the process hanging on shutdown
546           when using a TcpChannel that is never connected to.
547
548         Code is contributed under MIT/X11 license.
549
550 2008-12-30  Marek Safar  <marek.safar@gmail.com>
551
552         * tabledefs.h: Add METHOD_ATTRIBUTE_CHECK_ACCESS_ON_OVERRIDE.
553
554 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
555
556         * class.c (get_implicit_generic_array_interfaces): Extract common
557         code to a helper function making it a lot easier on the eyes.
558
559 2008-12-26 Rodrigo Kumpera  <rkumpera@novell.com>
560
561         * class.c (get_implicit_generic_array_interfaces): If the internal
562         enumerator is an interface inflate System.Object instead of itself.
563
564         Fixes #461261.
565
566 2008-12-24 Rodrigo Kumpera  <rkumpera@novell.com>
567
568         * object.c (mono_runtime_invoke_array): Don't assert with
569         byref nullable types.
570
571         * marshal.c (mono_marshal_get_runtime_invoke): To handle
572         byref nullables we unbox the object and store it on the
573         stack. 
574         We can't use the boxed object since it is the T of Nullable<T>
575         and the boxed representation of a nullable it's underlying type
576         or null.
577         We could cheat and create a boxed nullable and use the same
578         machinery of other byref VTs but this feels like a hack and
579         using the stack has the bonus of reducing heap pressure.
580
581         Fixes #461941.
582
583 2008-12-23 Rodrigo Kumpera  <rkumpera@novell.com>
584
585         * marshal.c (mono_marshal_emit_managed_wrapper): Handle char
586         return value.
587
588         Fixes #461867.
589
590 2008-12-19  Bill Holmes  <billholmes54@gmail.com>
591
592         * icall-def.h : Adding an internal call definition for 
593           System.Environment.internalBroadcastSettingChange.
594
595         * icall.c : Adding a Windows only implementation to broadcast a 
596           WM_SETTINGCHANGE when an environment variable has changed.
597
598         Code is contributed under MIT/X11 license.
599
600 2008-12-19  Mark Probst  <mark.probst@gmail.com>
601
602         * class.c, class-internals.h: Made
603         mono_class_has_parent_and_ignore_generics() non-static.
604
605 Thu Dec 18 16:35:22 CET 2008 Paolo Molaro <lupus@ximian.com>
606
607         * image.c: deal with the mmap failing when loading an image.
608
609 2008-12-17  Geoff Norton  <gnorton@novell.com>
610
611         * threadpool.c: Ensure that the io_queue_lock is initialized
612         in all circumstances, as we always attempt to cleanup against it.
613
614 2008-12-17  Miguel de Icaza  <miguel@novell.com>
615
616         * icall.c (ves_icall_System_Environment_get_Platform): For
617         compatibility reasons for existing client code we will keep
618         returning 4 for a while.   
619
620         For how long will depend on the documentation being updated, and
621         for us to give client code a chance to be updated.
622
623         This reverts the original decison on #433108 since we did not
624         catch roughly 33 instances of the broken code in our own source
625         code base, we did not catch failures on the buildbots, and QA did
626         not bring this as a problem.
627
628         Only today I found some customer's code breaking due to our own
629         class libraries not being fully updated and tracked it down to
630         this change.  I am reverting it because if we could not even get
631         our story straight in our own code base, how can we hope that our
632         end user code be fixed?
633
634         As of this morning, our Wiki page that documents how to detect
635         Unix had not been fixed.    
636
637 2008-12-16  Zoltan Varga  <vargaz@gmail.com>
638
639         * metadata.c (inflated_method_in_image): Add a workaround for #458168.
640
641         * class.c (mono_class_get_fields): Handle loading errors.
642
643 2008-12-12 Mark Mason <mmason@upwardaccess.com>
644
645         * metadata.c (mono_type_stack_size_internal): If SIZEOF_REGISTER > SIZEOF_VOID_P then use SIZEOF_REGISTER as the size and alignment of the stack slots.
646         
647 2008-12-12 Gonzalo Paniagua Javier <gonzalo@novell.com>
648
649         * mono-perfcounters.c: avoid warning.
650
651 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
652
653         * reflection.c (ensure_runtime_vtable): Work on generic instances and
654         make sure all interfaces have MonoClass::interface_id set.
655
656         * reflection.c (ensure_generic_class_runtime_vtable): Ensure the
657         method table is property set.
658
659 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
660
661         * class.c: New function mono_class_setup_interface_id that setup
662         MonoClass::interface_id if needed.
663
664         * class-internals.h: Export new function.
665
666 2008-12-12 Rodrigo Kumpera  <rkumpera@novell.com>
667
668         * class.c: Add code to sanity check the vtable after setup_vtable_general
669         has done it's work.
670
671 2008-12-11 Gonzalo Paniagua Javier <gonzalo@novell.com>
672
673         * icall.c: make Assembly.GetExecutingAssembly work properly when
674         reflection is used to invoke the method.
675         Bug #321781 fixed.
676
677 2008-12-11  Mark Probst  <mark.probst@gmail.com>
678
679         * metadata/generic-sharing.c: Look for constraints in all type
680         arguments, not just the first one.
681
682 2008-12-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
683
684         * appdomain.c: return the correct CodeBase for an Assembly instance
685         that was loaded from the shadow-copy directories.
686         Bug #458190 fixed.
687
688 2008-12-10  Zoltan Varga  <vargaz@gmail.com>
689
690         * sgen-gc.c (build_nursery_fragments): Clear nursery_next/nursery_frag_real_end.
691
692         * sgen-gc.c (check_object): New debugging helper function.
693
694         * object.c: Fix calls to mono_value_copy_array ().
695
696 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
697
698         * class.c (mono_class_setup_fields): If working on an inflated class
699         first check if the generic definition did init with success.
700
701         Fixes #445361.
702
703 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
704
705         pedump.c (main): Fix a warning.
706
707 2008-12-10  Bill Holmes  <billholmes54@gmail.com>
708
709         * object-internals.h : Adding a definition for 
710           MonoReflectionComVisibleAttribute.
711
712         * marshal.c (cominterop_com_visible) :  Method added to check the 
713           ComVisible attribute of a class.
714
715         * marshal.c (cominterop_raise_hr_exception, cominterop_get_interface) :  
716           cominterop_raise_hr_exception added to consolidate common code 
717           to raise hr exceptions.
718
719         * marshal.c (cominterop_can_support_dispatch) :  Method added to determine 
720           if a managed class should support IDispatch.
721
722         * marshal.c 
723           (cominterop_get_idispatch_for_objec, cominterop_ccw_queryinterfacet) :  
724           Added additional checks for managed object when getting 
725           an IDispatch interface.
726
727         Code is contributed under MIT/X11 license.
728
729 2008-12-10 Rodrigo Kumpera  <rkumpera@novell.com>
730
731         pedump.c (main): Handle mono_get_method () returning NULL. 
732
733 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
734
735         * marshal.h: Fix a warning.
736
737 2008-12-09  Bill Holmes  <billholmes54@gmail.com>
738
739         * marshal.c : Adding cominterop_release_all_rcws to release all
740           runtime callable wrappers held by the runtime.
741
742         * marshal.h : Adding declaration for cominterop_release_all_rcws.
743           
744         Code is contributed under MIT/X11 license.
745
746 2008-12-09  Zoltan Varga  <vargaz@gmail.com>
747
748         * metadata.c (mono_image_alloc_lock): New helper function.
749         (mono_image_alloc0_lock): Ditto.
750
751         * metadata.c: Use the alloc_lock () helper functions for allocating
752         memory from the image mempool.
753
754 2008-12-08 Rodrigo Kumpera  <rkumpera@novell.com>
755
756         * class.c (mono_class_from_generic_parameter): Document it's
757         locking behavior. Fix double checked locking here, we stored in
758         param->pklass a partially initialized MonoClass and no membar was used.
759
760 2008-12-05  Marek Habersack  <mhabersack@novell.com>
761
762         * sysmath.c (ves_icall_System_Math_Round2): if round (3) and rint
763         (3) functions are present in the C library use them to do the
764         job. If they are absent, make sure that the sum of int_part and
765         dec_part is rounded before returning. This is necessary due to the
766         division of dec_part by the power of 10 before the final addition
767         is performed - if the result is not rounded in some cases it will
768         yield invalid results.
769
770 2008-12-04  Zoltan Varga  <vargaz@gmail.com>
771
772         * marshal.c (mono_marshal_emit_native_wrapper): Add AOT support for pinvoke
773         wrappers by emitting the function address using a CEE_MONO_ICALL_ADDR 
774         instruction instead of a pointer constant.
775
776 2008-12-03  Zoltan Varga  <vargaz@gmail.com>
777
778         * loader.c (mono_method_get_header): Do most of the work outside the
779         loader lock, to avoid assembly load hook deadlocks.
780
781         * metadata.c (mono_metadata_parse_mh_full): Use finer-grained locking.
782         (mono_metadata_parse_type_full): Ditto.
783
784 2008-12-02 Rodrigo Kumpera  <rkumpera@novell.com>
785
786         * mempool.c (mono_backtrace): Take the number of allocated bytes as argument.
787         Make the stack depth fixed. Ensure proper argument passing to the backtrace
788         funtions. Finally, use a lock to produce well ordered output.
789
790         The lock looks silly, as all calls to the corlib mempool should be guarded
791         with the loader lock, but for some reason this fact doesn't help. 
792
793         * mempool.c (mono_mempool_alloc0): Add support for TRACE_ALLOCATIONS.
794
795 2008-12-02  Mark Probst  <mark.probst@gmail.com>
796
797         * socket-io.c: 64 bit big-endian fixes.
798
799 2008-12-01 Rodrigo Kumpera  <rkumpera@novell.com>
800
801         * verify.c (is_compatible_boxed_valuetype): Rewrite function to work properly with
802         targets that require strict compatibility between the types.
803
804         * verify.c (verify_stack_type_compatibility_full): Boxed values are not compatible
805         to unboxed types. All cases that this is true are checked by is_compatible_boxed_valuetype.
806         Kill the strict argument and create a new one valuetype_must_be_boxed.
807
808         * verify.c (verify_delegate_compatibility): Use verify_stack_type_compatibility_full to
809         state that all valuetypes must be boxed.
810
811         Fixes #448560.
812
813 2008-11-29  Kornél Pál  <kornelpal@gmail.com>
814
815         * coree.c (MonoFixupExe): Use sizeof(IMAGE_BASE_RELOCATION) instead of
816         IMAGE_SIZEOF_BASE_RELOCATION as newer Vista SDKs no longer define the latter.
817
818         Contributed under MIT/X11 license.
819
820 2008-11-28 Rodrigo Kumpera  <rkumpera@novell.com>
821
822         * class.c (mono_class_setup_fields): Don't copy MonoType::attrs as
823         the inflate_generic_type machinery should handle it.
824
825         This avoids a crash when the field's flags is zero and it's type is
826         a primitive.
827         What happens is that mono_metadata_parse_type_full will see that opt_attrs
828         is zero and will return one of the cached built-in primitive types. Since
829         those types live in read-only memory, the code that copies it crashes.  
830
831 2008-11-28  Mark Probst  <mark.probst@gmail.com>
832
833         * object.c: Don't put function descriptors into generalized IMT
834         thunks.
835
836 2008-11-28  Mark Probst  <mark.probst@gmail.com>
837
838         * class.c: Enable generic code sharing on PPC64.
839
840 2008-11-27  Mark Probst  <mark.probst@gmail.com>
841
842         * mempool.c, mempool-internals.h: Added g_slist_append_mempool()
843         from mini/mini.c.
844
845         * generic-sharing.c: Allocate the method template slists from the
846         image mempool so it doesn't leak.
847
848 2008-11-27 Rodrigo Kumpera  <rkumpera@novell.com>
849
850         * class.c (generic_array_methods): Release the linked list.
851
852 2008-11-27  Mark Probst  <mark.probst@gmail.com>
853
854         * marshal.c (mono_string_builder_to_utf8): Fixed a wrong
855         invocation to g_utf16_to_utf8().
856
857 2008-11-26  Mark Probst  <mark.probst@gmail.com>
858
859         * icall.c (mono_ArgIterator_IntGetNextArg): Handle sub-word sized
860         arguments on big endian archs.
861
862 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
863
864         * reflection.c: (_mono_reflection_parse_type) skip leading spaces in
865         the type name (test added in corlib).
866
867 2008-11-25 Gonzalo Paniagua Javier <gonzalo@novell.com>
868
869         * pedump.c: initialize perf. counters. Fixes a segv.
870
871 2008-11-25  Martin Baulig  <martin@ximian.com>
872
873         * mono-debug-debugger.c
874         (mono_debugger_runtime_invoke): Return the exception object if an
875         exception was thrown.  Visual Studio displays the exception object
876         in the locals window.
877
878 2008-11-24  Mark Probst  <mark.probst@gmail.com>
879
880         * mini-trampolines.c (mono_delegate_trampoline): Don't return a
881         ftnptr.
882
883 2008-11-24  Mark Probst  <mark.probst@gmail.com>
884
885         * marshal.c (mono_type_native_stack_size): MONO_TYPE_I and
886         MONO_TYPE_U are sizeof (gpointer), too.
887
888 2008-11-24  Mark Probst  <mark.probst@gmail.com>
889
890         * marshal.c (mono_type_native_stack_size): Fixed size and
891         alignment for reference types.
892
893 2008-11-23  Mark Probst  <mark.probst@gmail.com>
894
895         * class.c (mono_class_generic_sharing_enabled): Disable generic
896         code sharing for PPC64.
897
898 2008-11-21 Rodrigo Kumpera  <rkumpera@novell.com>
899
900         * icall.c (mono_method_get_equivalent_method): Make sure
901         method->klass->methods is inited before looping over it.
902
903 2008-11-20 Gonzalo Paniagua Javier <gonzalo@novell.com>
904
905         * object.c: when calling ExecuteAssembly in a newly created domain,
906         the configuration file and application base are already set up.
907         Bug #446353 take 2 fixed.
908
909 2008-11-20  Zoltan Varga  <vargaz@gmail.com>
910
911         * marshal.c: Add support for MONO_TYPE_GENERICINST to some functions.
912         Fixes #444715. Fix a warning.
913
914 2008-11-18 Gonzalo Paniagua Javier <gonzalo@novell.com>
915
916         * appdomain.c: write the full path of the assembly to the .ini file
917         created when "shadow-copying"
918         Bug #446353 fixed.
919
920 2008-11-18  Zoltan Varga  <vargaz@gmail.com>
921
922         * debug-helpers.c (mono_method_full_name): Stringify wrapper types even
923         if signature==FALSE.
924
925 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
926
927         * marshal.h : Fix the cygwin build.
928            marshal.c:12442: undefined reference to `_IID_IMarshal'
929           
930         Code is contributed under MIT/X11 license.
931
932 2008-11-17  Bill Holmes  <billholmes54@gmail.com>
933
934         * marshal.h : cominterop_ccw_getfreethreadedmarshaler added to return the
935           free threaded marshaler when QueryInterface is called on a COM callable
936           wrapper requesting the IMarshal interface.
937           
938         Code is contributed under MIT/X11 license.
939
940 2008-11-14  Zoltan Varga  <vargaz@gmail.com>
941
942         * domain-internals.h (MonoDomain): Update MONO_DOMAIN_LAST_GC_TRACKED.
943
944         * reflection.c (mono_type_get_object): Special case the very common
945         void type.
946
947         * domain-internals.h (struct _MonoDomain): Add 'typeof_void' field to
948         hold typeof(void).
949
950 2008-11-13  Bill Holmes  <billholmes54@gmail.com>
951
952         * process.h : Adding method declaration for
953           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
954           
955         * process.c : Adding implementation for
956           ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
957           
958         * icall-def.h : Registering ICALL Processs.WaitForInputIdle_internal
959           to ves_icall_System_Diagnostics_Process_WaitForInputIdle_internal.
960
961         Code is contributed under MIT/X11 license.
962
963 2008-11-10  Rodrigo Kumpera  <rkumpera@novell.com>
964
965         * appdomain.c (unload_thread_main): Clean up threadpool by
966         calling mono_thread_pool_remove_domain_jobs.
967
968         * domain-internals.h (struct _MonoDomain): Add new fields to
969         help coordinate the cleanup of the threadpool.
970
971         * threadpool.c (mono_thread_pool_remove_domain_jobs): New fuction
972         that cleans up the threadpool of all jobs associated with an appdomain.
973         It does that by cleaning up the queues and making sure all active
974         threads are accounted.
975
976         * threadpool.c (async_invoke_io_thread): Ignore job if its domain is
977         unloaded or in the process of. Take this is such way that there is
978         no race condition between another thread starting the unload and the
979         current thread acknowledging it.
980
981         * threadpool.c (async_invoke_thread): Same.
982
983         * threadpool.c (start_io_thread_or_queue): Increment threadpool_jobs before
984         firing the new thread.
985
986         * threadpool.c (start_tpthread): Same.
987
988         * theadpool.c (append_job): Increment threadpool_jobs before queueing.
989
990         * threadpool.h: Add mono_thread_pool_remove_domain_jobs.
991
992 2008-11-06  Jonathan Chambers  <joncham@gmail.com>
993
994         * file-io.c (ves_icall_System_IO_MonoIO_DuplicateHandle): 
995         Add support for DuplicateHandle.
996         
997         * file-io.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
998         Add support for DuplicateHandle.
999         
1000         * icall-def.h (ves_icall_System_IO_MonoIO_DuplicateHandle): 
1001         Add support for DuplicateHandle.
1002
1003         Code is contributed under MIT/X11 license.
1004
1005 2008-11-06  Mark Probst  <mark.probst@gmail.com>
1006
1007         * class-internals.h: Make min_align into a whole byte.
1008
1009         * class.c: Set min_align for SIMD types to 16.
1010
1011 2008-11-05  Geoff Norton  <gnorton@novell.com>
1012
1013         * attach.c: Default the attacher to enabled for all cases including
1014         embedded.
1015
1016 Wed Nov 5 16:33:41 CET 2008 Paolo Molaro <lupus@ximian.com>
1017
1018         * monitor.c, class-internals.h, wrapper-types.h: revert incorrect
1019         change r117650.
1020
1021 2008-11-04  Mark Probst  <mark.probst@gmail.com>
1022
1023         * monitor.c, monitor.h: New function for querying offsets of
1024         members of MonoThreadsSync.
1025
1026 2008-11-04  Zoltan Varga  <vargaz@gmail.com>
1027
1028         * marshal.c (mono_marshal_get_runtime_invoke): Use runtime_invoke_direct_cache
1029         to speed up this function and to avoid the boundless memory growth caused by
1030         the signature_dup () calls.
1031
1032 2008-11-02  Zoltan Varga  <vargaz@gmail.com>
1033
1034         * monitor.c (mono_monitor_get_fast_enter_method): Add a proper type for the
1035         wrapper.
1036
1037         * class-internals.h (struct _MonoMethod): Increase the size of 'wrapper_type'
1038         by 1 bit.
1039
1040         * wrapper-types.h: Add MONO_WRAPPER_MONITOR_FAST_ENTER/EXIT.
1041
1042 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
1043
1044         * appdomain.c:
1045         * domain-internals.h: made mono_set_private_bin_path_from_config()
1046         "internal".
1047         * object.c: call the above function after setting the configuration
1048         file path for the root domain.
1049         Fixes bug #314478.
1050
1051 2008-10-31 Gonzalo Paniagua Javier <gonzalo@novell.com>
1052
1053         * assembly.c: when the assembly is loaded from an absolute path, end
1054         basedir with a directory separator.
1055         Bug #440781 fixed.
1056
1057 2008-10-30  Mark Probst  <mark.probst@gmail.com>
1058
1059         * monitor.c (mono_monitor_get_fast_enter_method): If
1060         CompareExchange is not available, don't create the fastpath
1061         instead of asserting.  (The method is missing in the 1.1 profile.)
1062
1063 2008-10-30  Mark Probst  <mark.probst@gmail.com>
1064
1065         * marshal.c, marshal.h: Rename signature_no_pinvoke() and make it non-static.
1066
1067         * monitor.c, monitor.h: Code for generating Monitor.Enter and
1068         Monitor.Exit IL fastpaths.
1069
1070 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
1071
1072         * class.c (mono_class_create_from_typedef): Added Vector2ul.
1073
1074 2008-10-28  Rodrigo Kumpera  <rkumpera@novell.com>
1075
1076         * class.c (mono_class_create_from_typedef): Added Vector2l.
1077
1078 2008-10-27  Rodrigo Kumpera  <rkumpera@novell.com>
1079
1080         * class.c (mono_class_create_from_typedef): Added Vector2d.
1081
1082 2008-10-27 Gonzalo Paniagua Javier <gonzalo@novell.com>
1083
1084         * appdomain.c: translate \ into / for cache_path.
1085         * domain-internals.h: new mono_is_shadow_copy_enabled().
1086         * icall.c: (fill_reflection_assembly_name) do the same path
1087         manipulations that get_code_base does.
1088         (get_code_base) use mono_is_shadow_copy_enabled.
1089
1090 2008-10-26 Gonzalo Paniagua Javier <gonzalo@novell.com>
1091
1092         * appdomain.c: shadow-copied assemblies go to CachePath +
1093         ApplicationName when both are set. DynamicBase has nothing to do with
1094         shadow copies.
1095         Bug #406877 fixed.
1096
1097 2008-10-26  Zoltan Varga  <vargaz@gmail.com>
1098
1099         * reflection.c (encode_locals): Use a cache to avoid duplicate entries in the
1100         STANDALONESIG table.
1101
1102         * metadata-internals.h (struct _MonoDynamicImage): Add cache for
1103         standalone signatures.
1104
1105         * marshal.c (mono_marshal_get_runtime_invoke): Rewrite the signature 
1106         comparison code: instead of comparing the signatures using a custom
1107         equals function, transform them to a common signature and compare that. This
1108         works better with AOT.
1109
1110 2008-10-25  Zoltan Varga  <vargaz@gmail.com>
1111
1112         * Reapply r116521 with (!mono_debug_using_mono_debugger ()) checks.
1113
1114         * class.c (mono_class_init): Remove unneccesary mono_class_setup_properties ()
1115         call for generic instances.
1116         (mono_class_setup_properties): Call setup_properties () before accessing
1117         gklass->properties.
1118
1119         * class.c (mono_class_get_virtual_methods): New helper function to iterate
1120         over the virtual methods of a class using metadata if possible, avoiding the
1121         creation of MonoMethod's for non-virtual methods.
1122         
1123         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
1124         get_virtual_methods () to iterate over the virtual methods of classes.
1125
1126 2008-10-25  Martin Baulig  <martin@ximian.com>
1127
1128         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_DEAD): New #define.
1129
1130 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
1131
1132         * class.c (mono_class_create_from_typedef): Added Vector4i.
1133
1134 2008-10-24  Mark Probst  <mark.probst@gmail.com>
1135
1136         * marshal.c (mono_marshal_get_synchronized_wrapper): Emit
1137         ldtoken+GetTypeFromHandle instead of i4+icall so that the JIT
1138         special-casing applies to eliminate the call completely.
1139
1140 2008-10-24  Rodrigo Kumpera  <rkumpera@novell.com>
1141
1142         * class.c (mono_class_create_from_typedef): Added Vector8s.
1143
1144 2008-10-23  Rodrigo Kumpera  <rkumpera@novell.com>
1145
1146         * class.c (mono_class_create_from_typedef): Added Vector16sb.
1147
1148 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
1149
1150         * icall.c: get rid of annoying warning.
1151
1152 2008-10-23 Gonzalo Paniagua Javier <gonzalo@novell.com>
1153
1154         * threadpool.c: in 1.x, if you change the background status of the
1155         threadpool thread, it's not reset.
1156         Remove unnecessary calls to SetState.
1157
1158 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1159
1160         * threadpool.c: asynchronously create a set of idle threads upon first
1161         use of the threadpool. SetMinThreads will now start the appropriate
1162         number of idle threads if they are not already running. The default is
1163         1 threadpool thread per CPU. Increased the maximum number of threads
1164         per CPU to 10.
1165
1166 2008-10-22  Martin Baulig  <martin@ximian.com>
1167
1168         Revert r116521 from Zoltan, it breaks the debugger:
1169
1170         * class.c (mono_class_get_virtual_methods): New helper function to iterate
1171         over the virtual methods of a class using metadata if possible, avoiding the
1172         creation of MonoMethod's for non-virtual methods.
1173         
1174         * class.c (mono_class_setup_vtable_general): Rewrite this to use 
1175         get_virtual_methods () to iterate over the virtual methods of classes.
1176
1177 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1178
1179         * threads.c: when creating a threadpool thread, set its state to
1180         'background'.
1181         * threadpool.c: reset the background state of a threadpool thread
1182         after finishing each work item
1183         Bug #437888 fixed.
1184
1185 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
1186
1187         * class.c (mono_class_get_vtable_entry): Add an optimization for szarrays.
1188         
1189         * class.c (mono_class_setup_vtable_general): Add an optimized version for
1190         generic instances which works by inflating the methods in the container
1191         class's vtable.
1192
1193         * class.c (mono_class_inflate_generic_type_with_mempool_no_copy): New
1194         variant which doesn't make a copy if no inflation was done.
1195         (mono_class_setup_fields): Use it.
1196
1197         * metadata.c (mono_metadata_get_shared_type): New helper function to
1198         return a shared instance of a given MonoType.
1199
1200         * class.c (mono_class_inflate_generic_type_with_mempool): Avoid making
1201         a copy of most non-generic types.
1202
1203 Wed Oct 22 18:00:46 CEST 2008 Paolo Molaro <lupus@ximian.com>
1204
1205         * threadpool.c: remove one more GetSystemInfo () call.
1206
1207 Wed Oct 22 17:45:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
1208
1209         * mono-perfcounters.c, icall-def.h, environment.c, environment.h:
1210         use the code in mono-proclib.h to get processor information.
1211
1212 2008-10-22 Gonzalo Paniagua Javier <gonzalo@novell.com>
1213
1214         * appdomain.c: fixed the logic that determines whether assemblies in a
1215         directory are "shadow-copied" or not. Bug #433483 fixed.
1216
1217 2008-10-22  Zoltan Varga  <vargaz@gmail.com>
1218
1219         * process.c (ves_icall_System_Diagnostics_Process_GetProcessData): Fix a
1220         warning.
1221
1222 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
1223
1224         * marshal.c (runtime_invoke_signature_equal): Don't shared wrappers
1225         returning a vtype.
1226
1227         * class.c debug-helpers.c object.c class-internals.h marshal.c icall.c
1228         reflection.c: Use mono_field_get_name () for accessing a field's name.
1229
1230         * class-internals.h (MONO_CLASS_HAS_STATIC_METADATA): Move this here from
1231         class.c
1232
1233         * class.c (mono_field_get_rva): Fix crash if this is called on a dynamic
1234         field.
1235
1236         * loader.c (find_method_in_class): Reenable the metadata optimization by
1237         not using it for generic instances.
1238
1239         * class-internals.h (MonoFieldDefaultValue): Extract the rarely used 
1240         data/def_type fields from MonoClassField into a separate structure.
1241         (struct MonoClassField): Remove data/def_type fields.
1242         (struct _MonoClass): Add a 'field_def_values' array to store the default
1243         values/RVA for fields.
1244
1245         * class.c reflection.c: Update after the changes.
1246         
1247         * object.c (mono_class_create_runtime_vtable): Use mono_field_get_data ()
1248         for accessing field->data.
1249
1250         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_InitializeArray): Ditto.
1251
1252         * loader.c (find_method_in_class): Revert the last change for now as
1253         it breaks Mono.C5 unit tests.
1254
1255         * class-internals.h (struct _MonoDynamicGenericClass): Add fields
1256         'field_generic_types' and 'field_objects' which contain the information
1257         previously stored in MonoInflatedField.
1258         (MonoInflatedField): Delete.
1259         (struct _MonoClassField): Delete 'generic_info' field.
1260
1261         * reflection.c: Store the information which was previously in 
1262         field->generic_info in MonoDynamicGenericClass instead.
1263
1264         * metadata.c (free_generic_class): Update after MonoDynamicGenericClass/
1265         MonoClassField changes.
1266
1267 Tue Oct 21 17:07:55 CEST 2008 Paolo Molaro <lupus@ximian.com>
1268
1269         * marshal.c, method-builder.c: get rid of wrapper_hash and instead
1270         store the value inside the data array of the MonoMethodWrapper.
1271         This saves memory, is faster and fixes the lifetime issues (methods
1272         were never removed from the hash previously). May also fix bug#436996.
1273
1274 2008-10-21  Zoltan Varga  <vargaz@gmail.com>
1275
1276         * reflection.c (mono_image_get_fieldref_token): For fields of non-dynamic 
1277         generic instances, compute the type from the generic definition instead of
1278         looking in field->generic_info.
1279
1280         * class.c (mono_class_setup_fields): Don't create a MonoInflatedField
1281         for inflated fields, the only user was get_fieldref_token () which no
1282         longer needs it.
1283
1284         * class.c (mono_class_init): Revert the last change as it seems to cause
1285         crashes.
1286
1287         * class-internals.h (struct _MonoClassField): Reorder fields to save 4
1288         bytes on 64 bit platforms.
1289
1290         * object.c (mono_class_create_runtime_vtable): Fix a warning.
1291         
1292         * object.c (mono_class_create_runtime_vtable): Don't initalize
1293         field->data/field->def_type here, it is done lazily by 
1294         mono_class_get_field_default_value ().
1295
1296         * icall.c (ves_icall_get_enum_info): Call 
1297         mono_class_get_field_default_value () instead of directly accessing
1298         field->data and field->def_type.
1299
1300         * object.c (get_default_field_value): Ditto.
1301
1302         * class.c (mono_field_get_data): Ditto.
1303         
1304         * class.c (mono_class_init): Remove unneccesary mono_class_setup_methods ()
1305         call for generic instances.
1306
1307         * loader.c (find_method_in_class): If klass != from_class, then inflate
1308         the method with the context of from_class, since the caller assumes this.
1309
1310 2008-10-20  Zoltan Varga  <vargaz@gmail.com>
1311
1312         * class.c (mono_method_get_vtable_index): Use mono_method_get_vtable_slot ()
1313         for accessing method->slot.
1314
1315 2008-10-20  Cedric Vivier  <cedricv@neonux.com>
1316
1317         * icall-def.h, icall.c: Add icall for Debugger.IsAttached.
1318
1319 2008-10-19  Zoltan Varga  <vargaz@gmail.com>
1320
1321         * class.c (mono_method_get_vtable_index): Use
1322         mono_method_get_vtable_slot () for accessing method->slot.
1323
1324         * object.c (build_imt_slots): Use mono_class_get_method_by_index () for
1325         accessing klass->methods.
1326
1327         * class.c (mono_method_get_vtable_slot): New helper function.
1328         (mono_class_get_vtable_entry): Ditto.
1329         (mono_class_setup_vtable_general): Use mono_method_get_vtable_slot () for
1330         accessing method->slot.
1331
1332         * generic-sharing.c (mono_class_get_method_generic): Pass the declaring
1333         method to get_inflated_method ().
1334
1335         * class.c (mono_class_get_inflated_method): New helper method to obtain
1336         a method of an inflated class without calling setup_methods ().
1337         (mono_class_get_cctor): Use get_inflated_method.
1338
1339         * generic-sharing.c (mono_class_get_method_generic): Ditto.
1340         
1341         * marshal.c image.c: Lazily create all the marshal caches.
1342
1343         * image.c (mono_image_init): Move initialization of runtime_invoke
1344         caches to marshal.c.
1345
1346         * marshal.c (get_cache): New helper function to lazily initialize a 
1347         wrapper cache.
1348         (mono_marshal_get_runtime_invoke): Share more runtime invoke wrappers.
1349
1350         * debug-helpers.c (mono_method_full_name): Include generic arguments.
1351
1352 Fri Oct 17 10:51:32 CEST 2008 Paolo Molaro <lupus@ximian.com>
1353
1354         * loader.c: fixed check for interface type.
1355
1356 Thu Oct 16 20:59:11 CEST 2008 Paolo Molaro <lupus@ximian.com>
1357
1358         * appdomain.c: check for NULL setup before it's referenced.
1359
1360 p
1361 Thu Oct 16 16:12:23 CEST 2008 Paolo Molaro <lupus@ximian.com>
1362
1363         * class.c: remove the unused old vtable setup code.
1364
1365 Thu Oct 16 12:53:29 CEST 2008 Paolo Molaro <lupus@ximian.com>
1366
1367         * class.c: don't depend on interface order in
1368         setup_interface_offsets (bug #435777).
1369         * reflection.c: sort the InterfaceImpl table (patch from
1370         Jb Evain  <jbevain@novell.com>).
1371
1372 2008-10-13  Zoltan Varga  <vargaz@gmail.com>
1373
1374         * assembly.c (mono_assembly_open_full): Avoid loading images while holding
1375         the low level assemblies lock.
1376
1377 Mon Oct 13 16:35:26 CEST 2008 Paolo Molaro <lupus@ximian.com>
1378
1379         * domain-internals.h, domain.c, icall.c, image.c, marshal.c,
1380         object.c, reflection.c, socket-io.c, threads.c: introduced
1381         mono_framework_version () to return the major framewrok version,
1382         changed the code that was using more complex patterns to use it.
1383         Return the correct value for PlatformID for OSX.
1384
1385 Mon Oct 13 14:38:01 CEST 2008 Paolo Molaro <lupus@ximian.com>
1386
1387         * icall-def.h, process.h, process.c: added an icall to get info about
1388         processes using mono-proclib.
1389
1390 Mon Oct 13 11:14:44 CEST 2008 Paolo Molaro <lupus@ximian.com>
1391
1392         * mono-perfcounters.c: use the mono-proclib functions to
1393         access process information.
1394
1395 Mon Oct 13 11:00:49 CEST 2008 Paolo Molaro <lupus@ximian.com>
1396
1397         * domain.c, assembly.c, debug-mono-symfile.c, debug-mono-symfile.h,
1398         monosn.c, Makefile.am, pedump.c, image.c, metadata-internals.h,
1399         reflection.c: remove rawbuffer usage: mmap support is more sanely
1400         provided by utils/mono-mmap.
1401
1402 Sat Oct 11 19:46:19 CEST 2008 Paolo Molaro <lupus@ximian.com>
1403
1404         * gc.c: use posix semaphores when possible so that
1405         mono_gc_finalize_notify() is signal safe.
1406
1407 2008-10-11  Zoltan Varga  <vargaz@gmail.com>
1408
1409         * reflection.c: Implement DISABLE_REFLECTION_EMIT, remove some
1410         #ifdef DISABLE_REFLECTION_SAVE stuff, only the exported functions need to
1411         be #ifdef-ed out, the linker will remove the rest.
1412
1413         * marshal.c: Implement DISABLE_COM.
1414
1415         * reflection.c: Implement DISABLE_REFLECTION_EMIT_SAVE.
1416
1417 2008-10-11  Miguel de Icaza  <miguel@novell.com>
1418
1419         * locales.c (string_invariant_compare_char): Optimization: do not
1420         call g_unichar_type unless we actually need the information.
1421
1422 2008-10-10  Mark Probst  <mark.probst@gmail.com>
1423
1424         * object.c, class-internals.h: Also create remoting trampolines
1425         for generic methods.  Pass the domain to the remoting trampoline
1426         creation function, too.
1427
1428 2008-10-10  Zoltan Varga  <vargaz@gmail.com>
1429
1430         * class.c (mono_class_init): Fix+re-enable the finalize optimization.
1431
1432 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1433
1434         * class.c (mono_class_create_from_typedef): Vector4u was renamed to
1435         Vector4ui.
1436
1437 2008-10-10 Gonzalo Paniagua Javier <gonzalo@novell.com>
1438
1439         * assembly.c:
1440         * locales.c: remove the use of g_strdown. Fixes bug #322313.
1441
1442 Fri Oct 10 17:01:42 CEST 2008 Paolo Molaro <lupus@ximian.com>
1443
1444         * assembly.c: in mono_assembly_load_friends() take the assemblies lock
1445         for the least possible amount of time (extending the fix in r113458).
1446
1447 2008-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
1448
1449         * class.c (mono_class_create_from_typedef): Retrofit to new type names.
1450
1451 2008-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
1452
1453         * class.c (mono_class_create_from_typedef): Added Vector8u and Vector16u
1454         as possible simd intrinsic types.
1455         Optimized the test to check for the common prefix first.
1456
1457 Thu Oct 9 17:38:24 CEST 2008 Paolo Molaro <lupus@ximian.com>
1458
1459         * class.c: back out part of a broken optimization committed on
1460         May 23th (bug #433908).
1461
1462 2008-10-09  Mark Probst  <mark.probst@gmail.com>
1463
1464         * profiler.c (simple_shutdown): Don't call mono_thread_attach() on
1465         Win32.  Should fix #432388 for most cases until we have the new
1466         profiler on Win32.
1467
1468 2008-10-08  Zoltan Varga  <vargaz@gmail.com>
1469
1470         * metadata.c (mono_metadata_generic_context_hash): Call generic_inst_hash
1471         instead of using inst->id so the hash is stable for AOT.
1472
1473 2008-10-07 Gonzalo Paniagua Javier <gonzalo@novell.com>
1474
1475         * appdomain.c:
1476         * icall.c: create a .ini file for shadow-copied assemblies that
1477         contains the location of the original assembly. Use this to return the
1478         proper CodeBase for shadow-copied assemblies. Fixes bug #323606.
1479         Also fix the number of '/' for windows when returning the CodeBase.
1480         Fixes bug #430920.
1481
1482 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
1483
1484         * marshal.c (cominterop_get_ccw) : Fixing a copy paste error from r115126.
1485
1486         Code is contributed under MIT/X11 license.
1487
1488 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
1489
1490         * marshal.c (cominterop_get_native_wrapper) : Adding a call to mono_class_setup_vtable
1491           if if the class vtable needs initialized.
1492
1493         Code is contributed under MIT/X11 license.
1494
1495 2008-10-07  Bill Holmes  <billholmes54@gmail.com>
1496
1497         * marshal.c (cominterop_get_native_wrapper_adjusted, cominterop_get_ccw) : 
1498           Adding default MonoMarshalSpecs for COM methods.  OBJECT->STRUCT,
1499           STRING->BSTR, and CLASS->INTERFACE.
1500
1501         Code is contributed under MIT/X11 license.
1502
1503 2008-10-07  Marek Habersack  <mhabersack@novell.com>
1504
1505         * sysmath.h: changed the declaration of the
1506         ves_icall_System_Math_Round2 icall by adding an extra
1507         away_from_zero parameter.
1508
1509         * sysmath.c (ves_icall_System_Math_Round2): added support for
1510         away from zero rounding. The icall now takes an extra boolean
1511         parameter to signal that away from zero operation is requested.
1512
1513 2008-10-06  Zoltan Varga  <vargaz@gmail.com>
1514
1515         * marshal.c (mono_marshal_get_delegate_begin_invoke): Put the wrapper in
1516         the delegate klass so it can work with full-aot.
1517         (mono_marshal_get_delegate_end_invoke): Ditto.
1518         (mono_marshal_get_delegate_invoke): Ditto.
1519
1520 Mon Oct 6 16:10:02 CEST 2008 Paolo Molaro <lupus@ximian.com>
1521
1522         * gc.c, attach.h, attach.c: remove a bad pattern:
1523         add_finalizer_callback () is not implemented correctly, it can't
1524         without adding more overhead to the finalizer loop and it's not
1525         even needed, since we know exactly what we need to call, so there is
1526         no need to do so through an expensive function pointer.
1527
1528 2008-10-04  Zoltan Varga  <vargaz@gmail.com>
1529
1530         * gc.c: Define a dummy version of mono_gc_add_finalizer_thread_callback ()
1531         for the no-gc case.
1532         * attach.c (mono_attach_init): Remove the #ifdef.
1533
1534 2008-10-04  Andreas Färber  <andreas.faerber@web.de>
1535
1536         * attach.c (mono_attach_init): Don't use
1537         mono_gc_add_finalizer_thread_callback when compiling without GC.
1538         Fixes #432306.
1539         
1540         Code is contributed under MIT/X11 license.
1541
1542 2008-10-03  Zoltan Varga  <vargaz@gmail.com>
1543
1544         * class.c (mono_class_create_from_typedef): Remove the 
1545         #ifndef DISABLE_SIMD stuff.
1546
1547 2008-10-03  Rodrigo Kumpera  <rkumpera@novell.com>
1548
1549         * class-internals.h (MonoClass): Added simd_type bit field.
1550
1551         * class.c (mono_class_create_from_typedef): Check if type is a simd
1552         intrinsic.
1553
1554 2008-10-03  Mark Probst  <mark.probst@gmail.com>
1555
1556         * object.c (mono_method_add_generic_virtual_invocation): Only add
1557         instantiations to the thunk whose count is at least as large as
1558         the threshold.
1559
1560 2008-10-02 Gonzalo Paniagua Javier <gonzalo@novell.com>
1561
1562         * icall.c: changed the Type of the exception thrown when trying to
1563         invoke a constructor on an abstract class. Part of the fix for bug
1564         #324185.
1565
1566 2008-10-02  Mark Probst  <mark.probst@gmail.com>
1567
1568         * class.c, class-internals.h (mono_method_get_vtable_index): New
1569         function which returns the index into the vtable and properly
1570         handles inflated virtual generic methods.
1571
1572 2008-10-01  Mark Probst  <mark.probst@gmail.com>
1573
1574         * object.c, domain.c, object-internals.h, domain-internals.h:
1575         Generalize IMT thunk machinery to also handle thunks for virtual
1576         generic method invokes.  When a virtual generic method is invoked
1577         more than a number of times we insert it into the thunk so that it
1578         can be called without lookup in unmanaged code.
1579
1580         * generic-sharing.c, class-internals.h: Fetching a
1581         MonoGenericInst* for a method from an (M)RGCTX.
1582
1583 2008-10-01  Zoltan Varga  <vargaz@gmail.com>
1584
1585         * marshal.c (emit_marshal_string): Applied a variant of a patch by
1586         tom hindle <tom_hindle@sil.org>. Fix byref native-to-managed string
1587         marshalling. Fixes #431304.
1588
1589 2008-10-01  Bill Holmes  <billholmes54@gmail.com>
1590
1591         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
1592           handle when ref is specified without In or Out.
1593
1594         Code is contributed under MIT/X11 license.
1595
1596 2008-09-30  Mark Probst  <mark.probst@gmail.com>
1597
1598         * loader.c (mono_get_method_constrained): Don't expand method with
1599         the class's context, because it's already a method of that class.
1600
1601 2008-09-30  Atsushi Enomoto  <atsushi@ximian.com>
1602
1603         * attach.c : should be correct build fix.
1604
1605 2008-09-29  Zoltan Varga  <vargaz@gmail.com>
1606
1607         * attach.c: Fix the previous change.
1608
1609 2008-09-29  Atsushi Enomoto  <atsushi@ximian.com>
1610
1611         * attach.c : quick w32 build fix.
1612
1613 2008-09-27  Miguel de Icaza  <miguel@novell.com>
1614
1615         * Turn off MONO_GENERIC_SHARING=all and go back to corlib as it
1616         crashes MonoDevelop: #430455.
1617
1618 2008-09-27  Zoltan Varga  <vargaz@gmail.com>
1619
1620         * domain-internals.h (struct _MonoDomain): Move most fields used only by
1621         the JIT do MonoJitDomainInfo in ../mini/mini.h.
1622
1623         * domain.c: Remove initialization/cleanup of the removed fields.
1624
1625 2008-09-27  Mark Probst  <mark.probst@gmail.com>
1626
1627         * class.c (mono_class_generic_sharing_enabled): Enable generic
1628         code sharing for PPC.
1629
1630 2008-09-26  Bill Holmes  <billholmes54@gmail.com>
1631
1632         * attach.c : Fixing the Windows builds.
1633
1634         Code is contributed under MIT/X11 license.
1635
1636 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
1637
1638         * class.c (mono_class_generic_sharing_enabled): Experimentally change 
1639         the default generic sharing mode to 'all'.
1640
1641 2008-09-25  Mark Probst  <mark.probst@gmail.com>
1642
1643         * generic-sharing.c, class-internals.h: New function for checking
1644         whether a method needs a static RGCTX invoke wrapper.  A few
1645         funtions moved from mini/generic-sharing.c.
1646
1647         * icall.c: New function used.
1648
1649 2008-09-25  Mark Probst  <mark.probst@gmail.com>
1650
1651         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
1652         Static RGCTX invoke wrapping applies to value type methods, too.
1653
1654         * class.c (mono_class_setup_vtable_general): In generic-shared
1655         value types, wrap methods with a static RGCTX invoke wrapper.
1656
1657 2008-09-25  Zoltan Varga  <vargaz@gmail.com>
1658
1659         * attach.c (ipc_connect): Use AF_UNIX instead of AF_FILE to fix the
1660         osx build.
1661
1662 2008-09-24  Zoltan Varga  <vargaz@gmail.com>
1663
1664         * gc.c (mono_gc_add_finalizer_thread_callback): New function to
1665         register a callback which is called when the finalizer thread is woken
1666         up.
1667         (finalizer_thread): Call the callback if it exists.
1668
1669         * attach.h attach.c: New files, implementing the attach mechanism.
1670
1671         * appdomain.c: Init/cleanup the attach mechanism on startup/shutdown.
1672         
1673         * object.c (mono_object_get_virtual_method): Fix an assertion introduced
1674         by the previous change.
1675
1676 Tue Sep 23 15:24:03 CEST 2008 Paolo Molaro <lupus@ximian.com>
1677
1678         * class.c, domain-internals.h, domain.c, generic-sharing.c, image.c,
1679         loader.c, marshal.c, metadata-internals.h, metadata.c,
1680         method-builder.c, object.c, reflection.c: introduced specific functions
1681         to allocate from the domain and image mempools and cleaned up most of
1682         the code to use them (still missing a few in reflection.c).
1683         Keep the loader bytes counter updated.
1684
1685 Mon Sep 22 17:33:12 CEST 2008 Paolo Molaro <lupus@ximian.com>
1686
1687         * domain.c, monitor.c, boehm-gc.c, gc.c: update some of the GC and
1688         loader-related counters.
1689
1690 Mon Sep 22 17:29:54 CEST 2008 Paolo Molaro <lupus@ximian.com>
1691
1692         * mono-perfcounters-def.h, mono-perfcounters.c, class-internals.h:
1693         added more MS-compatible counters.
1694
1695 2008-09-22  Zoltan Varga  <vargaz@gmail.com>
1696
1697         * class.c (mono_class_setup_fields): Call setup_fields before accessing
1698         class->blittable. Fixes #428217.
1699
1700 2008-09-21  Zoltan Varga  <vargaz@gmail.com>
1701
1702         * reflection.c (mono_image_get_field_on_inst_token): Call 
1703         field_encode_signature () since that handles custom modifiers too.
1704         Fixes #424663.
1705
1706 2008-09-20  Zoltan Varga  <vargaz@gmail.com>
1707
1708         * reflection.c (add_custom_modifiers): New helper function to merge custom
1709         modifiers stored in objects to a MonoType.
1710         (fieldref_encode_signature): Encode custom modifiers.
1711         (mono_image_get_generic_field_token): Call add_custom_modifiers ().
1712         (fieldbuilder_to_mono_class_field): Ditto. Fixes #424663.
1713
1714 2008-09-19  Kornél Pál  <kornelpal@gmail.com>
1715
1716         * coree.c (_CorValidateImage): Some 64-bit IL only images have entry point
1717         calling _CorDllMain imported from mscoree.dll. Set entry point RVA to 0 for
1718         64-bit IL only images because imports are not resolved for IL only images.
1719         Special thanks to Bill Holmes for finding this bug and testing the patch.
1720         Also fail for 64-bit images marked as CLI_FLAGS_32BITREQUIRED.
1721
1722         Contributed under MIT/X11 license.
1723
1724 2008-09-19  Miguel de Icaza  <miguel@novell.com>
1725
1726         * mono-config.c (dllmap_start): Add support for the bits keyword
1727         on dllentry and dllmap to easily detect 32 vs 64 bit systems.
1728
1729 2008-09-19  Mark Probst  <mark.probst@gmail.com>
1730
1731         * reflection.c (inflate_mono_method): When the class the method is
1732         to be inflated for is itself not inflated, just return the method.
1733
1734 Fri Sep 19 11:51:36 CEST 2008 Paolo Molaro <lupus@ximian.com>
1735
1736         * mono-perfcounters.c: use more user friendly process instance names.
1737
1738 2008-09-18  Bill Holmes  <billholmes54@gmail.com>
1739
1740         * marshal.c (emit_marshal_variant) : Change the attribute checks to 
1741           handle "[in] ref" and "[in][out] ref" cases.
1742
1743         * marshal.c (cominterop_get_ccw) : The wrong signature was being passed
1744           to mono_mb_create_method.  This was causing problems calling native to
1745           managed passing Variants by value.
1746
1747         Code is contributed under MIT/X11 license.
1748
1749 2008-09-18  Zoltan Varga  <vargaz@gmail.com>
1750
1751         * class.c (can_access_internals): Call mono_assembly_load_friends ()
1752         before accessing the friend_assembly_names field.
1753
1754         * assembly.c (mono_assembly_load_friends): Make this callable multiple
1755         times.
1756         (mono_assembly_load_from_full): Avoid calling load_friends (), it is
1757         called lazily when it is needed.
1758
1759         * metadata-internals.h (struct _MonoAssembly): Add 
1760         'friend_assembly_names_inited' flag.
1761
1762 Thu Sep 18 18:18:47 CEST 2008 Paolo Molaro <lupus@ximian.com>
1763
1764         * mono-perfcounters-def.h: fix the types of a few counters.
1765         * mono-perfcounters.c: implemented the instance names getter
1766         and a few bugfixes.
1767
1768 2008-09-18  Atsushi Enomoot  <atsushi@ximian.com>
1769
1770         * culture-info-table.h : regenerated.
1771
1772 2008-09-17  Robert Jordan  <robertj@gmx.net>
1773
1774         * marshal.c (mono_marshal_get_ldflda_wrapper): Add support for
1775         context bound objects. Fixes #415577.
1776
1777         Code is contributed under MIT/X11 license.
1778
1779 Tue Sep 16 21:03:58 CEST 2008 Paolo Molaro <lupus@ximian.com>
1780
1781         * icall-def.h, threads-types.h, threads.c: fixed SpinWait()
1782         implementation (bug #423582).
1783
1784 2008-09-16  Zoltan Varga  <vargaz@gmail.com>
1785
1786         * object.c (mono_object_get_virtual_method): Handle the case method->slot
1787         is not set. Fixes #426309.
1788
1789 2008-09-16  Jb Evain  <jbevain@novell.com>
1790
1791         * class.c (mono_class_from_name): fix the exported type look up
1792         when the type is defined in a referenced assembly.
1793
1794 2008-09-16  Jb Evain  <jbevain@novell.com>
1795
1796         * reflection.c (mono_image_fill_export_table_from_type_forwarders):
1797         increment the next index counter on each iteration to make that work
1798         for more than one type forwarder. Unmanaged part to fix #422929.
1799
1800 2008-09-15  Mark Probst  <mark.probst@gmail.com>
1801
1802         * object-internals.h: enum ComInterfaceType in
1803         MonoInterfaceTypeAttribute is guint32, not guint16.
1804
1805 2008-09-12  Mark Probst  <mark.probst@gmail.com>
1806
1807         * cil-coff.h, image.c, reflection.c: Endianness fixes in image
1808         writing code.
1809
1810 2008-09-11  Mark Probst  <mark.probst@gmail.com>
1811
1812         * icall.c: Boolean arguments to a runtime invoke are MonoBoolean,
1813         not gboolean.
1814
1815 2008-09-11  Mark Probst  <mark.probst@gmail.com>
1816
1817         * debug-mono-symfile.c (mono_debug_symfile_lookup_location):
1818         Endianness fixes for MonoSymbolFileOffsetTable.
1819
1820 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
1821
1822         * process.c (complete_path) : Removing quotes from the 
1823           input path.  The glib file routines do not handle file paths
1824           that have quotes around them.
1825
1826         Code is contributed under MIT/X11 license.
1827
1828 2008-09-10  Bill Holmes  <billholmes54@gmail.com>
1829
1830         * socket-io.h : Adding a comment to provide locations where 
1831           changes to MonoSocketAsyncResult need to be synced.
1832
1833         Code is contributed under MIT/X11 license.
1834
1835 2008-09-10  Zoltan Varga  <vargaz@gmail.com>
1836
1837         * marshal.c (emit_marshal_custom): Call NativeToManaged for non-out 
1838         parameters as well. Fixes #425001.
1839
1840 2008-09-08  Miguel de Icaza  <miguel@novell.com>
1841
1842         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Fix
1843         windows build.
1844
1845 2008-09-07  Miguel de Icaza  <miguel@novell.com>
1846
1847         * console-io.c: Add support for tracking the window size if it
1848         changes.
1849
1850         The setup is very simple: the TtySetup function will now return a
1851         pointer to a location in memory that tracks the current console
1852         size.  The managed code checks its current value every time its
1853         queried against the last value set, and updates accordingly.
1854
1855         With this setup we can work with multiple consoles, and we do not
1856         require to poke into managed code from a signal handler.
1857
1858         Additionally, the environment for COLUMNS and LINES is now handled
1859         in unmanaged code.
1860
1861         (ves_icall_System_ConsoleDriver_GetTtySize): This is now gone.
1862
1863 2008-09-07  Mark Probst  <mark.probst@gmail.com>
1864
1865         * marshal.c (mono_type_native_stack_size): Treat
1866         MONO_TYPE_TYPEDBYREF like MONO_TYPE_VALUETYPE.
1867
1868 2008-09-04  Jb Evain  <jbevain@novell.com>
1869
1870         * class.c (mono_class_is_assignable_from): fix assignability of nullables
1871         to nullables.
1872
1873 2008-09-03 Rodrigo Kumpera  <rkumpera@novell.com>
1874
1875         * verify.c (verify_type_compatibility_full): Revert change
1876         to allow converting a native int to unmanaged pointer be verifiable
1877         under non-strict mode.
1878         It turns out that "(IntPtr)null" is indeed unverifiable, go figure.
1879
1880         * verify.c: Added some TODOs.
1881
1882 2008-09-02  Bill Holmes  <billholmes54@gmail.com>
1883
1884         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi,
1885           ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni) :
1886           Changed to use GlobalAlloc for the memory returned on Windows platforms.
1887
1888         Code is contributed under MIT/X11 license.
1889
1890 2008-09-02  Jb Evain  <jbevain@novell.com>
1891
1892         * object.c (mono_ldstr_metdata_sig): renamed to mono_ldstr_metadata_sig.
1893
1894 2008-09-02 Rodrigo Kumpera  <rkumpera@novell.com>
1895
1896         reflection.c (typebuilder_setup_fields): Handle classes with
1897         explicit size.
1898
1899 2008-09-01 Rodrigo Kumpera  <rkumpera@novell.com>
1900
1901         class.c (mono_class_setup_events): Add memory barrier due to
1902         double checked locking.
1903         
1904         class.c (mono_class_setup_properties): Same.
1905
1906 2008-08-31  Zoltan Varga  <vargaz@gmail.com>
1907
1908         * class.c (mono_class_is_assignable_from): Fix the build.
1909         
1910         * class.c (mono_class_is_assignable_from): Call mono_class_setup_vtable ()
1911         before accessing klass->interface_bitmap. Fixes #421744.
1912
1913 2008-08-28  Zoltan Varga  <vargaz@gmail.com>
1914
1915         * appdomain.c (mono_runtime_set_no_exec): New internal function setting
1916         the runtime into no-exec mode, useful when running the AOT compiler.
1917
1918         * appdomain.c gc.c object.c: Avoid executing managed code when running
1919         in no-exec mode.
1920         
1921         * rawbuffer.c (mono_raw_buffer_load_mmap): Disable this on the iphone.
1922
1923         * reflection.c (_mono_reflection_get_type_from_info): Handle the 
1924         special case when the mono_assembly_loaded () returns NULL because the 
1925         search hook is not installed.
1926
1927 2008-08-25  Zoltan Varga  <vargaz@gmail.com>
1928
1929         * marshal.c: Applied patch from tom hindle (tom_hindle@sil.org) to fix
1930         crashes in bstr marshalling on linux.
1931
1932 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1933
1934         * debug-helpers.c (mono_type_get_desc): Fix printing of generic instances
1935         with more than one parameter.
1936
1937 2008-08-24  Miguel de Icaza  <miguel@novell.com>
1938
1939         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup): Disable
1940         start/stop flow control as well when turning off ICANON (allows
1941         C-s and C-q to be read by Console.ReadKey).
1942
1943 2008-08-24  Zoltan Varga  <vargaz@gmail.com>
1944
1945         * class.c (mono_class_init): Move the initialization of nested classes
1946         into mono_class_get_nested_types (). Fixes #418433.
1947
1948         * class-internals.h (struct _MonoClass): Add a new 'nested_classes_inited'
1949         flag.
1950
1951         * class.c reflection.c icall.c: Use mono_class_get_nested_types () for 
1952         iterating tough the nested classes of a class.
1953
1954 2008-08-23  Zoltan Varga  <vargaz@gmail.com>
1955
1956         * class.c (mono_class_generic_sharing_enabled): Enable generic sharing
1957         on arm.
1958
1959 2008-08-22  Miguel de Icaza  <miguel@novell.com>
1960
1961         * console-io.c (sigcont_handler): Support signal chaining for
1962         SIGCONT.
1963
1964         (console_set_signal_handlers): Use best practices with sigaction,
1965         clear the structure before using it. 
1966
1967 2008-08-22  Robert Jordan  <robertj@gmx.net>
1968
1969         * console-io.c (ves_icall_System_ConsoleDriver_TtySetup):
1970         Fix the Windows build.
1971
1972 2008-08-22  Zoltan Varga  <vargaz@gmail.com>
1973
1974         * class.c (mono_class_generic_sharing_enabled): Make the default
1975         sharing mode 'corlib'.
1976
1977 2008-08-21  Zoltan Varga  <vargaz@gmail.com>
1978
1979         * console-io.c (console_set_signal_handlers): Fix a warning.
1980
1981         * marshal.c (mono_marshal_get_synchronized_wrapper): Call the wrapper
1982         method normally, the JIT will take care of avoiding recursion.
1983
1984 2008-08-20  Bill Holmes  <billholmes54@gmail.com>
1985
1986         * console-io.c : Fixing builds for platforms that do not have <termios.h>.
1987
1988         Code is contributed under MIT/X11 license.
1989
1990 2008-08-20  Miguel de Icaza  <miguel@novell.com>
1991
1992         * console-io.c (sigcont_handler): We need to restore the entire
1993         termios state, not only the original settings, as things like echo
1994         can be controlled after this (Booish exposes this issue with its
1995         own ReadLine implementation).
1996
1997         Additionally, we need to set the terminal back into keypad_xmit
1998         mode.
1999         
2000         (ves_icall_System_ConsoleDriver_TtySetup): Take the keypad xmit
2001         string as a paramter as well.   Otherwise we get different
2002         keyboard sequences.
2003
2004 2008-08-20  Zoltan Varga  <vargaz@gmail.com>
2005
2006         * marshal.c (emit_marshal_object): Avoid managed-to-native marshalling of
2007         delegates with byref out parameter passing. Fixes #351520.
2008
2009         * debug-helpers.c (mono_context_get_desc): New helper function to stringify
2010         a generic context.
2011         (mono_type_get_desc): Add the type arguments for GENERICINST.
2012         (mono_method_full_name): Stringify the class name using mono_type_full_name
2013         so it picks up generic arguments.
2014
2015 2008-08-19  Gert Driesen  <drieseng@users.sourceforge.net>
2016
2017         * console-io.c: Removed debug output.
2018
2019 2008-08-19 Rodrigo Kumpera  <rkumpera@novell.com>
2020
2021         reflection.c (mono_reflection_create_runtime_class): Alloc
2022         the nested classes linked list using the dynamic image mempool.
2023         Fixes leak in corlib compilation.
2024
2025 2008-08-19  Miguel de Icaza  <miguel@novell.com>
2026
2027         * console-io.c: Fix incredibly annoying behavior on the console
2028         after resuming execution after control-z.   This affected every
2029         console application.
2030
2031 2008-08-18 Rodrigo Kumpera  <rkumpera@novell.com>
2032
2033         * mempool-internals.h: Header for mono private mempool functions. The first
2034         two function are for allocating glib linked lists using pools.
2035
2036         * mempool.c: Added g_list_prepend_mempool and g_slist_prepend_mempool.
2037
2038         * Makefile.am: Added mempool-internals.h.
2039
2040 2008-08-16  Zoltan Varga  <vargaz@gmail.com>
2041
2042         * domain.c (mono_domain_create): Call the JIT domain hook if installed.
2043         (mono_domain_free): Ditto.
2044
2045         * domain-internals.h (struct _MonoDomain): Add 'runtime_info' field, this could
2046         be used by the JIT to store its domain-specific information, instead of putting
2047         it directly into MonoDomain.
2048
2049         * domain.c (mono_install_create_domain_hook): New helper function to install
2050         a hook which initializes domain->runtime_info.
2051
2052         * domain.c (mono_install_free_domain_hook): Ditto.
2053         
2054 2008-08-15  Zoltan Varga  <vargaz@gmail.com>
2055
2056         * marshal.c (mono_delegate_end_invoke): Raise an exception instead of
2057         asserting if the ares parameter is null.
2058
2059         * mono-perfcounters.c: Fix warnings.
2060
2061         * marshal.c (mono_marshal_get_delegate_begin_invoke): Don't set save_lmf, it
2062         is not needed, don't check for interruptions either.
2063         (mono_marshal_get_delegate_end_invoke): Ditto.
2064
2065 2008-08-15  Marek Habersack  <mhabersack@novell.com>
2066
2067         * mono-perfcounters.c (predef_readonly_counter): added support for
2068         reading the ASP.NET Requests Queued counter from another process.
2069
2070 2008-08-12  Zoltan Varga  <vargaz@gmail.com>
2071
2072         * metadata-internals.h: Move the 'aot_module' field from MonoAssembly to
2073         MonoImage to simplify the AOT code.
2074
2075 2008-08-10  Zoltan Varga  <vargaz@gmail.com>
2076
2077         * marshal.c (emit_marshal_object): Implement native-to-managed StringBuilder
2078         marshalling. Fixes #416078.
2079
2080 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
2081         
2082         * marshal.c (mono_marshal_get_native_wrapper): Add an 'aot' argument, when
2083         it is set, looking up the icall address is deferred to the JIT, since 
2084         in embedded scenarios, the icall might not be registered in the runtime
2085         doing the AOT compilation. Backported from the 2.0 branch.
2086
2087 2008-08-08  Zoltan Varga  <vargaz@gmail.com>
2088
2089         * marshal.c (mono_remoting_wrapper): Handle nullable types correctly.
2090         Fixes #415621.
2091
2092 2008-08-05  Marek Habersack  <mhabersack@novell.com>
2093
2094         * Makefile.am: added support for cross-compilation.
2095
2096 2008-08-04  Zoltan Varga  <vargaz@gmail.com>
2097
2098         * socket-io.c (get_socket_assembly): Make 'moonlight' variable static.
2099
2100 Fri Aug 1 18:47:48 CEST 2008 Paolo Molaro <lupus@ximian.com>
2101
2102         * mono-perfcounters.c: jitted methods and jitted bytes counters.
2103
2104 Fri Aug 1 16:07:09 CEST 2008 Paolo Molaro <lupus@ximian.com>
2105
2106         * class-internals.h, icall-def.h, mono-perfcounters-def.h,
2107         mono-perfcounters.c: performance counters implementation.
2108
2109 2008-07-31  Zoltan Varga  <vargaz@gmail.com>
2110
2111         * metadata-internals.h (struct _MonoAssembly): Change the type of 'aot_module'
2112         to gpointer, letting the AOT code decide what to store in it.
2113
2114 2008-07-31  Bill Holmes  <billholmes54@gmail.com>
2115
2116         * marshal.c (cominterop_get_native_wrapper) : Adding a call to 
2117           mono_class_setup_methods if the methods are not initialized.
2118
2119         Code is contributed under MIT/X11 license.
2120
2121 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
2122
2123         * verify.c: Remove some debug code I commited by accident.
2124
2125         * verify.c (mono_method_is_valid_in_context): Change the return value
2126         to make possible to distinguish between invalid and unverifiable.
2127
2128         * verify.c (verifier_load_method): Don't return NULL for unverifiable
2129         methods.
2130
2131 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
2132
2133         * verify.c (mono_generic_param_is_constraint_compatible): Inflate type
2134         constraints. Fixes regression in gtest-253.
2135
2136 2008-07-30 Rodrigo Kumpera  <rkumpera@novell.com>
2137
2138         * verify.c (mono_verifier_verify_class): Don't allow generic types
2139         with explicit layout.
2140
2141         * verify.c (mono_method_verify): Check locals and argument types.
2142
2143 2008-07-29  Zoltan Varga  <vargaz@gmail.com>
2144
2145         * monitor.c (mono_monitor_try_enter_internal): Allow nterruption of the
2146         wait if the thread is in StopRequested state.
2147
2148         * class.c (mono_class_from_name): Refactor the module searching code into
2149         a separate function so it can be reused in the AOT case too.
2150
2151 2008-07-28 Rodrigo Kumpera  <rkumpera@novell.com>
2152
2153         * verify.c (mono_type_is_valid_in_context): Improve the error message.
2154         Check both the type and it's generic type definition for loader errors.
2155         
2156         * verify.c (mono_method_is_valid_in_context): Don't generate another
2157         error when a type errors occur, this leads to the wrong exception been
2158         thrown.
2159
2160 2008-07-28  Dick Porter  <dick@ximian.com>
2161
2162         * icall-def.h
2163         * process.c
2164         (ves_icall_System_Diagnostics_Process_ProcessHandle_duplicate):
2165         New internal calls to duplicate and close a process handle.
2166
2167 2008-07-27  Andreas Färber  <andreas.faerber@web.de>
2168
2169         * object.c (CHECK_ADD_OVERFLOW_UN): Add missing bracket. Fixes #412499.
2170
2171 2008-07-27  Zoltan Varga  <vargaz@gmail.com>
2172
2173         * appdomain.c (unload_thread_main): Attach the unload thread to the runtime.
2174
2175 2008-07-27  Robert Jordan  <robertj@gmx.net>
2176
2177         * class.c (mono_class_init): Don't compute class.has_finalize for
2178         valuetypes. Fixes #412477.
2179
2180 2008-07-25 Rodrigo Kumpera  <rkumpera@novell.com>
2181
2182         * verify.c: Implement constraint equivalence checking.
2183         This is required when a generic parameter is used as
2184         argument to a constrained one.
2185
2186         Fixes #410637.
2187
2188 2008-07-24  Zoltan Varga  <vargaz@gmail.com>
2189
2190         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2191
2192         * domain-internals.h (struct _MonoDomain): Add 'method_code_hash' field.
2193
2194         * object-internals.h (struct _MonoDelegate): Add 'method_code' field,
2195         synch with managed object layout.
2196
2197 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
2198
2199         * verify.c (do_branch_op): Handle valuetypes and generic
2200         arguments properly.
2201
2202         * verify.c (do_cmp_op): Same.
2203
2204         Fixes #410383.
2205
2206 2008-07-24  Mark Probst  <mark.probst@gmail.com>
2207
2208         * generic-sharing.c: Fix memory leaks.
2209
2210         * class.c, class-internals.h: Make
2211         mono_class_inflate_generic_type_with_mempool() non-static.
2212
2213 2008-07-24 Rodrigo Kumpera  <rkumpera@novell.com>
2214
2215         * pedump.c (dump_verify_info): Dump full class name.
2216
2217 2008-07-24  Mark Probst  <mark.probst@gmail.com>
2218
2219         * generic-sharing.c: Removed some old code that didn't do anything.
2220
2221 2008-07-24  Massimiliano Mantione  <massi@ximian.com>
2222         * profiler.c: Added runtime_initialized_event,
2223         mono_profiler_install_runtime_initialized and
2224         mono_profiler_runtime_initialized. This new hook tells the profiler
2225         when the runtime is sufficiently initialized to be able to call
2226         mono_thread_attach on the root appdomain.
2227         * profiler.h, profiler-private.h: Likewise.
2228
2229 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
2230
2231         * verify.c (do_cast): Do boxing for generic arguments as well.
2232
2233         * class.c (is_nesting_type): Drop generic instantiations before
2234         checking for nesting.
2235
2236         * class.c (can_access_instantiation): Allow access to generic
2237         arguments.
2238
2239 2008-07-23 Rodrigo Kumpera  <rkumpera@novell.com>
2240
2241         * verify.c (verify_class_for_overlapping_reference_fields):
2242         On some cases, the field size might be zero, guard against that.
2243         Fix the explicit layout check to work as expected.
2244
2245 2008-07-23  Zoltan Varga  <vargaz@gmail.com>
2246
2247         * threads.c (ves_icall_System_Threading_Thread_Abort): Avoid calling 
2248         mono_thread_resume () during shutdown, since the thread we want to abort
2249         might be suspended.
2250
2251 2008-07-22  Zoltan Varga  <vargaz@gmail.com>
2252
2253         * mono-debug-debugger.c (mono_debugger_check_breakpoints): Fix a 
2254         warning.
2255
2256         * debug-mono-symfile.c: Fix a warning.
2257
2258         * mono-perfcounters.c (get_cpu_times): Fix a warning.
2259
2260         * object.c (mono_class_vtable): Check if exception_type is set, and return
2261         NULL as defined by the function comments.
2262
2263 2008-07-22  Mark Probst  <mark.probst@gmail.com>
2264
2265         * mempool.c: Use malloc for every single mempool allocation if the
2266         configure option is set.  This makes it easier to track mempool
2267         allocations with tools like Valgrind.
2268
2269 2008-07-22  Jb Evain  <jbevain@novell.com>
2270
2271         * reflection.c (create_dynamic_mono_image): emit the same
2272         metadata version that SL2 does when creating a SL2 image.
2273
2274 2008-07-21 Rodrigo Kumpera  <rkumpera@novell.com>
2275
2276         * icall-def.h:
2277         * icall.c: New icall System.Enum:get_hashcode. This function
2278         avoids the overhead of boxing the enum to the underlying type.
2279
2280 2008-07-21  Mark Probst  <mark.probst@gmail.com>
2281
2282         * reflection.c (mono_method_get_object): Don't let static RGCTX
2283         invoke wrappers get into MonoReflectionMethods.
2284
2285 2008-07-17 Rodrigo Kumpera  <rkumpera@novell.com>
2286
2287         * object-internals.h:
2288         * object.c: New mono_runtime_class_init_full function
2289         that makes throwing the exception optinal.
2290
2291         * class-internals.h: New exception type MONO_EXCEPTION_OBJECT_SUPPLIED
2292         for the case where the exception object is supplied.
2293
2294 2008-07-16  Kornél Pál  <kornelpal@gmail.com>
2295
2296         * coree.h: Define __ImageBase as _image_base__ on cygwin that fixes build with
2297         old ld versions.
2298
2299         Contributed under MIT/X11 license.
2300
2301 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
2302
2303         * string-icalls.c (ves_icall_System_String_InternalSplit):
2304         Optimize array allocation by caching the MonoClass of the
2305         array type.
2306
2307         * icall.c (ves_icall_Type_GetMethodsByName): Same.
2308
2309         * reflection.c (mono_param_get_objects): Same.
2310
2311 2008-07-16 Rodrigo Kumpera  <rkumpera@novell.com>
2312
2313         * icall-def.h:
2314         * icall.c: New ves_icall_MonoGenericClass_InflateType icall.
2315         It inflates the given type using the class context.
2316
2317 2008-07-15 Rodrigo Kumpera  <rkumpera@novell.com>
2318
2319         * object.c (mono_class_try_get_vtable): New function. Tries to fetch
2320         the vtable if it already exists.
2321
2322         * object-internals.h: Add mono_class_try_get_vtable as part of the
2323         internal API.
2324
2325         * reflection.c (mono_type_get_object): Use the MonoObject from the
2326         vtable when possible. Reduces locking contention on reflection heavy
2327         code.
2328
2329 2008-07-15  Zoltan Varga  <vargaz@gmail.com>
2330
2331         * decimal.c (my_g_bit_nth_msf): Implement this directly without calling
2332         g_bit_nth_msf () since that macro is not implemented in eglib.
2333
2334 2008-07-13  Zoltan Varga  <vargaz@gmail.com>
2335
2336         * class.c (mono_class_generic_sharing_enabled): Always disable generic sharing
2337         on platforms which do not support it.
2338
2339 2008-07-12  Zoltan Varga  <vargaz@gmail.com>
2340
2341         * marshal.c (mono_signature_to_name): Encode sig->hasthis as well.
2342
2343 2008-07-11  Martin Baulig  <martin@ximian.com>
2344
2345         * mono-debug-debugger.h
2346         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_INTERRUPTION_REQUEST'.
2347
2348         * mono-debug-debugger.c
2349         (_mono_debugger_interruption_request): New global volatile variable.
2350         (mono_debugger_check_interruption): New public function.
2351
2352         * threads.c
2353         (mono_thread_current_check_pending_interrupt): Call
2354         mono_debugger_check_interruption().
2355         (mono_thread_interruption_checkpoint_request): Likewise.
2356
2357 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
2358
2359         * verify.c: Add more type checks for loaded types. Verify the result
2360         handle from ldtoken.
2361
2362 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
2363
2364         * loader.c (field_from_memberref): Don't crash if the field
2365         wasn't found.
2366
2367 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
2368
2369         * verify.c: Verify if type and method instantiations
2370         don't have invalid VAR or MVAR arguments.
2371
2372 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
2373
2374         * verify.c: Fix double free of function pointer list.
2375
2376 2008-07-11 Rodrigo Kumpera  <rkumpera@novell.com>
2377
2378         * object.c (mono_string_to_utf8): Comment the new code as it
2379         breaks under eglib.
2380
2381 2008-07-08 Rodrigo Kumpera  <rkumpera@novell.com>
2382
2383         * object.c (mono_string_to_utf8): Avoid allocating a temp array.
2384
2385 2008-07-07  Bill Holmes  <billholmes54@gmail.com>
2386
2387         * threads.c : Thread.Interrupt changes to ensure that ThreadInterruptedException
2388           is not throw too many times.
2389
2390         Code is contributed under MIT/X11 license.
2391
2392 2008-07-07  Zoltan Varga  <vargaz@gmail.com>
2393
2394         * mono-debug.c (mono_debug_find_method): Allow this to be called even when
2395         debugging is turned off.
2396
2397 2008-07-06  Zoltan Varga  <vargaz@gmail.com>
2398
2399         * generic-sharing.c (mono_method_lookup_rgctx): Fix a warning.
2400
2401 2008-07-04  Mark Probst  <mark.probst@gmail.com>
2402
2403         * class-internals.h, class.c: Added new generic sharing option:
2404         Share only stuff in System.Collections.Generic, which is now the
2405         default.
2406
2407 2008-07-04  Mark Probst  <mark.probst@gmail.com>
2408
2409         * generic-sharing.c, class-internals.h: New function for getting a
2410         generic method in a generic class given the corresponding method
2411         for a different instantiation of the class.  Partly refactored
2412         from mini-trampolines.c.
2413
2414         * class.c: Make sure generic methods have a class_inst if they are
2415         part of a generic class.
2416
2417         * metadata.c (mono_type_stack_size_internal): Handle type
2418         variables.
2419
2420 2008-07-04  Mark Probst  <mark.probst@gmail.com>
2421
2422         * domain-internals.h: New field (has_this) in MonoGenericJitInfo.
2423         Signifies whether information on the this/vtable/mrgctx variable
2424         is available.
2425
2426 2008-07-04  Mark Probst  <mark.probst@gmail.com>
2427
2428         * object.c, object-internals.h, icall.c: New function
2429         mono_delegate_ctor_with_method(), which does the same as
2430         mono_delegate_ctor(), but takes an explicit method argument
2431         instead of taking the method from the jit info.
2432
2433         * marshal.c: When creating a delegate with an inflated method take
2434         the "this" argument as the target class for the castclass.
2435
2436 2008-07-03  Mark Probst  <mark.probst@gmail.com>
2437
2438         * domain.c (mono_jit_info_table_find): Fixed a bug that caused
2439         mono_jit_info_table_find() to perform very badly in some cases.
2440
2441 2008-07-02  Zoltan Varga  <vargaz@gmail.com>
2442
2443         * icall.c (type_from_typename): Handle 'string'.
2444
2445         * marshal.c (mono_marshal_get_runtime_invoke): Don't insert runtime invoke
2446         wrappers into the wrapper_hash, since the key is not a MonoMethod.
2447
2448 2008-07-01  Zoltan Varga  <vargaz@gmail.com>
2449
2450         * icall.c (mono_get_jit_icall_info): New function to return the jit icall hash table.
2451
2452         * *-gc.c (mono_gc_get_managed_allocator_types): New function to return the
2453         number of available managed allocator types.
2454
2455         * marshal.c (mono_marshal_init): Register Thread:ResetAbort as an icall ().
2456         (mono_marshal_get_runtime_invoke): Call ResetAbort as an icall.
2457
2458 2008-06-30  Zoltan Varga  <vargaz@gmail.com>
2459
2460         * domain-internals.h (struct _MonoDomain): Add 'jit_code_hash_lock' field,
2461         which is a low level lock protecting just the 'jit_code_hash' hash table.
2462
2463         * domain.c: Initialize+cleanup jit_code_hash_lock.
2464         
2465 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
2466
2467         * coree.c (mono_load_coree): Set coree_module_handle global variable only
2468         after initialization.
2469
2470         * coree.h: Make MonoFixupExe internal.
2471
2472         Contributed under MIT/X11 license.
2473
2474 2008-06-30  Kornél Pál  <kornelpal@gmail.com>
2475
2476         * coree.c (_CorValidateImage): Retain IMAGE_DIRECTORY_ENTRY_SECURITY
2477         because that is platform independent. Check NumberOfRvaAndSizes in PE32
2478         as well.
2479         (MonoLoadImage): New wrapper function around LoadLibrary to ensure that the
2480         image being loaded is a CLI image and _CorValidateImage gets called.
2481
2482         * coree.h: Add MonoLoadImage.
2483
2484         * image.c (mono_image_open_full): Load CLI images using MonoLoadImage
2485         instead of LoadLibrary.
2486
2487         Contributed under MIT/X11 license.
2488
2489 2008-06-29 Rodrigo Kumpera  <rkumpera@novell.com>
2490
2491         * icall.c (ves_icall_System_ValueType_Equals): Avoid allocating objects
2492         for any primitive type.
2493
2494 2008-06-29  Zoltan Varga  <vargaz@gmail.com>
2495
2496         * object.c (mono_array_new_specific): Optimize this and the other allocation
2497         functions a bit.
2498         
2499         * object.c (mono_class_create_runtime_vtable): Use typed allocation in other
2500         domains too if mono_dont_free_domains is set.
2501
2502         * domain-internals.h (mono_dont_free_domains): New internal option controlling
2503         whenever to free appdomain data after it has been unloaded.
2504
2505         * domain.c (mono_domain_free): Don't free appdomain data if the option is set.
2506         
2507 2008-06-28  Zoltan Varga  <vargaz@gmail.com>
2508
2509         * icall.c (ves_icall_System_Enum_get_underlying_type): New icall.
2510         (mono_method_get_equivalent_method): Fix a warning.
2511
2512         * object.c (mono_message_init): Avoid looking up array types for each call.
2513
2514 2008-06-27  Zoltan Varga  <vargaz@gmail.com>
2515
2516         * object.c (mono_message_invoke): Avoid looking up the object[] type for each
2517         call.
2518
2519         * icall.c (ves_icall_System_ValueType_Equals): Optimize the comparison of enums
2520         even more.
2521
2522         * class.c (mono_class_get_fields): Avoid calling setup_fields_locking () for
2523         each iteration.
2524
2525         * icall.c (ves_icall_System_ValueType_Equals): Avoid traversing all the static
2526         fields of an enum.
2527
2528 2008-06-26 Rodrigo Kumpera  <rkumpera@novell.com>
2529
2530         * object.c (mono_value_box): Fix boxing of nullables.
2531
2532 2008-06-26  Kornél Pál  <kornelpal@gmail.com>
2533
2534         * assembly.c (mono_set_rootdir): Use __ImageBase instead of
2535         mono_module_handle that is defined by the linker; no initialization required.
2536         * coree.h: Remove mono_module_handle, add __ImageBase, update
2537         mono_image_open_from_module_handle.
2538         * coree.c (_CorValidateImage): Convert platform independent PE32 images to
2539         PE32+ on 64-bit Windows that makes the OS able to load CIL images as modules.
2540         (MonoFixupCorEE): Export Address Table RVAs are 32-bit unsigned integers so
2541         memory has to be allocated for trampolines (x64) or procedure labels (IA64) up
2542         to 4 GB away from image base address. IA64 version is not tested but was very
2543         easy to implement and should work if we ever need it.
2544         * domain.c (mono_init_internal): Avoid system error message boxes.
2545         * image.c (mono_image_open_from_module_handle): Replace ref_count argument
2546         with has_entry_point. Handle do_mono_image_load fauilre correctly.
2547         (mono_image_open_full, mono_image_close): Use has_entry_point instead of
2548         coff_attributes that is a more reliable way to detect if _CorDllMain was called.
2549         * metadata-internals.h: Add has_entry_point to _MonoImage on Windows.
2550
2551         Contributed under MIT/X11 license.
2552
2553 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
2554
2555         * class.c, class-internals.h: Export mono_class_get_generic_type_definition
2556         as part of the private mono API.
2557         
2558         * loader.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandleInternalType):
2559         Do proper argument checking for methods that belong to generic classes.
2560         Do proper type resolution for GMFH/2.
2561         Fixes #377324.
2562         
2563 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
2564
2565         * verify.c (do_switch): Fix a memory corruption bug with
2566         the jump index is out of bound.
2567
2568 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
2569
2570         * verify.c: Disable debug code.
2571
2572 2008-06-25 Rodrigo Kumpera  <rkumpera@novell.com>
2573
2574         * reflection.c (mono_image_get_methodbuilder_token): Use
2575         mono_image_get_methodspec_token_for_generic_method_definition
2576         instead of mono_image_get_memberref_token. We cache more memberef
2577         entries now.
2578
2579 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
2580
2581         * verify.c: Inflate exception clause types.
2582         Fixes #402606.
2583         
2584 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
2585
2586         * reflection.c (mono_image_get_methodbuilder_token): Don't leak
2587         name.
2588
2589         * reflection.c (mono_image_get_ctorbuilder_token): Same.
2590
2591         * reflection.c (mono_image_create_method_token): Same.
2592
2593 2008-06-24 Rodrigo Kumpera  <rkumpera@novell.com>
2594
2595         * reflection.c: Added mono_image_get_methodref_token_for_methodbuilder.
2596         It does the same as mono_image_get_methodref_token but works on
2597         MethodBuilder.
2598
2599         * reflection.c: Use mono_image_get_methodspec_token_for_generic_method_definition
2600         and always generate a methodspec. This follows the old behavior and fixes
2601         the regressions in System.Core. 
2602
2603 2008-06-24  Zoltan Varga  <vargaz@gmail.com>
2604
2605         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Collect exceptions for classes where 
2606         don't event mono_class_get () succeeds. Fixes #402182.
2607
2608 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
2609
2610         * metadata-internals.h: Added MonoDynamicImage::methodspec
2611         hashtable to store methodspec tokens created for MethodBuilders.
2612
2613         * reflection.c (mono_image_get_methodbuilder_token): Encode generic
2614         MethodBuilders as open instantiations if a methodspec was requested.
2615
2616         * reflection.c (fixup_method): Skip MethodBuilder with methodspec tokens.
2617
2618         * reflection.c (create_dynamic_mono_image): Create the methodspec hashtable.
2619
2620         * reflection.c (mono_dynamic_image_free): Release the methodspec hashtable.
2621
2622         Fixes bug #349190.
2623
2624 2008-06-20 Rodrigo Kumpera  <rkumpera@novell.com>
2625
2626         * loader.c (method_from_methodspec): Avoid crashing if the
2627         method lookup fails.
2628
2629 2008-06-20  Dick Porter  <dick@ximian.com>
2630
2631         * socket-io.c (get_socket_assembly): Cope with Moonlight network
2632         classes being in a different assembly.  Fixes bug 399184.
2633
2634 2008-06-20  Zoltan Varga  <vargaz@gmail.com>
2635
2636         * loader.c (mono_loader_init): Make this callable multiple times.
2637         (mono_dllmap_insert): Call mono_loader_init () so this works even before
2638         the runtime is initialized. Fixes #401755.
2639
2640 2008-06-19  Dick Porter  <dick@ximian.com>
2641
2642         * socket-io.c (convert_socketflags): Ignore SocketFlags.Partial.
2643         Fixes bug 349688.
2644
2645 2008-06-19  Dick Porter  <dick@ximian.com>
2646
2647         * socket-io.c:
2648         * icall-def.h: Implement Socket generic Send() and Receive()
2649         methods.  Fixes bug 395168.
2650
2651 2008-06-19  Kornél Pál  <kornelpal@gmail.com>
2652
2653         * icall-def.h, icall.c: Add ves_icall_System_Reflection_Module_GetHINSTANCE.
2654
2655         Contributed under MIT/X11 license.
2656
2657 2008-06-18  Martin Baulig  <martin@ximian.com>
2658
2659         * mono-debug.h (MONO_DEBUGGER_VERSION): Split into
2660         `MONO_DEBUGGER_MAJOR_VERSION' and `MONO_DEBUGGER_MINOR_VERSION';
2661         set to 80.0.  The debugger <-> runtime interface is now frozen as
2662         well.   
2663
2664         * mono-debug.c
2665         (mono_debug_debugger_version): Bump to 4.
2666
2667 2008-06-18  Martin Baulig  <martin@ximian.com>
2668
2669         * debug-mono-symfile.c
2670         (load_symfile): Don't check the minor version.
2671
2672         * debug-mono-symfile.h: Bump the version number to 50.0.
2673
2674 2008-06-18  Martin Baulig  <martin@ximian.com>
2675
2676         * debug-mono-symfile.c
2677         (load_symfile): Treat `MONO_SYMBOL_FILE_MINOR_VERSION' as a
2678         minimum required version.
2679
2680 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
2681
2682         * reflection.c (mono_custom_attrs_from_property): Fix support for
2683         retriveving cattrs of dynamic inflated generic types.
2684
2685         * reflection.c (mono_custom_attrs_from_event): Same.
2686
2687         * reflection.c (mono_custom_attrs_from_field): Same;
2688
2689         * reflection.c (typebuilder_setup_events): Same cattrs of events.
2690
2691         * loader.c (-mono_metadata_get_corresponding_field_from_generic_type_definition):
2692         Moved to metadata.c.
2693
2694         * metadata.c: New functions to retrive the equivalent field, event
2695         of property from the generic type definition.
2696
2697         * metadata-internals.h: Added new functions from metadata.c.
2698
2699 2008-06-17 Rodrigo Kumpera  <rkumpera@novell.com>
2700
2701         * reflection.c (mono_custom_attrs_from_builders): Mark MonoCustomAttrInfo
2702         to cached in a mempool is used.
2703
2704         * metadata.c (free_generic_class): In some situations field generic_info type
2705         is not properly dup'ed and leads to double free'ing.
2706
2707         Fixes #400643.
2708
2709 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2710
2711         * marshal.c (mono_marshal_get_static_rgctx_invoke): Also handle
2712         this arguments (will be needed later for generic methods).
2713         Collect stats.
2714
2715 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2716
2717         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal):
2718         Create a static RGCTX invoke wrapper for methods which require it.
2719
2720 2008-06-17  Mark Probst  <mark.probst@gmail.com>
2721
2722         * object.c, class-internals.h: New function for checking whether
2723         an individual field is special static.
2724
2725 2008-06-15  Zoltan Varga  <vargaz@gmail.com>
2726
2727         * metadata.c (mono_metadata_get_generic_param_row): Use bsearch instead of
2728         linear search since the table is sorted.
2729
2730         * gc.c (mono_gc_cleanup): Abort the finalizer thread more gracefully.
2731         Fixes #324180.
2732
2733 2008-06-14  Zoltan Varga  <vargaz@gmail.com>
2734
2735         * appdomain.c (unload_thread_main): Applied patch from Tim Howard 
2736         (timh@ict.om.org). Remove the timeouts when waiting for appdomains to unload.
2737
2738         * gc.c (mono_domain_finalize): Allow an infinite timeout.
2739
2740         * threads.c (mono_threads_abort_appdomain_threads): Ditto.
2741         
2742         * threads.c (mono_thread_request_interruption): Get rid of locking, use
2743         InterlockedCompareExchange to query and modify 
2744         thread->interruption_requested.
2745
2746         * object-internals.h (struct _MonoThread): Change interruption_requested
2747         to a gint32 so it can be modified by atomic operations. Add 
2748         'critical_region_level' from the managed side, change small_id to a guint32,
2749         add new set of 'unused' fields.
2750
2751         * appdomain.c: Bump corlib version.
2752
2753 2008-06-13  Zoltan Varga  <vargaz@gmail.com>
2754
2755         * class.c (mono_class_from_name): Search modules as well. Fixes
2756         #322332.
2757
2758 2008-06-13  Mark Probst  <mark.probst@gmail.com>
2759
2760         * generic-sharing.c: Code for maintaining the MRGCTX and MRGCTX
2761         templates.  Templates are generalized with an additional type_argc
2762         argument.  RGCTX templates have type_argc==0, MRGCTX templates
2763         have type_argc>0.
2764
2765         * domain-internals.h, domain.c: New hash table for looking up
2766         MRGCTXs.
2767
2768         * metadata.c, metadata-internals.h: Rename hash and equal
2769         functions for MonoGenericInst's and make them public.
2770
2771         * class-internals.h: New data structures for the MRGCTX.  Macros
2772         for distinguishing slots in the RGCTX and the MRGCTX.
2773
2774 2008-06-13  Mark Probst  <mark.probst@gmail.com>
2775
2776         * object.c (mono_method_get_imt_slot): Put the same methods of
2777         different instantiations of the same generic interface in the same
2778         IMT slots, to make generic sharing simpler.
2779
2780 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2781
2782         * metadata-internals.h: Added mono_metadata_field_info_with_mempool.
2783
2784         * metadata.c (mono_metadata_field_info_with_mempool): Added.
2785         This function works just like mono_metadata_field_info, but
2786         accept a mempool as argument to be used allocating memory.
2787
2788         * marshal.c (mono_marshal_load_type_info): Use new function
2789         to load marshal data into image mempool.
2790
2791 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2792
2793         * class.c (mono_class_inflate_generic_type_with_mempool):
2794         This function allows to inflate a generic type using
2795         a mempool.
2796
2797         * class.c (inflate_generic_type): Take a mempool as argument
2798         and use it to do type dup'ing.
2799
2800         * class.c (mono_class_setup_fields): Field type for generic
2801         generic classes are allocated from the image mempool.
2802
2803         * metadata.c (free_generic_class): Inflated field type is
2804         now allocated in the image mempool.
2805
2806 2008-06-12 Rodrigo Kumpera  <rkumpera@novell.com>
2807
2808         * threads.c (thread_cleanup): Free MonoThread::name.
2809
2810 2008-06-12  Marek Habersack  <mhabersack@novell.com>
2811
2812         * appdomain.c (ensure_directory_exists): avoid unnecessary
2813         mkdir(2) calls when the shadow directory already exists.
2814         (mono_make_shadow_copy): copy also satellite assemblies from the
2815         private bin directories.
2816
2817 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
2818
2819         * threads.c (mono_thread_get_stack_bounds): Align the stack in all cases.
2820         
2821         * threads.c (mono_thread_get_stack_bounds): Align the stack address to
2822         a page boundary. Fixes #396219.
2823
2824 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2825
2826         * marshal.c (mono_marshal_load_type_info): Add a memory barrier
2827         due to double-checked locking.
2828
2829 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2830
2831         * assembly.c (build_assembly_name): Release memory on failure.
2832
2833         * assembly.c (mono_assembly_name_parse_full): Release memory on failure.
2834
2835 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2836
2837         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Release
2838         memory on failure.
2839
2840 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2841
2842         * icall.c (ves_icall_System_Reflection_AssemblyName_ParseName): Release
2843         memory on failure.
2844
2845 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2846
2847         * loader.c (field_from_memberref): Check if field signature type is equal
2848         to the non-inflated type of the field. Fixes #398980.
2849
2850 2008-06-11  Zoltan Varga  <vargaz@gmail.com>
2851
2852         * assembly.c (mono_assembly_load_from_full): Call 
2853         mono_assembly_load_friends () outside the assemblies lock, since it can
2854         acquire the loader lock. Fixes #323696.
2855
2856         * reflection.c (resolve_object): Inflate the inst with the context for
2857         FieldOnTypeBuilderInst. Fixes #399010.
2858
2859 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2860
2861         * reflection.c (mono_image_get_field_on_inst_token): Don't
2862         inflate the field to encode it's signature. If it's a
2863         VAR or MVAR it should stay that way in the signature.
2864         Fixes #399047.
2865
2866 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2867
2868         * reflection.c (resolve_object): Release memory of inflated types.
2869
2870 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2871
2872         * loader.c (mono_method_get_signature_full): Remove assert about
2873         loading a methodspec to a generic method. We have such methods, such as
2874         System.Threading.Interlocked::CompareExchange<T>.
2875         This assert was removed since it crashes the verifier when it checks
2876         methods calling CompareExchange<T>.
2877
2878 2008-06-10  Marek Safar  <marek.safar@gmail.com>
2879
2880         * icall.c (ves_icall_MonoMethod_GetGenericArguments): Creates an instance
2881         of Type array and not MonoType.
2882
2883 2008-06-10  Marek Habersack  <mhabersack@novell.com>
2884
2885         * profiler.c: fix a segfault on shutdown. Patch from Paolo Molaro
2886         <lupus@ximian.com>
2887
2888 2008-06-10  Martin Baulig  <martin@ximian.com>
2889
2890         * debug-mono-symfile.h
2891         (MONO_SYMBOL_FILE_MINOR_VERSION): Bump to 6.  There were no
2892         changes to the file format, but we were generating incorrect
2893         source file indices in the line number table due to a bug, which
2894         made backtraces report an incorrect source file.
2895
2896 2008-06-10 Rodrigo Kumpera  <rkumpera@novell.com>
2897
2898         * mono-debug.c: Moved mono_debug_free_method_jit_info from
2899         mini/debug-mini.c to here.
2900
2901         * mono-debug.c (il_offset_from_address): Free memory from find_method.
2902
2903         * mono-debug.h: Export mono_debug_free_method_jit_info, users should
2904         use it to release structs returned by mono_debug_find_method.
2905
2906 2008-06-10  Zoltan Varga  <vargaz@gmail.com>
2907
2908         * class.c (mono_class_setup_vtable): Call setup_methods even for interfaces
2909         since it needs to set method->slot for all interface methods.
2910
2911 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2912
2913         * class-internals.h: Forgot to add.
2914
2915 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2916
2917         * class-internals.h: Added MONO_PROP_DYNAMIC_CATTR.
2918
2919         * reflection.c (lookup_custom_attr): Added a MonoImage argument.
2920         Lookup the custom attributes from property_hash.
2921
2922         * reflection.c (mono_save_custom_attrs): Save the custom attributes
2923         in property_hash. Allocate all data using the image mempool.
2924
2925         * reflection.c: Removed dynamic_custom_attrs. Changed all checks
2926         for dynamic_custom_attrs to checks if the image is dynamic.
2927
2928 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2929
2930         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Free the
2931         assemblies array.
2932         
2933         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Avoid calling
2934         runtime functions while holding the domain assemblies lock.
2935
2936 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2937
2938         * verify.c: Reapplied the last bit of the reverted changes.
2939
2940 2008-06-09 Rodrigo Kumpera  <rkumpera@novell.com>
2941
2942         * verify.c: Reapplied more of the reverted changes.
2943
2944 2008-06-09  Martin Baulig  <martin@ximian.com>
2945
2946         * debug-mono-symfile.c (load_symfile): Check the major version
2947         first; if it's wrong, don't print the minor version in the error message.
2948
2949 2008-06-09  Zoltan Varga  <vargaz@gmail.com>
2950
2951         * appdomain.c (set_domain_search_path): Make this use the domain assemblies
2952         lock instead of the domain lock to avoid deadlocks, since the thread might
2953         already hold the loader lock.
2954
2955         * threads.c (start_wrapper): Call mono_monitor_init_tls ().
2956         (mono_thread_attach): Ditto.
2957
2958         * monitor.c: Use a TLS variable for holding the current thread id instead
2959         of calling pthread_self ().
2960         (mono_monitor_init_tls): New internal function to initialize the TLS
2961         variable.
2962         (mono_monitor_try_enter_internal): Put the owner == id check after the
2963         owner == 0 check.
2964
2965         * object-internals.h (_G_BOOLEAN_EXPR): Redefine this glib macro to avoid
2966         missed optimizations when using gcc-4.3.
2967
2968 2008-06-08 Rodrigo Kumpera  <rkumpera@novell.com>
2969
2970         * reflection.c (mono_dynamic_image_free): Free the memory
2971         used by MonoGenericParam in MonoDynamicImage::gen_param.
2972
2973         * reflection.c (mono_reflection_setup_generic_class): Allocate
2974         container from mempool.
2975
2976         * reflection.c (mono_reflection_initialize_generic_parameter): Allocate
2977         container from mempool.
2978
2979 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
2980
2981         * threads.c (mono_set_pending_exception): New internal function to set the
2982         pending exception of the current thread.
2983         (mono_thread_get_and_clear_pending_exception): Check for 
2984         thread->pending_exception as well.
2985
2986         * object-internals.h (struct _MonoThread): Add 'pending_exception' field.
2987
2988         * boehm-gc.c (mono_gc_base_init): Set GC_no_dls before calling GC_init () since
2989         it can trigger a collection.
2990
2991 2008-06-06  Martin Baulig  <martin@ximian.com>
2992
2993         Merged the `debugger-kahalo' branch.
2994
2995         * mono-debug.h
2996         (MONO_DEBUGGER_VERSION): Bumped to 72.
2997
2998         * debug-mono-symfile.h
2999         (MonoSymbolFileMethodIndexEntry): Removed.
3000         (MonoSymbolFileMethodEntry): New public typedef.
3001         (MonoSymbolFileOffsetTable): Added `_is_aspx_source'.
3002         (MonoSymbolFileSourceEntry): Remove everything except `index' and
3003         `data_offset'.
3004         (MonoSymbolFileMethodEntry): Removed.
3005         (MonoSymbolFileLexicalBlockEntry): Removed.
3006         (MonoSymbolFileLineNumberEntry): Removed.
3007         (MonoDebugLexicalBlockEntry): Removed.
3008         (MonoDebugMethodInfo): Replaced `entry' by `guint32 entry_offset';
3009         removed `num_il_offsets' and `il_offsets'.
3010         (MonoSymbolFile): Replace `version' with `major_version' and
3011         `minor_version'.
3012         (MONO_SYMBOL_FILE_VERSION): Replace with
3013         `MONO_SYMBOL_FILE_MAJOR_VERSION' and
3014         `MONO_SYMBOL_FILE_MINOR_VERSION'.
3015
3016         * debug-mono-symfile.c
3017         (mono_debug_symfile_lookup_location): Add support for the new line
3018         number table format.
3019
3020 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
3021
3022         * metadata.c (free_generic_class): Release the inflated
3023         MonoClass of dynamic generic classes if it's not a generic
3024         type definition.
3025
3026 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
3027
3028         * verify.c: Reapplied more of the reverted changes.
3029
3030 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
3031
3032         * reflection.c (lookup_custom_attr): Clean the cached flag or
3033         nobody will free it. Fixes a memleak in MonoCustomAttrs::IsDefinedInternal
3034         for SRE types.
3035
3036 2008-06-07 Rodrigo Kumpera  <rkumpera@novell.com>
3037
3038         * verify.c: Reapplied a small part of the reverted changes.
3039
3040 2008-06-07  Zoltan Varga  <vargaz@gmail.com>
3041
3042         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
3043
3044         * monitor.c (mono_monitor_try_enter_internal): Add NULL check which was 
3045         previously in managed code.
3046         (mono_monitor_exit): Ditto.
3047         (ves_icall_System_Threading_Monitor_Monitor_exit): Removed, not needed anymore.
3048
3049         * icall-def.h: Rename the Enter/Exit icalls to simply Enter/Exit to match
3050         the managed definition.
3051
3052 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
3053
3054         * verify.c: Revert changes to see if it helps with weird buildbot crashes.
3055
3056 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
3057
3058         * monitor.c: Redefine GetCurrentThreadId () with a macro on !win32.
3059         
3060         * monitor.c: Add some micro optimizations.
3061
3062         * icall.c (type_from_typename): Handle 'bool'.
3063
3064 2008-06-06 Rodrigo Kumpera  <rkumpera@novell.com>
3065
3066         * verify.c: Implement constructor verification per P III 1.8.1.4.
3067         Fixes #396716.
3068
3069 2008-06-06  Zoltan Varga  <vargaz@gmail.com>
3070
3071         * assembly.c (mono_assembly_loaded_full): Avoid calling the search hooks while
3072         holding the assemblies lock here too.
3073
3074 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
3075
3076         * verify.c: Kill stack_top function.
3077
3078 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
3079
3080         * verify.c: Kill stack_get function.
3081
3082 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
3083
3084         * verify.c (mono_method_verify): Last change broke the build. Fixed.
3085
3086 2008-06-05 Rodrigo Kumpera  <rkumpera@novell.com>
3087
3088         * verify.c (verify_type_compatibility_full): Make SZARRAY checks
3089         more reliable.
3090
3091         * verify.c (mono_method_verify): Inflate params and locals to avoid
3092         mismatch when checking for compatibility.
3093
3094 2008-06-05  Jonathan Chambers  <joncham@gmail.com>
3095
3096         * metadata.c (mono_string_from_bstr): Fix BSTR marshalling.
3097         Length prefix should be size in bytes. Fix bug #339530.
3098         
3099         * metadata.c (mono_string_to_bstr): Fix BSTR marshalling.
3100         Length prefix should be size in bytes. Fix bug #339530.
3101
3102         Code is contributed under MIT/X11 license.
3103
3104 2008-06-05  Bill Holmes <billholmes54@gmail.com>
3105
3106         * decimal.c:  Adding MSVC implementation to my_g_bit_nth_msf.
3107
3108         Contributed under MIT/X11 license.
3109
3110 2008-06-05  Martin Baulig  <martin@ximian.com>
3111
3112         * mono-debug-debugger.c
3113         (mono_debugger_check_breakpoints): Reflect latest runtime changes.
3114
3115 2008-06-05  Zoltan Varga  <vargaz@gmail.com>
3116
3117         * assembly.c (mono_assembly_load_from_full): Avoid calling the search hooks
3118         while holding the assemblies lock to prevent deadlocks. Handle the case
3119         where the search hook returns NULL but the assembly was still loaded.
3120         Fixes #323696.
3121
3122         * appdomain.c (set_domain_search_path): Acquire the domain lock since we
3123         modify domain state.
3124
3125 2008-06-05  Andreas Färber  <andreas.faerber@web.de>
3126
3127         * boehm-gc.c: Add DTrace probes gc-{begin,end}.
3128         * Makefile.am (pedump_LDADD): Post-process object files and
3129         add dtrace-generated object file, if necessary.
3130
3131         Code is contributed under MIT/X11 license.
3132
3133 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
3134
3135         * reflection.c (mono_dynamic_image_free): Free MonoDynamicImage::public_key.
3136
3137 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
3138
3139         * class.c (mono_type_get_full): Add a work-around for generic type definitions.
3140
3141 2008-06-04  Mark Probst  <mark.probst@gmail.com>
3142
3143         * threads.c: Try to free everything from the delayed free table
3144         when shutting down threads, and set the variable to NULL after the
3145         table is freed so that calling
3146         mono_thread_hazardous_try_free_all() when shutting down the root
3147         domain doesn't crash.
3148
3149 2008-06-04 Rodrigo Kumpera  <rkumpera@novell.com>
3150
3151         * class.c (mono_type_retrieve_from_typespec): Add an argument to inform
3152         the caller if resulting type was inflated.
3153
3154         * class.c (mono_class_create_from_typespec): Free the MonoType if it
3155         was inflated.
3156
3157         * class.c (mono_type_get_full): Free the MonoType if it was inflated.
3158
3159
3160 2008-06-04  Zoltan Varga  <vargaz@gmail.com>
3161
3162         * decimal.c (rescale128): Rework the code a bit so it no longer crashes the
3163         class library tests.
3164
3165         * icall.c (ves_icall_InternalInvoke): Applied patch from Andy Hume 
3166         (andyhume32@yahoo.co.uk). Add more useful exception messages. Fixes
3167         #396989.
3168
3169 2008-06-04  Mark Probst  <mark.probst@gmail.com>
3170
3171         * domain.c, domain-internals.h: The JIT infos are now freed by the
3172         JIT info table code.  They are freed immediately if there only a
3173         single JIT info table in circulation.  If there is more, the free
3174         is delayed via a queue.
3175
3176         * threads.c, threads-types.h: New hazard pointer function for
3177         freeing all freeable delayed items in one sitting.
3178
3179 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3180
3181         * reflection.c (typebuilder_setup_fields): Use mempool for allocations.
3182
3183         * reflection.c (typebuilder_setup_properties): Same.
3184
3185         * reflection.c (typebuilder_setup_events): Same.
3186
3187 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3188
3189         * reflection.c (mono_custom_attrs_from_builders): Receive a MonoMemPool
3190         and use it for allocating memory.
3191
3192         * reflection.c (mono_marshal_spec_from_builder): Same.
3193
3194         * reflection.c: Change code to use new signatures.
3195
3196         * metadata.c (mono_metadata_type_dup): Add a FIXME note.
3197
3198 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
3199
3200         * decimal.c (rescale128): Put back one line which was accidently commented
3201         out.
3202         
3203         * decimal.c (rescale128): Disable the code added by the last patch, as it seems
3204         to cause crashes.
3205
3206 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3207
3208         * reflection.c (mono_reflection_generic_class_initialize): Name must
3209         be always malloc'ed so we can free it later on. Do this for field, property
3210         and event.
3211
3212         * metadata.c (free_generic_class): Free field, property and event names.
3213
3214 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3215
3216         * reflection.c (fieldbuilder_to_mono_class_field): Use mono_metadata_type_dup
3217         instead of g_memdup.
3218
3219         * reflection.c (typebuilder_setup_fields): Same.
3220
3221 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
3222
3223         * decimal.c (rescale128): Optimize this function a bit more.
3224
3225 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3226
3227         * metadata.c (free_generic_class): Release some memory from
3228         SRE generic classes.
3229
3230 2008-06-03 Rodrigo Kumpera  <rkumpera@novell.com>
3231
3232         * reflection.c (mono_image_get_generic_field_token): No reference
3233         to name is kept, free it.
3234
3235         * reflection.c (mono_reflection_generic_class_initialize): Free
3236         more memory of the inflated field.
3237
3238 2008-06-03  Zoltan Varga  <vargaz@gmail.com>
3239
3240         * decimal.c (mono_decimalDiv): Moved equality checks here from managed
3241         code.
3242
3243 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
3244
3245         * reflection.c (mono_dynamic_image_free): Release memory used by
3246         MonoDynamicImage::array_methods elements.
3247
3248         * reflection.c (assembly_add_win32_resources): Release memory after
3249         encoding.
3250
3251 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
3252
3253         * decimal.c (log2_32): Use an optimized version for this function too.
3254         
3255         * decimal.c (log2_64): Fix this on 32 bit machines.
3256
3257 2008-06-02 Rodrigo Kumpera  <rkumpera@novell.com>
3258
3259         * class.c (mono_dup_array_type): Implement allocation using a mempool.
3260
3261         * class.c (mono_metadata_signature_deep_dup): Same.
3262
3263         * metadata.c (mono_metadata_signature_dup_full): Added, allow dup'ng with
3264         a mempool.
3265
3266         * metadata.c (mono_metadata_signature_dup): Delegate to the _full version.
3267
3268         * metadata.c (mono_metadata_type_dup): Remove asserts and FIXME.
3269
3270         * metadata-internals.h: Added mono_metadata_signature_dup_full.
3271
3272         * class-internals.h: Update signatures to take a MonoMemPool.
3273
3274 2008-06-02  Dick Porter  <dick@ximian.com>
3275
3276         * icall.c (ves_icall_System_ComponentModel_Win32Exception_W32ErrorMessage): 
3277         * icall-def.h: Add
3278         System.ComponentModel.Win32Exception.W32ErrorMessage, using the
3279         FormatMessage API to get the error text.  Fixes bug 321827.
3280
3281 2008-06-02  Zoltan Varga  <vargaz@gmail.com>
3282
3283         * decimal.c: Add some micro optimizations to make decimal operations faster.
3284
3285 2008-06-01 Rodrigo Kumpera  <rkumpera@novell.com>
3286
3287         * reflection.c (method_encode_clauses): Take a mempool
3288         as parameter and use it to allocate the clause array.
3289
3290         * reflection.c (mono_image_get_field_on_inst_token): Free
3291         the inflated type after encoding it.
3292
3293         * reflection.c (mono_dynamic_image_free): Free each element
3294         of MonoDynamicImage::gen_params.
3295
3296         * reflection.c (reflection_methodbuilder_to_mono_method):
3297         Allocate the generic param array from the mempool.
3298         Allocate signature params from the mempool.
3299
3300         * reflection.c (mono_reflection_generic_class_initialize):
3301         Free inflated fields after been used.
3302
3303 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
3304
3305         * icall.c: Reapply the memory leak fixes as they no
3306         longer make mono crash.
3307
3308 2008-05-30 Rodrigo Kumpera  <rkumpera@novell.com>
3309
3310         * reflection.c (mono_type_get_object): Don't store the suplied
3311         MonoType with type_hash. A caller which pass a type that
3312         was mono_metadata_type_dup'ed cannot free it reliably, as type_hash
3313         might end with a pointer to freed memory.
3314         The solution is to use byval_arg or this_arg from the associated
3315         MonoClass of the supplied type.
3316
3317 2008-05-29  Zoltan Varga  <vargaz@gmail.com>
3318
3319         * icall.c: Revert the rest of the last change as it breaks the build too.
3320
3321 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
3322
3323         * icall.c: Revert a leak fix as it's breaking the build.
3324
3325 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
3326
3327         * appdomain.c (mono_make_shadow_copy): Fix another leak of dir_name.
3328
3329 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
3330
3331         * appdomain.c (mono_make_shadow_copy): We leaked dir_name.
3332
3333 2008-05-29 Rodrigo Kumpera  <rkumpera@novell.com>
3334
3335         * icall.c: Fix some memory leaks.
3336
3337 2008-05-29  Dick Porter  <dick@ximian.com>
3338
3339         * threadpool.c (mono_thread_pool_remove_socket): Always remove the
3340         async socket operations from the pending list when a socket
3341         closes.  Leaving it until the threadpool services the event
3342         exposes a race condition when a socket descriptor is reused.
3343         Fixes bug 377589.
3344
3345 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3346
3347         * object.c: Fix negative index check for array alocation.
3348
3349 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3350
3351         * icall.c, marshal.c: Delegate wrappers should skip visibility.
3352         This check is performed by the verifier for IL created delegates
3353         and by Delegate::CreateDelegate for programatically created ones.
3354         Fixes #372406.
3355
3356 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3357
3358         * sockey-io.c (ves_icall_System_Net_Sockets_Socket_Select_internal):
3359         Fix code to use mono_array_size_t instead of int.
3360
3361         Based on patch by Luis F. Ortiz.
3362         Contributed under X11 license.
3363         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3364
3365 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3366
3367         * icall.c: Added ves_icall_System_Array_GetLongLength and
3368         ves_icall_System_Array_CreateInstanceImpl64. Both allow handling big
3369         arrays.
3370
3371         * icall.h: Export both new functions.
3372
3373         Based on patch by Luis F. Ortiz.
3374         Contributed under X11 license.
3375         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3376
3377 2008-05-28  Martin Baulig  <martin@ximian.com>
3378
3379         The debugger now requires exactly r103463.
3380
3381         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 71.
3382         This version is not supported by the debugger, wait for 72.
3383
3384 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3385
3386         * object.h: Changed array related functions to use
3387         mono_array_size_t instead of guint32. Forgot to commit this file.
3388
3389         Patch by Luis F. Ortiz.
3390         Contributed under X11 license.
3391         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3392
3393
3394 2008-05-28 Rodrigo Kumpera  <rkumpera@novell.com>
3395
3396         * object.h: Don't use G_MAXINT32 or G_MAXUINT32 as old glibs
3397         don't define it. Use the number literal instead.
3398
3399 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
3400
3401         * icall.c: Changed array related functions to use
3402         mono_array_size_t instead of guint32.
3403
3404         * icall.c (ves_icall_System_Array_GetLength): Check for length
3405         overflow under MONO_BIG_ARRAYS.
3406
3407         Based on patch by Luis F. Ortiz.
3408         Contributed under X11 license.
3409         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3410
3411 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
3412
3413         * object.c: Add 64bits bounds check for arrays under MONO_BIG_ARRAYS.
3414
3415         Based on patch by Luis F. Ortiz.
3416         Contributed under X11 license.
3417         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3418
3419 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
3420
3421         * object.c, object.h: Changed array related functions to use
3422         mono_array_size_t instead of guint32.
3423
3424         Patch by Luis F. Ortiz.
3425         Contributed under X11 license.
3426         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3427
3428 2008-05-27 Rodrigo Kumpera  <rkumpera@novell.com>
3429
3430         * object.h: Introduced mono_array_size_t typedef. This must be used
3431         in all places an array length is expected. This is 64bits wide if
3432         MONO_BIG_ARRAYS is enabled.
3433
3434         Patch by Luis F. Ortiz.
3435         Contributed under X11 license.
3436         http://lists.ximian.com/pipermail/mono-devel-list/2008-May/027995.html
3437
3438 2008-05-27  Zoltan Varga  <vargaz@gmail.com>
3439
3440         * security-manager.c class.c: Set the class exception info by calling
3441         mono_class_set_failure ().
3442
3443         * class.c (mono_class_get_exception_data): New accessor function.
3444         (mono_class_set_failure): Store exception_data in the property hash.
3445
3446         * class-internals.h (struct _MonoClass): Store 'exception_data' outside
3447         the struct as a property.
3448
3449         * loader.c (mono_get_method_full): Store the lookup result for method
3450         tokens in method_cache, the others in methodref_cache to decrease the memory
3451         usage of hash tables.
3452
3453         * image.c (mono_image_close): Destroy method_cache and methodref_cache.
3454         (mono_image_init): method_cache is lazy inited now.
3455
3456         * metadata-internals.h (struct _MonoImage): Change method_cache to
3457         a MonoValueHashTable, add a separate methodref_cache.
3458
3459 2008-05-27  Eyal Alaluf <eyala@mainsoft.com>
3460
3461         * number-formatter.h: Fix tables to avoid arithemtic overflow in
3462           Double.ToString as exposed by Bug #383531.
3463
3464 2008-05-26  Zoltan Varga  <vargaz@gmail.com>
3465
3466         * number-formatter.h: Make some tables static.
3467
3468         * class.c (mono_method_set_generic_container): New accessor function.
3469         (mono_method_get_generic_container): Ditto.
3470
3471         * class-internals.h (struct _MonoMethod): Remove rarely used 
3472         'generic_container' field, store it in the property hash instead. Add 
3473         'is_generic' boolean field instead.
3474
3475         * image.c (mono_image_init): Initialize property_hash.
3476         (mono_image_close): Destroy property_hash.
3477
3478         * metadata-internals.h (struct _MonoImage): Add 'property_hash' hash table to
3479         hold rarely used fields of runtime structures belonging to this image.
3480
3481         * class.c loader.c verify.c icall.c reflection.c: Use the new accessor functions
3482         to get/set method->generic_container.
3483
3484         * loader.c (mono_get_method_from_token): Avoid loading the method header for
3485         generic methods.
3486
3487 2008-05-25  Zoltan Varga  <vargaz@gmail.com>
3488
3489         * class.c (mono_class_inflate_generic_method_full): Don't increase
3490         mono_stats.inflated_method_count for methods found in the cache.
3491
3492         * threads.c (mono_thread_request_interruption): Add a comment about 
3493         QueueUserAPC ().
3494
3495 2008-05-24  Zoltan Varga  <vargaz@gmail.com>
3496
3497         * class.c (setup_interface_offsets): Use sizeof (guint16) when allocating the
3498         interface_offsets_packed table.
3499         
3500         * class.c (mono_class_init): Remove some dead code.
3501
3502         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Call
3503         mono_class_setup_vtable () when CAS is active to detect security problems.
3504
3505 2008-05-23 Rodrigo Kumpera  <rkumpera@novell.com>
3506
3507         * verify.c (mono_delegate_type_equal): Handle VAR, MVAR and GENERICINST.
3508
3509         * verify.c (mono_delegate_signature_equal): Don't compar number of generic
3510         parameters as it's irrelevant for delegate checking.
3511
3512 2008-05-23  Zoltan Varga  <vargaz@gmail.com>
3513
3514         * class-internals.h class.c: Correct the name of the 'mono_no_setup_vtable_in_class_init' variable.
3515
3516         * class.c (mono_class_init): Control the creation of a generic vtable using
3517         a global which is true by default, but set to false by the runtime startup code.
3518         
3519         * class.c (mono_class_init): Avoid constructing a generic vtable in most cases.
3520         Disabled for now since it breaks the embedding API.
3521         Move the setup of class->methods for arrays to mono_class_setup_methods ().
3522         (mono_class_setup_methods): Add a memory barrier.
3523
3524         * object.c (mono_class_create_runtime_vtable): Add code to handle the case
3525         when mono_class_init () doesn't compute the generic vtable.
3526         
3527 2008-05-23  Massimiliano Mantione  <massi@ximian.com>
3528         * profiler.c: Added mono_profiler_install_statistical_call_chain,
3529         mono_profiler_stat_get_call_chain_depth and mono_profiler_stat_call_chain
3530         to support call chains (backtrace) in the stat profiler.
3531         * profiler.c, profiler-private.h: Likewise.
3532
3533 2008-05-22  Mark Probst  <mark.probst@gmail.com>
3534
3535         * generic-sharing.c: Init generic class when a method of it is
3536         requested via a runtime generic context.
3537
3538 2008-05-22  Zoltan Varga  <vargaz@gmail.com>
3539
3540         * class.c (mono_class_init): Add a comment about trying to avoid calling this.
3541
3542         * reflection.c (mono_type_get_object): Add a FIXME.
3543
3544         * loader.c (find_method_in_class): Use mono_class_get_method_by_index ().
3545
3546         * class.c (mono_class_get_method_by_index): New helper function, returning an
3547         entry in the class->methods array.
3548
3549 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
3550
3551         * class.c (mono_class_init): Only do the array optimization for szarrays. 
3552         Avoid creating a generic vtable for generic instances as well.
3553         (mono_class_get_method_from_name_flags): Don't search in the metadata for
3554         generic instances.
3555
3556 2008-05-21 Rodrigo Kumpera  <rkumpera@novell.com>
3557
3558         * loader.c (mono_get_method_constrained): Inflate the signature
3559         with class context. Fix #325283.
3560
3561 2008-05-21  Zoltan Varga  <vargaz@gmail.com>
3562
3563         * object.c (mono_class_create_runtime_vtable): Add a comment.
3564
3565         * class.c (get_implicit_generic_array_interfaces): Call mono_class_init ()
3566         where needed.
3567         (setup_interface_offsets): Handle the case when this is called twice for arrays.
3568         (mono_class_setup_vtable_general): Add an assert.
3569         (mono_class_init): Avoid creating a generic vtable for arrays.
3570
3571         * class.c (mono_generic_class_get_class): Don't call setup_interface_offsets ()
3572         here, let mono_class_init () do that.
3573
3574         * class.c (mono_class_init): Avoid calling mono_class_setup_methods () for
3575         interfaces in mscorlib.
3576
3577         * class.c (mono_class_setup_vtable): Avoid calling setup_methods () for
3578         interfaces. Add some comments.
3579         (mono_class_init): Call mono_class_setup_methods () here since it is no
3580         longer called by mono_class_setup_vtable ().
3581
3582         * object.c (mono_class_proxy_vtable): Null out entries in pvt->vtable which are
3583         not set in class->vtable.
3584         (mono_class_create_runtime_vtable): Reenable the disabled code.
3585
3586         * object.c (mono_class_create_runtime_vtable): Disable the last change for
3587         now as it causes some test failures.
3588
3589         * object.c (mono_class_create_runtime_vtable): Avoid creating a generic vtable
3590         if using the vtable trampoline. Also remove some strange code which put the
3591         generic methods themselves into the vtable slots. Remove the AOT init_vtable
3592         stuff as it is no longer needed.
3593
3594 2008-05-19 Rodrigo Kumpera  <rkumpera@novell.com>
3595
3596         * pedump.c: Give make --verify all option check code as well.
3597         Using --verify code won't check for metadata now.
3598
3599 2008-05-19  Martin Baulig  <martin@ximian.com>
3600
3601         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 70.
3602
3603         * mono-debug.c
3604         (_mono_debug_using_mono_debugger): New global variable; it's set
3605         directly by the debugger, so mono_debug_using_mono_debugger() also
3606         works after attaching.
3607
3608 2008-05-18 Rodrigo Kumpera  <rkumpera@novell.com>
3609
3610         * object.c (mono_class_create_runtime_vtable): Use memory barriers
3611         as we do double checked locking on MonoClass::runtime_info and
3612         MonoClassRuntimeInfo::domain_vtables.
3613
3614 2008-05-18  Zoltan Varga  <vargaz@gmail.com>
3615
3616         * debug-helpers.c (print_field_value): Fix a warning.
3617
3618 2008-05-16  Zoltan Varga  <vargaz@gmail.com>
3619
3620         * object.c (mono_object_get_virtual_method): Fix a crash if method->slot is not
3621         set in the AOT case.
3622
3623 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
3624
3625         * class.c (mono_class_setup_vtable_general): Use memory barriers
3626         as we do double checked locking on MonoClass::vtable.
3627
3628 2008-05-16 Rodrigo Kumpera  <rkumpera@novell.com>
3629
3630         * reflection.c (resolve_object): Inflate only if the generic context
3631         is not null. Fixes #389886.
3632
3633 2008-05-15  Jonathan Chambers  <joncham@gmail.com>
3634
3635         * metadata.c (emit_marshal_string): Free return strings using mono_marshal_free
3636         instead of g_free.
3637
3638         Code is contributed under MIT/X11 license.
3639
3640 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
3641
3642         * class.c: Revert unrelated change.
3643
3644 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
3645
3646         * verify.c (check_is_valid_type_for_field_ops): Type on stack can be
3647         a generic instantiation, use mono_class_from_mono_type instead of playing
3648         with MonoType directly.
3649
3650 2008-05-14 Rodrigo Kumpera  <rkumpera@novell.com>
3651
3652         * class.c: Added mono_class_has_parent_and_ignore_generics. Visibility
3653         checks must ignore generic instantiations, so mono_class_has_parent is not
3654         suitable. Fixes #390128.
3655
3656 2008-05-14  Zoltan Varga  <vargaz@gmail.com>
3657
3658         * reflection.c (mono_image_create_token): Add a 'register_token' argument, and use
3659         it to avoid registering tokens during metadata generation. Fixes #390023.
3660
3661 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
3662
3663         * coree.c: Rename dwOldProtect to OldProtect that makes naming convention
3664         consistent.
3665
3666         Contributed under MIT/X11 license.
3667
3668 2008-05-14  Kornél Pál  <kornelpal@gmail.com>
3669
3670         * domain.c (mono_init_internal): Enable LoadLibrary support. Load EXE image
3671         even when get_runtimes_from_exe didn't load it that allows mono_fixup_exe_image
3672         to fixup the EXE image.
3673         (mono_cleanup): Use mono_close_exe_image.
3674         (mono_close_exe_image): New function.
3675         * image.c: Include "marshal.h".
3676         (mono_image_open_from_module_handle): Add ref_count argument. Return the image.
3677         (mono_image_open_full, mono_image_close): Fix LoadLibrary/FreeLibrary reference
3678         counting when the image is loaded outside of mono_image_open_full. Set status
3679         based on GetLastError.
3680         * coree.c: Include required headers. Add init_from_coree.
3681         (_CorDllMain): Support fix in mono_image_open_full, mono_image_close. Call
3682         mono_assembly_open only when the image has vtfixups. Set init_from_coree.
3683         (_CorExeMain): Set init_from_coree.
3684         (CorExitProcess): Only call ExitProcess for now.
3685         (CorBindToRuntimeEx): New stub implementation.
3686         (CorBindToRuntime): New function.
3687         (MonoFixupCorEE): Fixup CorBindToRuntime and CorBindToRuntimeEx.
3688         (MonoFixupExe): ILONLY executables require no fixups.
3689         (mono_set_act_ctx): New function to set activation context.
3690         (mono_load_coree): Use init_from_coree. Call mono_set_act_ctx.  
3691         * coree.h: Move STATUS_SUCCESS and STATUS_INVALID_IMAGE_FORMAT to header.
3692         Declare mono_module_handle, coree_module_handle, mono_get_module_file_name,
3693         mono_load_coree, mono_fixup_exe_image and mono_image_open_from_module_handle
3694         as MONO_INTERNAL.
3695         * domain-internals.h: Add mono_close_exe_image.
3696
3697         Contributed under MIT/X11 license.
3698
3699 2008-05-13 Rodrigo Kumpera  <rkumpera@novell.com>
3700
3701         * metadata.c (mono_metadata_compute_size): Correctly calculate field
3702         size for generic param and event tables. Fixes #388977.
3703
3704 2008-05-13  Zoltan Varga  <vargaz@gmail.com>
3705
3706         * loader.c (mono_method_signature): Use memory barriers because of the double
3707         checked locking pattern.
3708
3709         * threads.c (remove_and_abort_threads): Stop and wait for threads which are
3710         aborting or aborted as well. Fixes #376391.
3711         
3712         * threads.c (mono_thread_execute_interruption): Avoid depending on no longer
3713         existing runtime state in the Suspend handler during shutdown.
3714
3715 2008-05-12  Zoltan Varga  <vargaz@gmail.com>
3716
3717         * threads.c (mono_thread_request_interruption): Add some FIXMEs.
3718
3719         * threads.c (mono_thread_suspend_all_other_threads): Add support for threads 
3720         which are starting up or shutting down.
3721
3722         * threads.c (mono_threads_set_shutting_down): Don't return a value since
3723         this function never returns if the runtime is already shutting down.
3724
3725         * icall.c (ves_icall_System_Environment_Exit): Update after 
3726         mono_threads_set_shutting_down () signature change.
3727         
3728 2008-05-09 Rodrigo Kumpera  <rkumpera@novell.com>
3729
3730         * class.c: Added can_access_instantiation to verify if the instantiation
3731         is visible. Fix access check for nested types as they returned TRUE
3732         before doing type and generic instantiation visibility checks.
3733
3734 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
3735
3736         * reflection.c (mono_reflection_create_generic_class): The created type
3737         must have a different container from its TypeBuilder. Otherwise they
3738         will end sharing generic arguments, which is wrong.
3739
3740         Due to the sharing, making a generic instance of the created type using
3741         the TypeBuider generic arguments resulted in the generic type definition
3742         been returned, which is wrong as well.
3743
3744         As a bonus the code was leaking the type_params array. This memory should
3745         be allocated from the image mempool.
3746
3747         This fixes bug #354047.
3748
3749 2008-05-08 Rodrigo Kumpera  <rkumpera@novell.com>
3750
3751         * metadata-internals.h: Move MONO_SECMAN_FLAG macros from mini/declsec.h
3752         to here         as they are now used in assembly.c new code.
3753         Added a skipverification flag to MonoAssembly.
3754         New internal function mono_assembly_has_skip_verification.
3755
3756         * assembly.c: New function mono_assembly_has_skip_verification. It checks
3757         if an assembly has a version 2.0 SkipVerification security attribute. Fixes
3758         part of #387274.
3759
3760 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
3761
3762         * object.c (mono_object_get_virtual_method): Inflate the resulting method if
3763         needed. Fixes #387034.
3764
3765         * class.c (mono_class_inflate_generic_type): Avoid a crash if context is NULL.
3766
3767 2008-05-06  Miguel de Icaza  <miguel@novell.com>
3768
3769         * assembly.c (mono_assembly_load_reference): Prevent crash while
3770         disassembling Silverlight 2.0 executables while we still do not
3771         have GACed libraries.
3772
3773 2008-05-07  Zoltan Varga  <vargaz@gmail.com>
3774
3775         * reflection.c: Special case generic type definitions as well. Fixes #383444.
3776
3777 2008-05-06  Zoltan Varga  <vargaz@gmail.com>
3778
3779         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Fix handling
3780         of the dynamic case. Fixes #387404.
3781
3782 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3783
3784         *verify.c (mono_verifier_is_class_full_trust): If under
3785         verify_all and the verifier mode was not set, only
3786         gac and corlib types are fulltrust. This makes --verify-all
3787         usable to detect unverifiable code, which is the expected
3788         use case.
3789
3790 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3791
3792         * verify.h: Ops, commited the header with debug
3793         enabled.
3794
3795 2008-05-06 Rodrigo Kumpera  <rkumpera@novell.com>
3796
3797         * verify.c (merge_stack): Use the new value on unverifiable
3798         stack merges.
3799
3800         * verify.c (verify_type_compatibility_full): Comparison
3801         of nullable types can't use mono_class_is_assignable_from.
3802
3803         * verify.c, verify.h: Added MONO_VERIFY_REPORT_ALL_ERRORS
3804         that makes all verification errors be reported.
3805
3806         * pedump.c: Pass MONO_VERIFY_REPORT_ALL_ERRORS to
3807         mono_method_verify.
3808
3809 2008-05-05  Robert Jordan  <robertj@gmx.net>
3810
3811         * marshal.c (mono_marshal_get_thunk_invoke_wrapper):
3812         support for value types. See #386415.
3813
3814         * object.c: comments.
3815
3816         Code is contributed under MIT/X11 license.
3817
3818 2008-05-05  Martin Baulig  <martin@ximian.com>
3819
3820         * debug-mono-symfile.h
3821         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): Removed; dropped support
3822         for old pre-terrania symbol files.
3823
3824 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
3825
3826         * mono-config.c: Add ppc64 architecture.
3827
3828         Code is contributed under MIT/X11 license.
3829
3830 2008-05-05  Andreas Färber  <andreas.faerber@web.de>
3831
3832         * object.c (mono_create_ftnptr, mono_get_addr_from_ftnptr):
3833           PPC64 uses function descriptors as well.
3834
3835         Code is contributed under MIT/X11 license.
3836
3837 2008-05-04  Zoltan Varga  <vargaz@gmail.com>
3838
3839         * object.c (compute_class_bitmap): Ignore literal static fields.
3840
3841         * sgen-gc.c (mono_gc_base_init): Print some help when the MONO_GC_DEBUG env
3842         var has an invalid format.
3843         (describe_ptr): Add some sanity checks for the vtable.
3844         (add_nursery_frag): Clear unused nursery fragments.
3845         (major_collection): Clear all remaining nursery fragments.
3846
3847 2008-05-03  Robert Jordan  <robertj@gmx.net>
3848
3849         * image.c, metadata-internals.h: add thunk_invoke_cache.
3850
3851         * marshal.c, marshal.h: implement
3852         mono_marshal_get_thunk_invoke_wrapper ().
3853
3854         * object.c, object.h: implement mono_method_get_unmanaged_thunk ().
3855
3856         Code is contributed under MIT/X11 license.
3857
3858 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
3859
3860         * verify.c (do_leave): Empty the stack.
3861
3862 2008-05-02 Rodrigo Kumpera  <rkumpera@novell.com>
3863
3864         * class.c (mono_class_is_assignable_from): Variance
3865         doesn't work between reference and value types. For example,
3866         given type C<T+>, C<int32> is not assignable to C<object>.
3867         Break the argument checking loop on first error. 
3868
3869 2008-05-02  Atsushi Enomoto  <atsushi@ximian.com>
3870
3871         * icall.c : base64_to_byte_array() needs some more strict
3872           check for sequence of '=' characters. Patch by Santa
3873           Marta (http://deee.g.hatena.ne.jp/santamarta).
3874
3875           Contributed under MIT/X11 license.
3876           (see http://www.lingr.com/room/mono-jp/archives/2008/04/20)
3877
3878 2008-05-02  Jonathan Chambers  <joncham@gmail.com>
3879
3880         * domain.c: Disable LoadLibrary support to fix Win32 build.
3881
3882         Code is contributed under MIT/X11 license.
3883
3884 2008-05-02  Zoltan Varga  <vargaz@gmail.com>
3885
3886         * sgen-gc.c: Add support for clearing nursery memory when a tlab is allocated,
3887         to help with cache behaviour.
3888
3889 2008-05-01  Miguel de Icaza  <miguel@novell.com>
3890
3891         * appdomain.c (mono_domain_from_appdomain): Add new accessor
3892         method. 
3893
3894 2008-05-01  Zoltan Varga  <vargaz@gmail.com>
3895
3896         * sgen-gc.c: Implement thread-local allocation and a managed allocation routine.
3897
3898 2008-05-01  Dick Porter  <dick@ximian.com>
3899
3900         * process.c (process_get_fileversion): Only pass 16 bits of
3901         language ID to VerLanguageName.  Fixes bug 381204.
3902
3903 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
3904
3905         * verify.c (mono_method_verify): Fix the comparison
3906         operator for code bounds check.
3907
3908 2008-04-30 Rodrigo Kumpera  <rkumpera@novell.com>
3909
3910         * verify.c (mono_method_verify): Check the bounds of
3911         all access of the code array.
3912
3913 2008-04-29  Kornél Pál  <kornelpal@gmail.com>
3914
3915         * appdomain.c: Use HAVE_SYS_UTIME_H that fixes MSVC build.
3916
3917 2008-04-28  Zoltan Varga  <vargaz@gmail.com>
3918
3919         * image.c (mono_image_strong_name_position): Fix return value when the rva is
3920         not valid.
3921
3922 2008-04-28  Kornél Pál  <kornelpal@gmail.com>
3923
3924         * loader.c (mono_get_method_from_token, mono_method_signature): Add
3925         support for METHOD_IMPL_ATTRIBUTE_NATIVE.
3926         * domain.c (mono_init_internal): Load and fixup mscoree.dll on startup and
3927         fixup main EXE images when using mono.exe for mixed-mode assembly support.
3928         * domain-internals.h: Add MonoLoadFunc, mono_install_runtime_load and
3929         mono_runtime_load.
3930         * appdomain.c: Add mono_install_runtime_load, mono_runtime_load to support
3931         runtime initialization from metadata.
3932         * assembly.c: Remove obsolete ceGetModuleFileNameA.
3933         (mono_set_rootdir): Use mono_get_module_file_name.
3934         (mono_assembly_load_from_full): Call mono_image_fixup_vtable for module
3935         handles.
3936         * cil-coff.h: Add MonoVTableFixup. Update mono_cli_rva_image_map signature.
3937         * metadata-internals.h: Add is_module_handle to _MonoImage on Windows.
3938         * image.c (mono_cli_rva_image_map): Use MonoImage instead of
3939         MonoCLIImageInfo. Add support for module handles.
3940         (load_cli_header): Update mono_cli_rva_image_map signature.
3941         (load_metadata_ptrs): Update mono_cli_rva_image_map signature.
3942         (mono_image_strong_name_position): Use mono_cli_rva_image_map.
3943         (mono_image_rva_map): Add support for module handles.
3944         (mono_image_ensure_section_idx): Add support for module handles.
3945         (mono_image_close): Add support for module handles.
3946         (do_load_header): Add support for module handles.
3947         (mono_image_open_from_module_handle): New function for internal use.
3948         (mono_image_open_full): Load normal images using LoadLibrary on Windows.
3949         (mono_image_load_module): Call mono_image_fixup_vtable for module handles.
3950         (mono_image_load_file_for_image): Call mono_image_fixup_vtable for module
3951         handles.
3952         (mono_image_fixup_vtable): New function for mixed-mode assembly support.
3953         * image.h: Add mono_image_fixup_vtable.
3954         * coree.c: New file for mscoree.dll functions and mixed-mode assembly
3955         support.
3956         * coree.h: New file.
3957         * marshal.c (mono_marshal_get_native_wrapper): Throw exception for
3958         unsupported native code.
3959         (mono_marshal_set_callconv_from_modopt): New function splitted from
3960         mono_marshal_get_managed_wrapper.
3961         (mono_marshal_get_managed_wrapper): Use
3962         mono_marshal_set_callconv_from_modopt.
3963         (mono_marshal_get_vtfixup_ftnptr): New function for mixed-mode assembly support.
3964         * marshal.h: Add mono_marshal_get_vtfixup_ftnptr.
3965         * gc.c (mono_gc_init): Don't wait for the finalizer thread on Windows because
3966         that results in a deadlock when the runtime is loaded in _CorDllMain.
3967         * Makefile.am: Add coree.c and coree.h.
3968
3969         Contributed under MIT/X11 license.
3970
3971 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3972
3973         * generic-sharing.c: Search for type arguments in array element
3974         types as well.
3975
3976 2008-04-28  Mark Probst  <mark.probst@gmail.com>
3977
3978         * class-internals.h, generic-sharing.c: New, small runtime generic context.
3979
3980         * metadata-internals.h, domain.c, image.c: Less bookkeeping is required for the new RGCTX.
3981
3982         * object.c: Don't setup the RGCTX when the vtable is created,
3983         because we're setting it up lazily now.
3984
3985 2008-04-26  Zoltan Varga  <vargaz@gmail.com>
3986
3987         * sgen-gc.c: Make the 'desc' variables an mword instead of a guint32 to fix 
3988         64 bit support.
3989
3990 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3991
3992         * verify.c (verify_class_for_overlapping_reference_fields): 
3993         If class is under fulltrust allow reference types to overllap
3994         if they have the same RVA.
3995
3996 2008-04-24 Rodrigo Kumpera  <rkumpera@novell.com>
3997
3998         * pedump.c: Added new flag valid-only, that makes the verifier
3999         behaves just like --security=validil. It won't fail type load
4000         due to unverifiable restrictions.
4001
4002 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
4003
4004         * class-internals.h (struct MonoMethod): Added a verification_success
4005         field to cache verifier executions. Reduced MonoMethod:slot size by
4006         one bit.
4007
4008 2008-04-23  Zoltan Varga  <vargaz@gmail.com>
4009
4010         * sgen-gc.c (OBJ_RUN_LEN_SIZE): Make this and other macros take a 'desc' argument
4011         instead of a 'vt' argument to save an indirection and to allow these to be used
4012         for valuetypes.
4013         (scan_vtype): New helper function to scan an area using a gc descriptor.
4014         (mono_gc_wbarrier_value_copy): Implement this.
4015         (handle_remset): Add support for REMSET_VTYPE.
4016         (find_in_remset_loc): Ditto.
4017         (mono_gc_base_init): Allow some debugging options to be controlled through the
4018         use of the MONO_GC_DEBUG env variable.
4019         (mono_gc_alloc_obj): Add support the 'collect-before-allocs' debug option.
4020         (collect_nursery): Add support for the 'check-at-minor-collection' debug option.
4021
4022 2008-04-23  Martin Baulig  <martin@ximian.com>
4023
4024         * domain.c (mono_domain_create): Move the call to
4025         mono_debug_domain_create() down, after allocating the domain id.
4026
4027 2008-04-23 Rodrigo Kumpera  <rkumpera@novell.com>
4028
4029         verify.c (verify_class_for_overlapping_reference_fields): Skip
4030         static fields while verifying for overlapping fields as they
4031         don't matter at all.
4032
4033 2008-04-23  Marek Habersack  <mhabersack@novell.com>
4034
4035         * domain-internals.h: added a declaration of
4036         mono_make_shadow_copy.
4037
4038         * assembly.c (mono_assembly_open_full): shadow copying of
4039         assemblies moved to here, so that all the assemblies within the
4040         application domain's private binary directories can be
4041         processed. Fixes bug #380546
4042
4043         * appdomain.c (mono_make_shadow_copy): make_shadow_copy renamed to
4044         mono_make_shadow_copy and made non-static. The decision whether
4045         to shadow-copy an assembly is made based on its location - it's
4046         copied if it's in one of the private application domain binary
4047         directories and its different to the target file in the shadow
4048         directory. Fixes bug #380546
4049
4050 2008-04-22  Zoltan Varga  <vargaz@gmail.com>
4051
4052         * reflection.c (fixup_method): Handle {Method|Constructor}OnTypeBuilderInst.
4053
4054         * object-internals.h: Add MonoReflection{Method|Constructor}OnTypeBuilderInst
4055         types.
4056
4057         * reflection.c (mono_image_create_token): Handle 
4058         Method/ConstructorOnTypeBuilderInst.
4059         (resolve_object): Ditto.
4060         (inflate_mono_method): Receive the inflated class instead of a MonoGenericClass
4061         so it can be called from resolve_object. Also handle the case when the inflated
4062         class already has its methods setup.
4063
4064 2008-04-21  Martin Baulig  <martin@ximian.com>
4065
4066         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 69.
4067
4068 2008-04-20  Geoff Norton  <gnorton@novell.com>
4069
4070         * icall.c: Fix the _NSGetEnviron define to prevent an impropoer
4071         pointer dereference.
4072
4073 2008-04-15  Marek Habersack  <mhabersack@novell.com>
4074
4075         * appdomain.c (try_load_from): if IOMAP is in effect, call the
4076         portability API to look up the assembly file. Fixes behavior in
4077         situations when the application has a bin/ directory, but the
4078         assembly search patch refers to Bin/ (and thus the requested file
4079         name is Bin/SomeLibrary.dll). Fixes bug #379888
4080
4081 2008-04-15 Rodrigo Kumpera  <rkumpera@novell.com>
4082
4083         verify.c (mono_type_is_generic_argument): Extracted this check
4084         from a dozen places to here.
4085
4086         verify.c: Fixed all issues related to boxing generic arguments
4087         and their constraints.
4088
4089 2008-04-14 Rodrigo Kumpera  <rkumpera@novell.com>
4090
4091         verify.c (mono_class_interface_implements_interface): Fix win32 build.
4092
4093 2008-04-14  Zoltan Varga  <vargaz@gmail.com>
4094
4095         * reflection.c (mono_custom_attrs_construct): Fix crash when the cattr type
4096         isn't finished yet. Fixes #363447.
4097
4098 2008-04-13  Zoltan Varga  <vargaz@gmail.com>
4099
4100         * class.c (mono_bounded_array_class_get): Fix the name of bounded array types.
4101         Fixes #346419.
4102
4103 2008-04-13  Jb Evain  <jbevain@novell.com>
4104
4105         * domain.c: update the 2.1 profile versions.
4106         Merged from the Moonlight 2 branch.
4107
4108 2008-04-12  Zoltan Varga  <vargaz@gmail.com>
4109
4110         * assembly.c (mono_assembly_load_from_full): Do the check for loading other
4111         mscorlibs for the non-refonly case as well.
4112
4113         * image.c (do_mono_image_load): Remove the mscorlib check, it is already done
4114         in mono_assembly_load_from_full (). Fixes #378924.
4115
4116 2008-04-11  Geoff Norton  <gnorton@novell.com>
4117
4118         * icall.c: The global extern environ doesn't exist on Mac.  We
4119         need to call NSGetEnviron instead.
4120
4121 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
4122
4123         verify.c: Add generic method constraint verification.
4124
4125 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
4126
4127         class.c (mono_class_inflate_generic_method_full): Add a long
4128         explanation to the is_mb_open hack. Remove the FIXME.
4129
4130 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
4131
4132         * verify.c (mono_method_verify): Mark all unknown opcodes
4133         as invalid. Mark jmp as unverifiable.
4134
4135 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
4136
4137         * verify.c: Add code to do type constraint verification on class instances.
4138
4139         * verify.c (mono_verifier_verify_class): Use the type constraint 
4140         verification code.
4141
4142 2008-04-10 Rodrigo Kumpera  <rkumpera@novell.com>
4143
4144         * class.c (mono_class_get_field_default_value): Don't pass cindex
4145         as hint to mono_metadata_get_constant_index. The local is not initialized
4146         and should contain garbage most of the time. This could only work
4147         with a lot of luck.
4148
4149 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
4150
4151         * tokentype.h: Add MONO_TOKEN_GENERIC_PARAM.
4152
4153 2008-04-09 Rodrigo Kumpera  <rkumpera@novell.com>
4154
4155         * class-internals.h: Add generic_param_token to MonoClass::sizes union.
4156
4157         * class.c (mono_class_from_generic_parameter): Save the token of the
4158         generic param in MonoClass::sizes.generic_param_token.
4159
4160         * reflection.c (mono_custom_attrs_from_class): If the class type is
4161         VAR or MVAR retrieve the attributes of the generic param.
4162
4163 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
4164
4165         * class.c (mono_class_init): Do class verification if the verifier
4166         is enabled.
4167
4168 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
4169
4170         * verify-internal.h: Added mono_verifier_verify_class.
4171
4172         * verify.c: Added mono_verifier_verify_class. It checks for
4173         classes with explicit layout that have overlapping reference fields.
4174
4175         * pedump.c: Init the verifier state prior to verification. Fixed
4176         command line arguments.
4177
4178 2008-04-08 Rodrigo Kumpera  <rkumpera@novell.com>
4179
4180         * Makefile.am: Added verify-internals.h, hopefully fix the build.
4181
4182 2008-04-08  Zoltan Varga  <vargaz@gmail.com>
4183
4184         * verify-internals.h: Fix a warning.
4185
4186 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
4187
4188         * verify-internals.h: New header with the verifier configuration
4189         extracted from mini.c.
4190
4191         * verify.c: Implemented the new functions exported by verify-internals.h.
4192
4193 2008-04-07 Rodrigo Kumpera  <rkumpera@novell.com>
4194
4195         * verify.c: Add proper verification of ckfinite.
4196
4197 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
4198
4199         * verify.c (do_conversion): Improved error message to something
4200         more meanfull.
4201
4202         * verify.c (check_is_valid_type_for_field_ops): Fix to work
4203         with primitive types.
4204
4205 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
4206
4207         * verify.c: Added tail prefix checking. Marked icall
4208         as unverifible.
4209
4210 2008-04-04 Rodrigo Kumpera  <rkumpera@novell.com>
4211
4212         * verify.c: Fix the detection of branches to the middle
4213         of an instruction.
4214
4215 2008-04-03 Rodrigo Kumpera  <rkumpera@novell.com>
4216
4217         * verify.c: Implemented verification of volatile. and
4218         unaligned. prefix. Check if a type is valid after retrieving it.
4219
4220 2008-04-01  Dick Porter  <dick@ximian.com>
4221
4222         * process.c (process_get_fileversion): If there's no string block,
4223         set the file language to en_US.  Fixes the other new part of bug
4224         374600.
4225
4226 2008-03-29 Rodrigo Kumpera  <rkumpera@novell.com>
4227
4228         * class.c: New functions mono_method_can_access_field_full and
4229         mono_method_can_access_method_full. They perform type visibility
4230         and type site check.
4231
4232         * class-internal.h: Added exported functions.
4233
4234         * verify.c: Use new functions to implement proper visibility checks.
4235
4236 2008-03-29  Zoltan Varga  <vargaz@gmail.com>
4237
4238         * mono-config.h: Add missing G_BEGIN_DECLS/G_END_DECLS. Fixes #375188.
4239
4240 2008-03-28  Dick Porter  <dick@ximian.com>
4241
4242         * process.c (process_get_fileversion): Use the first language ID
4243         we see, rather than insisting on an invariant language.  Fixes bug
4244         374600.
4245
4246 2008-03-28  Zoltan Varga  <vargaz@gmail.com>
4247
4248         * reflection.c (calc_section_size): Use add_stream_zero to align the size of
4249         the streams to fix reading of invalid memory later.
4250
4251         * metadata.h (MonoType): Use 'MonoTypeEnum' instead of int for the 'type' field
4252         to ease debugging.
4253
4254 2008-03-26  Zoltan Varga  <vargaz@gmail.com>
4255
4256         * marshal.c (signature_dup): Use mono_metadata_signature_alloc ().
4257         (cominterop_method_signature): Ditto. Fix the size passed to memcpy.
4258
4259 2008-03-26  Massimiliano Mantione  <massi@ximian.com>
4260         * threads.h: Added MonoThreadManageCallback type and
4261         mono_thread_set_manage_callback prototype
4262         * object-internals.h: In _MonoThread, renamed unused6 to manage_callback
4263         (used to store the mono_thread_manage callback).
4264         * threads.c: Added mono_thread_set_manage_callback, and handle
4265         "MonoThread->manage_callback" in build_wait_tids.
4266
4267 2008-03-26  Dick Porter  <dick@ximian.com>
4268
4269         * process.c (process_get_fileversion): Set FileVersionInfo strings
4270         to Empty when the resource doesn't have the particular info.
4271         Fixes bug 355717.
4272
4273 2008-03-25 Rodrigo Kumpera  <rkumpera@novell.com>
4274
4275         * verify.c (mono_method_verify): Proper prefix validation.
4276
4277 2008-03-25  Zoltan Varga  <vargaz@gmail.com>
4278
4279         * icall.c (ves_icall_InternalInvoke): Return exceptions thrown by the icall
4280         itself in a separate argument instead of throwing them. Fixes #373448.
4281
4282         * appdomain.c: Bump corlib version.
4283
4284 2008-03-24 Rodrigo Kumpera  <rkumpera@novell.com>
4285
4286         * verify.c: Implemented readonly prefix and verify controled mutability pointers.
4287
4288 2008-03-20  Kornél Pál  <kornelpal@gmail.com>
4289
4290         * file-io.c, filewatcher.c, threadpool.c, threads.c: Removed Windows
4291         version macros.
4292
4293 2008-03-20  Mark Probst  <mark.probst@gmail.com>
4294
4295         * generic-sharing.c, class-internals.h: Code for putting
4296         reflection types into the runtime generic context.
4297
4298 2008-03-19 Rodrigo Kumpera  <rkumpera@novell.com>
4299
4300         * icall.c (ves_icall_get_method_info): Return correct values for the call convention.
4301         Fixes #340662. 
4302
4303
4304 2008-03-17 Rodrigo Kumpera  <rkumpera@novell.com>
4305
4306         * verify.c (VerifyContext): Added instruction prefix data to the struct.
4307
4308         * verify.c (is_compatible_boxed_valuetype): Don't check if the type is a valuetype, been boxed is enough.
4309
4310         * verify.c (do_invoke): Support constrained callvirt form. Grouped similar checks together.
4311
4312         * verify.c (do_cast): Let the result value keep the boxed status.
4313
4314         * verify.c (mono_method_verify): Add proper support for prefixed and implement contrained.
4315
4316 2008-03-17  Jb Evain  <jbevain@novell.com>
4317
4318         * reflection.c: when running on a 2.0 runtime, emit
4319         unconditionally the #~ header version as 2.0, and the
4320         CLI header version as 2.5, for symmetry's sake with csc.
4321
4322 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
4323
4324         * class.c: Remove the unused cache_interface_offsets stuff.
4325
4326         * class.c loader.c domain.c verify.c metadata.c debug-helpers.c threadpool.c
4327         profiler.c: Fix warnings.
4328
4329 2008-03-16  Mark Probst  <mark.probst@gmail.com>
4330
4331         * generic-sharing.c, class-internals.h: Support for putting
4332         methods into the runtime generic context.
4333
4334 2008-03-16  Zoltan Varga  <vargaz@gmail.com>
4335
4336         * class.c (mono_class_setup_fields): Ignore calls made to this function for
4337         classes which are generic instances of not-yet finished typebuilders. Fixes
4338         #351172.
4339
4340         * reflection.c (fixup_method): Add support for FieldOnTypeBuilderInst.
4341
4342 2008-03-15  Zoltan Varga  <vargaz@gmail.com>
4343
4344         * metadata-internals.h (MonoDynamicImage): Add 'generic_def_objects' hash table.
4345
4346         * class-internals.h (MonoMethodInflated): Remove the rarely used reflection_info
4347         field, replace it with a hash table in MonoDynamicImage.
4348
4349         * reflection.c (inflate_mono_method): Access the generic definition object from
4350         image->generic_def_objects instead of imethod->reflection_info.
4351
4352         * reflection.c (mono_reflection_bind_generic_method_parameters): Ditto. 
4353
4354         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Ditto.
4355         
4356         * image.c (mono_image_close): Move the dynamic image freeing code to a separate
4357         function in reflection.c so it is easier to keep in sync with the dynamic image
4358         creation code.
4359
4360         * reflection.c (mono_dynamic_image_free): New internal function, extracted from
4361         mono_image_close ().
4362
4363 2008-03-15  Mark Probst  <mark.probst@gmail.com>
4364
4365         * class.c (mono_class_generic_sharing_enabled): Disable generic
4366         sharing for all architectures except AMD64 and x86 to fix build.
4367
4368 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
4369
4370         * verify.c: Use the generic definition MonoGenericContext when available.
4371         Remove code for checking generics instance compatibility in favor of
4372         mono_class_is_assignable_from.
4373
4374 2008-03-14  Mark Probst  <mark.probst@gmail.com>
4375
4376         * marshal.c, marshal.h, metadata-internals.h, image.c,
4377         wrapper-types.h: New wrapper for invoking a shared static method
4378         without having to pass the runtime generic context argument.
4379
4380 2008-03-14 Rodrigo Kumpera  <rkumpera@novell.com>
4381
4382         * icall-def.h: Add missing function PerformanceCounterCategory::GetInstanceNames.
4383
4384 2008-03-14  Zoltan Varga  <vargaz@gmail.com>
4385
4386         * reflection.c (mono_image_get_field_on_inst_token): Add caching.
4387         
4388         * reflection.c (mono_image_get_field_on_inst_token): New helper function to
4389         create a token from a FieldOnTypeBuilderInst.
4390         (mono_image_create_token): Handle FieldOnTypeBuilderInst.
4391         (resolve_object): Ditto.
4392
4393         * object-internals.h (MonoReflectionFieldOnTypeBuilderInst): New structure
4394         mirroring System.Reflection.Emit.FieldOnTypeBuilderInst.
4395
4396 2008-03-14  Martin Baulig  <martin@ximian.com>
4397
4398         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 68.
4399
4400         * debug-mono-symfile.h
4401         (MONO_SYMBOL_FILE_VERSION): Bump to 41.
4402         (MONO_SYMBOL_FILE_COMPATIBILITY_VERSION): New #define.
4403
4404 2008-03-10  Martin Baulig  <martin@ximian.com>
4405
4406         * debug-mono-symfile.h
4407         (MonoSymbolFileMethodAddress): Removed `num_lexical_blocks' and
4408         `lexical_block_table_offset'.
4409         (MonoDebugMethodInfo): Removed `num_lexical_blocks' and
4410         `lexical_blocks'.
4411         (MonoSymbolFile): Added `version'.
4412
4413         * mono-debug.h
4414         (MonoDebugLexicalBlockEntry): Removed.
4415         (MonoDebugMethodJitInfo): Removed `num_lexical_blocks' and
4416         `lexical_blocks'.
4417
4418         * mono-debug.c (mono_debug_add_method): Don't compute lexical
4419         blocks here; the debugger now does this internally.
4420
4421 2008-02-27  Martin Baulig  <martin@ximian.com>
4422
4423         * object.c (mono_runtime_exec_main): Call
4424         `mono_debugger_event (MONO_DEBUGGER_EVENT_REACHED_MAIN)' and
4425         `mono_debugger_event (MONO_DEBUGGER_EVENT_MAIN_EXITED)' here.
4426
4427 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
4428
4429         * verify.c (verify_type_compatibility_full): Allow native int to be converted
4430         to native pointer in non-strict mode. Required to "(IntPtr)null" work.
4431
4432 2008-03-12 Rodrigo Kumpera  <rkumpera@novell.com>
4433
4434         * verify.c (verify_ldftn_delegate): Accept a sealed type when using
4435         ldftn with a virtual method.
4436
4437 2008-03-13  Geoff Norton  <gnorton@novell.com>
4438
4439         * decimal.c:  Only include memory.h if the platform has it.
4440
4441 Wed Mar 12 12:11:06 CET 2008 Paolo Molaro <lupus@ximian.com>
4442
4443         * assembly.c, class.c, metadata-internals.h: make sure public key
4444         tokesns are compared in a case-insensitive way. Also, all
4445         the lookups in the GAC use a lowercase public key token
4446         (gaacutil already does the lowercasing on install). Fixes
4447         bug #369541.
4448
4449 2008-03-11 Rodrigo Kumpera  <rkumpera@novell.com>
4450
4451         * verify.c (mono_delegate_signature_equal): Do proper variance check on arguments
4452         and return value.
4453
4454 Tue Mar 11 17:41:38 CET 2008 Paolo Molaro <lupus@ximian.com>
4455
4456         * image.c: when someone loads a mscorlib from a file, return the
4457         currently loaded mscorlib (fixes bug #369253).
4458
4459 Tue Mar 11 16:47:32 CET 2008 Paolo Molaro <lupus@ximian.com>
4460
4461         * class.c: handle types with no parents by forcing them to have
4462         System.Object as a parent and marking them as broken (this currently
4463         allows the first part of bug #369173 to work as well, likely because
4464         we don't check for typeload exceptions everywhere yet).
4465
4466 Tue Mar 11 15:23:54 CET 2008 Paolo Molaro <lupus@ximian.com>
4467
4468         * class.c: more complete check that types belong to corlib
4469         (fixes second part of bug #369173).
4470
4471 2007-03-10  Bill Holmes  <billholmes54@gmail.com>
4472
4473         * generic-sharing.c:  Including glib.h for the MSVC builds to define
4474           "inline" to "__inline" before including mono-membar.h.
4475           
4476         * mono-perfcounters.c:  Adding HAVE_SYS_TIME_H check for MSVC builds.
4477           Rename "Unknown" to "CatTypeUnknown" to avoid name collisions for 
4478           MSVC builds.
4479
4480         Contributed under MIT/X11 license.
4481
4482 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
4483
4484         * verify.c (do_invoke_method): Remove return type validation.
4485
4486         * verify.c (do_ret): Do return type validation at return site instead of
4487         call site.
4488
4489 2008-03-10 Rodrigo Kumpera  <rkumpera@novell.com>
4490
4491         * verify.c (do_invoke_method): Mark callvirt to static methods unverifiable.
4492
4493         * verify.c: Some todos cleaned and improved a few error messages.
4494
4495 2008-03-08  Zoltan Varga  <vargaz@gmail.com>
4496
4497         * class.c (mono_class_setup_mono_type): Improve the test for corlib.
4498
4499 2008-03-07  Zoltan Varga  <vargaz@gmail.com>
4500
4501         * class.c (mono_class_setup_mono_type): Handle types whose name clashes with
4502         system types correctly.
4503
4504         * exception.h exception.c (mono_exception_from_token_two_strings): New helper
4505         function.
4506
4507 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
4508
4509         * assembly.c (build_assembly_name): Fix a warning.
4510
4511 Thu Mar 6 19:43:41 CET 2008 Paolo Molaro <lupus@ximian.com>
4512
4513         * marshal.c: ldfld_remote and stfld_remote needs just one wrapper as
4514         the called function takes an object type argument. Fixes storing or
4515         valuetypes across remoting as well as reducing memory usage.
4516         * image.c, metadata-internals.h: remove now unused ldfld_remote and
4517         stfld_remote wrapper caches.
4518
4519 2008-03-06  Zoltan Varga  <vargaz@gmail.com>
4520
4521         * icall.c (mono_lookup_internal_call): Update the exception message when an icall
4522         is not found.
4523
4524         * reflection.c (mono_image_register_token): New helper function to save
4525         a token->object mapping.        
4526
4527         * icall.c (ves_icall_ModuleBuilder_RegisterToken): New icall to access it from
4528         managed code.
4529
4530         * reflection.c (_mono_reflection_parse_type): Distinguish between vectors and
4531         one dimension arrays. Fixes #367670.
4532         (mono_reflection_get_type_internal): Ditto.
4533
4534 Tue Mar 4 19:04:02 CET 2008 Paolo Molaro <lupus@ximian.com>
4535
4536         * marshal.c: mono_load_remote_field_new() always returns object.
4537         so use the proper signature (fixes bug #366445).
4538
4539 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
4540         
4541         * class-internals.h (MonoMethod): Remove unused uses_this flag, 
4542         add an 'inline_failure' flag instead.
4543
4544 2008-03-04  Mark Probst  <mark.probst@gmail.com>
4545
4546         * domain-internals.h, domain.c: Replaced MonoGenericSharingContext
4547         with a new structure, MonoGenericJitInfo, in the MonoJitInfo.  It
4548         contains the location of "this", used for exception handling.
4549
4550 2008-03-04  Zoltan Varga  <vargaz@gmail.com>
4551
4552         * class.c (mono_class_layout_fields): Set the min alignment of small structs to
4553         their size on all platforms for perf reasons.
4554
4555 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
4556
4557         * reflection.h: Move mono_reflection_is_valid_dynamic_token to
4558         object-internal.h
4559
4560         * object-internal.h: Same.
4561
4562 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
4563
4564         * reflection.h: Fix the build I just broke.
4565
4566 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
4567
4568         * reflection.c (mono_reflection_is_valid_dynamic_token): New function,
4569         Test if a token is valid, this remove explicit usage of 
4570         MonoDynamicImage::tokens from the verifier code.
4571
4572         * reflection.h: Added mono_reflection_is_valid_dynamic_token.
4573
4574         * verify.c (token_bounds_check): Use mono_reflection_is_valid_dynamic_token
4575         instead of direct access to MonoDynamicImage::tokens.
4576
4577 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
4578
4579         * verify.c (token_bounds_check): Fix the build I just broke.
4580
4581 2008-03-03 Rodrigo Kumpera  <rkumpera@novell.com>
4582
4583         * verify.c (token_bounds_check): Fix bounds check for dynamic images.
4584
4585         * verify.c (verifier_load_method): Fixed the errors message.
4586
4587         * verify.c (mono_method_verify): Fixed a debug message.
4588
4589 Thu Feb 28 19:49:45 CET 2008 Paolo Molaro <lupus@ximian.com>
4590
4591         * icall-def.h, domain.c, mono-perfcounters-def.h, mono-perfcounters.c,
4592         mono-perfcounters.h, class-internals.h: support for predefined
4593         writable counters, query of categories and counters, bugfixes.
4594
4595 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
4596
4597         * verify.c (do_refanytype): Verify the refanytype opcode.
4598
4599         * verify.c (mono_method_verify): Use do_refanytype.
4600
4601 2008-02-28 Rodrigo Kumpera  <rkumpera@novell.com>
4602
4603         * verify.c (do_mkrefany): Verify the mkrefany opcode.
4604
4605         * verify.c (mono_method_verify): Use do_mkrefany.
4606
4607 Wed Feb 27 19:49:16 CET 2008 Paolo Molaro <lupus@ximian.com>
4608
4609         * Makefile.am, icall-def.h, icall.c, mono-perfcounters-def.h,
4610         mono-perfcounters.c, mono-perfcounters.h: basic performance counter
4611         implementation.
4612
4613 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
4614
4615         * marshal.c (mono_marshal_get_synchronized_wrapper): Fix the code which throws
4616         the type load exception.
4617
4618 2008-02-27 Rodrigo Kumpera  <rkumpera@novell.com>
4619
4620         * verify.c: Added a few FIXME for method signatures
4621
4622         * verify.c (do_invoke_method): Use mono_method_get_signature_full instead
4623         of mono_method_get_signature and get vararg call working. Removed unused
4624         checks for return value.
4625
4626         * verify.c (do_refanyval): Verify the refanyval opcode.
4627
4628         * verify.c (mono_method_verify): Implemented verification of arglist and
4629         use do_refanyval.
4630
4631 2008-02-27  Zoltan Varga  <vargaz@gmail.com>
4632
4633         * class.c (mono_class_setup_methods): Move the check for synchronized methods on
4634         vtypes to marshal.c.
4635
4636         * marshal.c (mono_marshal_get_synchronized_wrapper): Do the vtype check here so
4637         it works for AOT as well.
4638
4639 Tue Feb 26 17:46:32 CET 2008 Paolo Molaro <lupus@ximian.com>
4640
4641         * monitor.c, threads.c, threadpool.c: replace the use of GetTickCount ()
4642         with mono_msec_ticks () which is monotonic and doesn't cause bugs when
4643         the system time is adjusted.
4644
4645 Tue Feb 26 17:40:10 CET 2008 Paolo Molaro <lupus@ximian.com>
4646
4647         * icall.c, icall-def.h: use the new time functions (fixes the
4648         non-monotonic behaviour of TickCount).
4649
4650 2008-02-26  Zoltan Varga  <vargaz@gmail.com>
4651
4652         * reflection.c (mono_custom_attrs_from_builders): Revert the last change as
4653         it breaks the build.
4654         
4655         * reflection.c (mono_custom_attrs_from_builders): Assert instead of a crash if the
4656         cattr is not finished yet.
4657
4658 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
4659
4660         * verify.c: Proper token validation for field, method and type.
4661
4662 2008-02-25 Rodrigo Kumpera  <rkumpera@novell.com>
4663
4664         * loader.c (field_from_memberref): Generate a loader error if the type is not found.
4665
4666         * loader.c (method_from_memberref): Generate type load error instead of method missing
4667         if the type is not found.
4668
4669 2008-02-23  Zoltan Varga  <vargaz@gmail.com>
4670
4671         * marshal.c (mono_marshal_emit_managed_wrapper): Avoid generating invalid IL if
4672         some of the conversions caused the generation of a marshal directive exception.
4673
4674 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
4675
4676         verify.c: Report which exception should be thrown by the JIT.
4677         Added a lot of FIXME notes.
4678
4679 2008-02-22  Mark Probst  <mark.probst@gmail.com>
4680
4681         * generic-sharing.c: Runtime generic context slots are not
4682         instantiated on init anymore.  Instead, provide function to do the
4683         instantiating on demand.
4684
4685         * class-internals.h: Added vtable to runtime generic context.
4686         Macros for encoding direct and indirect slot offsets in one
4687         guint32.
4688
4689 2008-02-21  Mark Probst  <mark.probst@gmail.com>
4690
4691         * object.c, generic-sharing.c: Moved some generic sharing code
4692         from object.c to generic-sharing.c.
4693
4694         * generic-sharing.c: Added support for extensible runtime generic
4695         context.
4696
4697         * metadata-internals.h: Two new hash tables in MonoImage for
4698         extensible runtime generic context support.
4699
4700         * domain.c: Unregister generic vtables upon domain unloading.
4701
4702         * image.c: Destroy new hash tables upon image unloading.
4703
4704         * metadata.c: Unregister generic subclasses upon image unloading.
4705
4706         * class-internals.h: New data structure for runtime generic
4707         context template.  New fields in the runtime generic context for
4708         extensible part.
4709
4710         * Makefile.am: Added generic-sharing.c.
4711
4712 2008-02-21 Rodrigo Kumpera  <rkumpera@novell.com>
4713
4714         icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): If
4715         there is a pending loader exception, raise it.
4716
4717         icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
4718         same.
4719
4720         icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): 
4721         same.
4722
4723         Fixes #363450.
4724
4725 2008-02-20  Zoltan Varga  <vargaz@gmail.com>
4726
4727         * icall.c (ves_icall_Type_GetPacking): Handle dynamic types.
4728
4729         * assembly.c (mono_assembly_load_from_full): Fix a leak in the previous patch.
4730         
4731         * assembly.c (mono_assembly_load_from_full): Return the non-refonly corlib for
4732         ref-only requests for compatibility with MS.
4733
4734 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
4735
4736         * reflection.c (mono_custom_attrs_from_method): Don't silently
4737         return an empty list for generic method instances.
4738         (mono_custom_attrs_from_param): Likewise.
4739
4740 2008-02-20  Rodrigo Kumpera  <rkumpera@novell.com>
4741             Raja R Harinath  <harinath@hurrynot.org>
4742
4743         Fix #354757
4744         * class-internals.h (struct _MonoMethodInflated.is_mb_open): Add.
4745         * class.c (mono_class_inflate_generic_method_full): Initialize it
4746         when a fully-open method is instantiated.
4747         * metadata.c (inflated_method_equal, inflated_method_hash): Update
4748         to new field.
4749         * reflection.c (inflate_mono_method): Don't create a temporary context.
4750
4751 2008-02-20  Raja R Harinath  <harinath@hurrynot.org>
4752
4753         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
4754         Compute correct value, to prepare for imethod->reflection_info going away.
4755
4756 2008-02-19  Zoltan Varga  <vargaz@gmail.com>
4757
4758         * class.c (mono_class_setup_vtable_general): Ignore static methods in interfaces.
4759
4760 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
4761
4762         * verify.c: Implement skip visibility flag.
4763
4764 2008-02-18 Rodrigo Kumpera  <rkumpera@novell.com>
4765
4766         * verify.h: Added MONO_VERIFY_SKIP_VISIBILITY and struct MonoVerifyInfoExtended
4767         which contains an extra field to tell the kind of exception that should be thrown.
4768
4769         * verify.c: Use MonoVerifyInfoExtended instead of MonoVerifyInfo.
4770
4771 2008-02-17  Raja R Harinath  <harinath@hurrynot.org>
4772
4773         * loader.c (mono_method_get_param_names): Initialize 'klass' after
4774         'method' is updated.
4775
4776 2008-02-11  Zoltan Varga  <vargaz@gmail.com>
4777
4778         * class.c (mono_class_layout_fields): Set class->min_align for classes using
4779         explicit layout as well. Fixes #360375.
4780
4781 2008-02-11  Geoff Norton  <gnorton@novell.com>
4782
4783         * loader.c: Guard and dereference against inflated generic methods
4784
4785 2008-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
4786
4787         * class.c: Include Retargetable spec in assembly name.
4788         * assembly.c: Always include PublicKeyToken spec in assembly name
4789         (with value "null" if assembly is not signed), and include
4790         Retargetable spec.
4791         * icall-def.h: Added icall for Assembly.get_fullname.
4792         * icall.c: Added icall returning the fullname of an assembly.
4793
4794 2008-02-09  Zoltan Varga  <vargaz@gmail.com>
4795
4796         * class.c (mono_class_setup_vtable_general): Add a missing call to
4797         mono_class_setup_methods () which is needed in the AOT case.
4798
4799 2008-02-08 Rodrigo Kumpera  <rkumpera@novell.com>
4800
4801         * verify.c (mono_type_get_stack_name): Added. Return the name for the
4802         stack type of the given MonoType.
4803
4804         * verify.c (verify_type_compatibility_full): Handle the void type.
4805
4806         * verify.c (is_compatible_boxed_valuetype): Changed to fit the
4807         way stack merging works.
4808
4809         * verify.c (store_local): Improved verification message.
4810
4811         * verify.c (do_branch_op): If the merging is invalid, the method
4812         is unverifiable and not invalid. Improved error message.
4813
4814         * verify.c (merge_stacks): Properly merge a boxed valuetype and
4815         a reference type diferent than System.Object. Improved error
4816         message.
4817
4818 2008-02-07 Rodrigo Kumpera  <rkumpera@novell.com>
4819
4820         * verify.c (mono_type_is_enum_type): Added. Test if a type is an enum.
4821
4822         * verify.c (mono_type_get_underlying_type_any): Added. Return the underlying
4823         type of an enum even if the argument is byref.
4824
4825         * verify.c: Replace all explicit uses of enumtype and enum_basetype
4826         to calls to mono_type_is_enum_type and mono_type_get_underlying_type_any.
4827
4828         * verify.c: Check for an enum in all cases of MONO_TYPE_GENERICINST.
4829
4830         *verify.c (verify_type_compatibility_full): Make enum types
4831         compatible with their base types.
4832
4833         * verify.c (is_compatible_boxed_valuetype): Added. Check if both
4834         types are compatible for the special case of a boxed valuetype and
4835         System.Object.
4836
4837         * verify.c (verify_stack_type_compatibility): The function
4838         is_compatible_boxed_valuetype was extracted from here.
4839
4840         * verify.c (push_arg): Only set ctx->has_this_store if the method
4841         is not static.
4842
4843         * verify.c (do_ldelem): Fixed a typo in an error message and added
4844         strict check for mixing int32 and native int as the array type
4845         and ldelem type.
4846
4847         * verify.c (merge_stacks): Consider boxed valuetypes in the
4848         compatibility checks.
4849
4850 2008-02-07  Massimiliano Mantione  <massi@ximian.com>
4851         * profiler.h: (MonoGCEvent): Added start-stop the world events.
4852
4853 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
4854         *class.c: use_new_interface_vtable_code: renamed the env var to have
4855         a "MONO_" prefix, and fix the logic to enable it by default.
4856
4857 2008-02-06  Massimiliano Mantione  <massi@ximian.com>
4858         *class.c:
4859         mono_class_setup_vtable_general: rewrote the way in which interface
4860         methods are added to vtables. Makes bug-77127.exe pass, and hopefully
4861         makes the code more maintainable.
4862         For now the old code is still there, and can be activated setting
4863         the env var "USE_NEW_INTERFACE_VTABLE_CODE".
4864
4865 2008-02-06 Rodrigo Kumpera  <rkumpera@novell.com>
4866
4867         * verify.c: guarded some debug functions around and #ifdef.
4868
4869         * verify.c (merge_stacks): implement proper PIII 1.8.1.3 stack state merging.
4870
4871 2008-02-06  Zoltan Varga  <vargaz@gmail.com>
4872
4873         * marshal.c (mono_marshal_get_runtime_invoke): Revert the direct_wrapper
4874         changes for now since they seem to break too many things.
4875
4876 2008-02-05  Mark Probst  <mark.probst@gmail.com>
4877
4878         * marshal.c, marshal.h (mono_marshal_find_bitfield_offset,
4879         mono_marshal_find_nonzero_bit_offset): Added macro and function
4880         for finding the byte- and bit-offset of a bitfield within a
4881         struct.
4882
4883 2008-02-05  Zoltan Varga  <vargaz@gmail.com>
4884
4885         * marshal.c (mono_marshal_get_ptr_to_struct): Make the signature non-pinvoke.
4886         (mono_marshal_get_struct_to_ptr): Ditto.
4887
4888         * marshal.c (mono_marshal_get_runtime_invoke): Fix the signature of 
4889         cctor_signature.
4890
4891 2008-02-03  Zoltan Varga  <vargaz@gmail.com>
4892
4893         * marshal.c (mono_marshal_get_runtime_invoke): Fix sharing of runtime wrappers
4894         between methods for non-corlib types.
4895
4896 2008-02-02  Geoff Norton  <gnorton@novell.com>
4897
4898         * loader.c (mono_method_get_param_names): Populate the parameter name for 
4899         generic parameters as well. (Fixes #342536)
4900
4901 2008-01-31 Rodrigo Kumpera  <rkumpera@novell.com>
4902
4903         * verify.c (is_valid_bool_arg): Allow boxed values and null literals as well.
4904
4905         * verify.c (do_invoke_method): Fix for calling with byref structs.
4906
4907         * verify.c (do_cast): push a boxed value type based on the type token and not
4908         the type of stack.
4909
4910 2008-01-31  William Holmes  <billholmes54@gmail.com>
4911
4912         * process.c (process_module_string_read): Check the size returned form 
4913           VerQueryValue to avoid out of memory exception. 
4914
4915 2008-01-30  Zoltan Varga  <vargaz@gmail.com>
4916
4917         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
4918         Handle properly modules which are not in the moduleref table. Fixes
4919         #356938.
4920
4921 2008-01-29  Zoltan Varga  <vargaz@gmail.com>
4922
4923         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Remove
4924         the dynamic case which is now in managed code.
4925         (ves_icall_System_Reflection_Assembly_GetTypes): Ditto.
4926
4927         * marshal.c (mono_string_to_bstr): Fix a warning.
4928         (init_com_provider_ms): Ditto.
4929
4930         * appdomain.c (ves_icall_System_AppDomain_createDomain): Add some FIXMEs.
4931
4932         * exception.c (mono_get_exception_out_of_memory): New helper function.
4933
4934 2008-01-28  Jonathan Chambers  <joncham@gmail.com>
4935
4936         * marshal.c: Add support for BSTR marshalling
4937         using other COM systems.
4938
4939         Code is contributed under MIT/X11 license.
4940
4941 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4942
4943         * object.c (mono_runtime_invoke_array): reverted previous
4944         commit as it breaks the build.
4945
4946 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4947
4948         * object.c (mono_runtime_invoke_array): Verify arguments for
4949         invalid types. Fixes #348522.
4950
4951 2008-01-28 Rodrigo Kumpera  <rkumpera@novell.com>
4952
4953         * verify.c: added IL_CODE_CALL_NONFINAL_VIRTUAL to track calls to
4954         non-final virtual calls using call. 
4955
4956         * verify.c (do_invoke): fixed some TODOs.
4957
4958         * verify.c (push_arg): set has_this_store for "ldarga 0".
4959
4960 2008-01-27  Zoltan Varga  <vargaz@gmail.com>
4961
4962         * reflection.c (reflection_methodbuilder_to_mono_method): Allow DynamicMethods
4963         which belong to an inflated class. Fixes #356531.
4964
4965 2008-01-26  Robert Jordan  <robertj@gmx.net>
4966
4967         * file-io.c: Implement and use wrappers for GetFileAttribute|Ex ()
4968         which resort to FindFirstFile when a certain error condition
4969         (ERROR_SHARING_VIOLATION) occured. Fixes bug #325212.
4970         Code is contributed under MIT/X11 license.
4971
4972 2008-01-24  Jonathan Chambers  <joncham@gmail.com>
4973
4974         * marshal.c (emit_marshal_string): Fix out string marshalling
4975         to use specified encoding. Fixes #323900.
4976
4977         Code is contributed under MIT/X11 license.
4978
4979 2008-01-24  Raja R Harinath  <harinath@hurrynot.org>
4980
4981         * class.c (mono_class_inflate_generic_method_full): Don't modify
4982         iresult->context after cache check.
4983
4984 2008-01-23  Zoltan Varga  <vargaz@gmail.com>
4985
4986         * class.c (mono_class_inflate_generic_method_full): Change the
4987         struct assignments to memcpy for better visibility and add some comments.
4988
4989 2008-01-23  Dick Porter  <dick@ximian.com>
4990
4991         * threads.c (mono_threads_set_shutting_down): Simplify shutdown
4992         procedure, and make it work on windows.
4993
4994 2008-01-22  Zoltan Varga  <vargaz@gmail.com>
4995
4996         * object-internals.h (MonoReflectionGenericClass): Make the 'generic_type' field
4997         a MonoReflectionTypeBuilder since it is always of that type.
4998
4999         * reflection.c (mono_type_get_object): Remove an unneccesary check.     
5000
5001         * reflection.c (mono_generic_class_get_object): Simplify this a bit.
5002
5003         * reflection.c (mono_reflection_bind_generic_parameters): Ditto.
5004         
5005         * icall.c (ves_icall_MonoGenericClass_GetParentType): Ditto.
5006
5007         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Ditto.
5008
5009         * reflection.c (mono_reflection_create_runtime_class): Remove already created
5010         instantiations from the type cache.
5011
5012 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
5013
5014         * verify.c (do_ldstr): fixed token verification. previous code was 100% broken.
5015
5016         * verify.c (do_unbox_value): push a controled mutability managed pointer.
5017
5018 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
5019
5020         * verify.c (do_ldstr): added, verifies if the #US token is valid.
5021
5022         * verify.c (mono_method_verify): removed old TODO
5023
5024 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
5025
5026         * verify.c (do_newobj): add visibility check.
5027
5028 2008-01-21 Rodrigo Kumpera  <rkumpera@novell.com>
5029
5030         * verify.c (do_load_function_ptr): add visibility check.
5031
5032 2008-01-21  Massimiliano Mantione  <massi@ximian.com>
5033         *class.c:
5034         mono_generic_class_get_class: hook profiler events.
5035         mono_field_get_offset: added to support heap-shot in the new profiler.
5036         *class.h: exported mono_field_get_offset.
5037         * reflection.c:
5038         mono_reflection_setup_internal_class: hook profiler events.
5039
5040 2008-01-20  Zoltan Varga  <vargaz@gmail.com>
5041
5042         * marshal.c (mono_marshal_emit_native_wrapper): Add a 'check_exceptions' 
5043         argument here too and use it to avoid checking for pending exceptions if 
5044         possible.
5045
5046 2008-01-20  Gert Driesen  <drieseng@users.sourceforge.net>
5047
5048         * assembly.c (build_assembly_name): add arg for passing the assembly
5049         flags. Do not consider a PublicKey with value "null" valid.
5050         (mono_assembly_name_parse_full): added boolean argument that will be
5051         set if the assembly name contains a PublicKeyToken spec. Added support
5052         for the Retargetable spec for which only Yes or No are allowed as valid
5053         value. Consider assembly name invalid if Retargetable spec is set, but
5054         either version, culture or public key (token) are not specified.
5055         * metadata-internals.h: sync signature of mono_assembly_name_parse_full
5056         with implementation in assembly.c.
5057         * icall.c (fill_reflection_assembly_name): also copy assembly flags
5058         from MonoAssemblyName.
5059         (ves_icall_System_Reflection_AssemblyName_ParseName): use newly
5060         introduced argument for mono_assembly_name_parse_full to know if the
5061         assembly name has a PublicKeyToken spec, and if it has instruct
5062         fill_reflection_assembly_name to use default value for keyToken (if
5063         PublicKeyToken is null).
5064
5065 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
5066
5067         * verify.c (mono_method_verify): fixed ovf ops with
5068         float values. They are unverifiable now.
5069
5070 2008-01-18  Rodrigo Kumpera  <rkumpera@novell.com>
5071
5072         * class.c (set_failure_from_loader_error): add BadImageException to the
5073         list of exceptions that can cause a type to fail to load.
5074
5075         * class.c (mono_class_get_exception_for_failure): same.
5076
5077 2008-01-17  Rodrigo Kumpera  <rkumpera@novell.com>
5078
5079         * verify.c (in_any_exception_block): added, check if offset
5080         is part of any exception handling clause.
5081
5082         * verify.c (get_stack_type): added VAR and MVAR types.
5083
5084         * verify.c (do_stobj): better error messages.
5085
5086         * verify.c (do_cpobj): added, check cpobj.
5087
5088         * verify.c (do_initobj): added, check initobj.
5089
5090         * verify.c (do_sizeof): added, check sizeof.
5091
5092         * verify.c (do_localloc): added, check localloc.
5093
5094         * verify.c: adde proper verification for cpobj, initobj, sizeof and localloc.
5095
5096 2008-01-17  Zoltan Varga  <vargaz@gmail.com>
5097
5098         * method-builder.c (mono_mb_emit_native_call): Get rid of the unused
5099         save_lmf/restore_lmf opcodes.
5100
5101         * threads.c (mono_threads_install_notify_pending_exc): New function to
5102         install a callback notifying the JIT there is a pending exception on a thread.
5103         (mono_thread_request_interruption): Call the new callback.
5104         (mono_thread_get_and_clear_pending_exception): New function to return the
5105         exception pending on a thread.
5106
5107         * marshal.c (mono_marshal_get_icall_wrapper): Add a check_exceptions argument
5108         to turn off checking for pending exceptions.
5109         (mono_marshal_get_native_wrapper): Ditto.
5110
5111 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
5112
5113         * threads-types.h: Get rid of the unnecessary extern declarations.
5114
5115 2008-01-16  Gert Driesen  <drieseng@users.sourceforge.net>
5116
5117         * icall.c (ves_icall_Type_GetField): if NonPublic flag is set, only
5118         return field from parent class if not private.
5119         (ves_icall_Type_GetFields_internal): if NonPublic flag is set, only
5120         returns fields from parent class if they are not private.
5121         (method_nonpublic): added function to determine if a given method
5122         should be considered non-public. Returns false for private methods
5123         on parent class, and internal methods from parent on the 1.0 profile.
5124         (ves_icall_Type_GetMethodsByName): if NonPublic flag is set, then
5125         use method_nonpublic function to determine whether method should be
5126         returned.
5127         (property_accessor_public): use newly introduced method_nonpublic
5128         function to determine whether accessor is non-public. 
5129         (ves_icall_MonoType_GetEvent): If NonPublic flag is set, only return
5130         event from parent class if not private. Only return static event if
5131         Static flag is set, and only return static event from parent class if
5132         FlattenHierarchy flag is set.
5133         (ves_icall_Type_GetEvents_internal): If NonPublic flag is set, only
5134         include non-private events from parent class.
5135
5136 2008-01-16  Zoltan Varga  <vargaz@gmail.com>
5137
5138         * icall.c (ves_icall_System_NumberFormatter_GetFormatterTables): Fix a
5139         warning.
5140
5141 2008-01-16  Wade Berrier <wberrier@novell.com>
5142
5143         * security.c: Add assembly.h header to appease some warnings
5144
5145 2008-01-16  Dick Porter  <dick@ximian.com>
5146
5147         * process.c (process_module_string_read): Remove trailing null
5148         when saving string.
5149
5150 2008-01-16  Mark Probst  <mark.probst@gmail.com>
5151
5152         * class-internals.h: A new data structure describing the layout of
5153         a runtime generic context (MonoRuntimeGenericContextTemplate).
5154
5155         * metadata-internals.h: Added a hash table to MonoDomain that maps
5156         from open generic classes to their runtime generic context
5157         templates.
5158
5159         * object.c: Building of the runtime generic context, including
5160         proper handling of generic type arguments of superclasses.
5161         Building of the runtime generic context according to the template.
5162
5163 2008-01-15  Zoltan Varga  <vargaz@gmail.com>
5164
5165         * class.c (mono_class_setup_fields): Set field.count for generic instances.
5166         Fixes #350856.
5167
5168         * image.c (do_mono_image_open): Pass TRUE as last_exists to 
5169         mono_portability_find_file (). Fixes #325466.
5170         (mono_image_get_public_key): Fix a warning.
5171
5172 2008-01-14  Zoltan Varga  <vargaz@gmail.com>
5173
5174         * class.c (mono_class_from_name): Fix comments for NULL-ness of image parameter.
5175         Fixes #353550.
5176         (mono_class_from_name_case): Ditto.
5177
5178 2008-01-13  Eyal Alaluf <eyala@mainsoft.com>
5179
5180         * icall-def.h number-formatter.h icall.c: Implemented a cross app-domain
5181           common storage for the tables used in the System/NumberFormatter class.
5182
5183 2008-01-13  Zoltan Varga  <vargaz@gmail.com>
5184
5185         * marshal.c (mono_marshal_get_runtime_invoke): Fix a typo.
5186
5187 2008-01-11  Rodrigo Kumpera  <rkumpera@novell.com>
5188
5189         * verify.c (get_boxable_mono_type): check if the token is valid.
5190
5191         * verify.c (set_stack_value): changed to add an error if an
5192         invalid type is set on stack. Changed all callers due to signature change.
5193
5194         * verify.c (do_stobj): implement stobj validation.
5195
5196 2008-01-11  Zoltan Varga  <vargaz@gmail.com>
5197
5198         * reflection.c (reflection_methodbuilder_to_mono_method): No need to
5199         set container->is_method, it was set earlier.
5200
5201         * metadata.c (type_in_image): Handle MVARs which belong to not finished
5202         generic methods.
5203
5204         * reflection.c (mono_reflection_initialize_generic_parameter): Set
5205         is_method of the generic container to TRUE for methods.
5206
5207 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
5208
5209         * metadata.c (type_in_image): Handle type parameters properly.
5210
5211         * class-internals.h (MonoGenericParam): Add an 'image' argument to track
5212         memory ownership of this structure.
5213
5214 2008-01-10  Rodrigo Kumpera  <rkumpera@novell.com>
5215
5216         * verify.c (get_boxable_mono_type): make typedref types been just
5217         unverifiable. check for void type.
5218
5219         * verify.c (do_unbox_any): added, verify opcode unbox.any.
5220
5221         * verify.c (do_load_function_ptr): accept method spec tokens.
5222
5223 2008-01-10  Zoltan Varga  <vargaz@gmail.com>
5224
5225         * marshal.c (mono_class_native_size): Always set *align even if this is called
5226         recursively.
5227
5228 2008-01-09  Zoltan Varga  <vargaz@gmail.com>
5229
5230         * verify.c (mono_verify_corlib): Remove this as it was not used and was 
5231         out-of-date.
5232
5233 2008-01-09  Rodrigo Kumpera  <rkumpera@novell.com>
5234
5235         * verify.c: removed some old unused tables. A huge bunch of small fixes
5236         to things found while testing the verifier with mono basic.
5237
5238         * verify.c (dump_stack_value): dump null literal flag to.
5239
5240         * verify.c (verify_type_compatibility_full): fix comparison
5241         for types that have a generic super type.
5242
5243         * verify.c (verify_stack_type_compatibility): fix compatibility
5244         between null literals and reference types. fix compatibility between
5245         boxed valuetypes and object. fix corner case test for enums.
5246
5247         * verify.c (do_cmp_op): proper verification of cgt.un in case
5248         of reference types.
5249
5250         * verify.c (do_invoke_method): fix error message.
5251
5252         * verify.c (do_store_indirect
5253
5254         * verify.c (check_is_valid_type_for_field_ops): proper verification
5255         of managed pointers to valuetypes and boxed valuetypes. proper verification
5256         of null literals.
5257
5258         * verify.c (do_unbox_value): expect valuetypes to be always boxed. don't
5259         allow token to be a reference type.
5260
5261         * verify.c (do_cast): proper handling of boxes valuetypes.
5262
5263         * verify.c (do_stelem): proper handling of storing a boxed valuetype
5264         in object[].
5265
5266         * verify.c (mono_method_verify): pass the opcode to do_cmp_op
5267         to handle cgt.un properly. Implement add/mul/sub ovf opcodes.
5268         fixed the decoding of unbox_any
5269
5270 2008-01-08  Zoltan Varga  <vargaz@gmail.com>
5271
5272         * boehm-gc.c (mono_gc_deregister_root): Fix the size passed to libgc.
5273
5274 2008-01-08  Rodrigo Kumpera  <rkumpera@novell.com>
5275
5276         * verify.c (do_newobj): do delegate verification.
5277
5278         * verify.c (verify_delegate_compatibility): perform delegate
5279         verification.
5280
5281         * verify.c (verify_ldftn_delegate): perform tests related to
5282         ldftn delegates.
5283
5284         * verify.c (mono_delegate_signature_equal): perform the
5285         slightly diferent signature comparison required by delegates.
5286
5287         * metadata.c (mono_metadata_type_equal_full): added and exported
5288         as MONO_INTERNAL. This is a version of mono_metadata_type_equal that
5289         allows signature only comparison.
5290
5291         * metadata-internal.h (mono_metadata_type_equal_full): added and exported
5292         as MONO_INTERNAL.
5293
5294 2008-01-07  Rodrigo Kumpera  <rkumpera@novell.com>
5295
5296         * verify.c: added a bunch of stack_slot_* functions to
5297         make access to stack slot type easier. This is required to
5298         allow optional flags, like null literal, boxed value and
5299         this pointer.
5300         All access paths to IlStackDesc::stype have been changed 
5301         to use these new funcions.
5302         Removed a bunch of unused functions and cleared all warnings.
5303         This patch introduces the usage of the this pointer and 
5304         boxed value flags.
5305
5306 2008-01-07  Zoltan Varga  <vargaz@gmail.com>
5307
5308         * boehm-gc.c (mono_gc_deregister_root): Fix win32 build.
5309
5310 2008-01-06  Zoltan Varga  <vargaz@gmail.com>
5311
5312         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Change signature to
5313         match managed version.
5314
5315         * appdomain.c: Bump corlib version.
5316         
5317         * appdomain.c (ves_icall_System_AppDomain_ExecuteAssembly): Check for a null
5318         argument.
5319
5320 2008-01-06  Gert Driesen  <drieseng@users.sourceforge.net>
5321
5322         * icall.c (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies)
5323         Set public key token to zero-length byte array if assembly is not
5324         strongnamed.
5325
5326 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
5327
5328         * icall.c (ves_icall_System_Array_SetValueImpl): Use a write barrier when
5329         writing a vtype array elem.
5330
5331 2007-01-05  Gert Driesen  <drieseng@users.sourceforge.net>
5332
5333         * assembly.c (build_assembly_name): return FALSE if length of token is
5334         not 16 (if not "null").
5335         (mono_assembly_name_parse_full): return FALSE if value of version,
5336         culture, token or key is 0.
5337         * icall.c (fill_reflection_assembly_name): add boolean arguments to
5338         specify whether public key and public key token must be set to default
5339         value (zero-length byte array) if not available. Set versioncompat to
5340         SameMachine. If public key is available or the default is set, then
5341         set PublicKey flag.
5342         (ves_icall_System_Reflection_Assembly_FillName): if no public key
5343         is available, use empty byte array as default value. On the 2.0
5344         profile, use default value for public key token if not set.
5345         (ves_icall_System_Reflection_InternalGetAssemblyName): on the 1.0
5346         profile, use default value for public key if not set. On the 2.0
5347         profile, use default value for public key token if not set.
5348         (ves_icall_System_Reflection_AssemblyName_ParseName): do not set
5349         default values for public key and public key token.
5350
5351 2008-01-05  Zoltan Varga  <vargaz@gmail.com>
5352
5353         * object-internals.h (MonoReflectionAssemblyName): Add 'processor_architecture'
5354         field to keep it in synch with the managed object.
5355
5356         * marshal.c (emit_marshal_object): Add support for byref marshalling of
5357         delegates. Fixes #351520.
5358
5359         * sgen-gc.c (conservatively_pin_objects_from): Tell valgrind that the pin queue
5360         contains defined memory.
5361         
5362         * sgen-gc.c: Fix 64 bit warnings. Fix some typos. Update GC stats in mono_stats.
5363
5364         * sgen-gc.c (build_nursery_fragments): Handle half-constructed objects correctly.
5365         
5366         * sgen-gc.c (check_consistency): New helper function to do a consistency check
5367         of the GC data structures.
5368
5369         * gc-internal.h: Moved the REGISTER/UNREGISTER macros here from os/gc_wrapper.h.
5370
5371         * *.c: Include metadata/gc-internal.h instead of os/gc_wrapper.h.
5372         
5373         * object.c (mono_array_full_copy): Fix detection of whenever to use a write
5374         barrier.
5375         (mono_array_clone_in_domain): Ditto.
5376         (mono_array_clone_in_domain): Ditto.
5377
5378         * threads.c (start_wrapper): Register the thread start argument as a GC root.
5379         (cache_culture): Use a write barrier.
5380
5381         * icall.c (ves_icall_System_Array_SetValueImpl): Call a write barrier.
5382         (ves_icall_get_property_info): Ditto.
5383
5384         * object.h (MONO_STRUCT_SETREF): New macro.
5385
5386         * class-internals.h (MonoStats): Add some GC statistics.
5387
5388         * boehm-gc.c null-gc.c: Define mono_gc_deregister_root ().
5389
5390 2008-01-04  Andreas Faerber  <andreas.faerber@web.de>
5391
5392         * exception.c (mono_exception_from_name_two_strings):
5393         Break from loop after method is found.
5394
5395 2008-01-04  Dick Porter  <dick@ximian.com>
5396
5397         * process.c (process_module_string_read): Rename variable to
5398         reflect correct usage, after fixing bug 345972.
5399
5400 2008-01-03  Rodrigo Kumpera  <rkumpera@novell.com>
5401
5402         * verify.c (mono_type_create_fnptr_from_mono_method): 
5403         created a MonoType function pointer instance to be used during
5404         verification. The verifier releases this memory at end.
5405
5406         * verify.c (mono_method_is_constructor): extracted repeated
5407         checks for constructor into a single class.
5408
5409         * verify.c (do_push_field): use new extracted method
5410         for constructor check.
5411
5412         * verify.c (do_newobj): same.
5413
5414         * verify.c (do_ldftn): renamed to do_load_function_ptr
5415         and make it verify ldvirtftn too.
5416
5417         * verify.c (mono_method_verify: proper verification
5418         of ldvirtftn. release created MonoMethod instances.
5419
5420 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
5421
5422         * verify.c (token_bounds_check): added.
5423
5424         * verify.c (do_ldftn): added.
5425
5426         * verify.c (mono_method_verify): proper verificartion of ldftn.
5427
5428 2007-12-31  Rodrigo Kumpera  <rkumpera@novell.com>
5429
5430         * metadata.c (mono_metadata_decode_row): Assert if index is bigger
5431         than the table row count. It's the resposibility of the caller to
5432         make the bounds check and raise the correct error.
5433
5434         * metadata.c (mono_metadata_decode_row_col): Same.
5435
5436         * loader.c (mono_get_method_from_token): perform bounds check
5437         on token for methoddef table.
5438
5439 2007-12-29  Miguel de Icaza  <miguel@novell.com>
5440
5441         * icall.c
5442         (ves_icall_System_CurrentSystemTimeZone_GetTimeZoneData): Turn the
5443         assert into a negative result, the managed code already coped with
5444         that.
5445
5446         Some folks on Windows reported this error. 
5447
5448 2007-12-28  Gert Driesen  <drieseng@users.sourceforge.net>
5449
5450         * appdomain.c: Bump corlib version.
5451         * icall.c:
5452         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies): Use
5453         CultureInfo.CreateCulture to create CultureInfo for name.
5454         (fill_reflection_assembly_name): Use CultureInfo.CreateCulture to
5455         create CultureInfo for name. Fixes bug #347174.
5456
5457 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
5458
5459         * verify.c: added IL_CODE_FLAG_STACK_INITED and IL_CODE_STACK_MERGED
5460         flags.
5461
5462         * verify.c (is_valid_branch_instruction): allow branching to the
5463         first instruction of the protected block.
5464
5465         * verify.c (is_valid_cmp_branch_instruction): same.
5466
5467         * verify.c (stack_init): use IL_CODE_FLAG_STACK_INITED flag to
5468         avoid double initialization.
5469
5470         * verify.c (merge_stacks): use IL_CODE_STACK_MERGED to
5471         detect which cases the eval stack should just be copied.
5472
5473         * verify.c (mono_method_verify): check if the eval stack
5474         is empty when entering a protected block.
5475
5476 2007-12-27  Rodrigo Kumpera  <rkumpera@novell.com>
5477
5478         * verify.c: added is_clause_in_range, is_clause_inside_range,
5479         is_clause_nested and verify_clause_relationship. They perform
5480         the verifications stated in P1 12.4.2.7.
5481
5482         * verify.c (mono_method_verify): remove some unused variables,
5483         add the new exception clause checks, add instruction border
5484         checks for protected block start/end, improved some error 
5485         messages and fixed a bug in the way invalid instruction access
5486         is detected.
5487
5488 2007-12-26  Zoltan Varga  <vargaz@gmail.com>
5489
5490         * boehm-gc.c (mono_gc_register_thread): Use the new GC_register_my_thread () routine
5491         from GC 7.0 if available.
5492
5493         * object.c: Remove an unused define.
5494         
5495         * object.c (mono_class_compute_gc_descriptor): Fix a warning.
5496
5497         * boehm-gc.c (mono_gc_make_descr_for_array): Implement.
5498
5499         * null-gc.c (mono_gc_make_descr_for_array): Implement.
5500
5501         * object.c (mono_class_compute_gc_descriptor): Remove an #ifdef SGEN_GC.
5502
5503         * gc-internal.h: Change the signature of mono_gc_make_descr_for_string ()
5504         to take the same arguments as the other make_descr functions.
5505
5506         * boehm-gc.c null-gc.c: Add implementation for make_descr functions.
5507
5508         * objects.c: Get rid of the MAKE_DESCRIPTOR macros, call make_descr functions
5509         directly.
5510
5511         * boehm-gc.c (mono_gc_base_init): Moved the setting of GC_stackbottom here from
5512         mini.c.
5513
5514         * object.c (mono_class_compute_gc_descriptor): Move the GC_init_gcj_malloc () 
5515         call to boehm-gc.c.
5516
5517         * boehm-gc.c (mono_gc_register_root): Fix a warning.
5518
5519         * null-gc.c (mono_gc_register_root): Fix a warning.
5520
5521         * reflection.c (ALLOC_REFENTRY): Use mono_gc_alloc_fixed for boehm as well.
5522
5523         * boehm-gc.c (mono_gc_register_root): Moved definition here from gc_wrapper.h.
5524         (mono_gc_base_init): Call GC_init ().
5525
5526         * null-gc.c: Define mono_gc_register_root () as a no-op.
5527
5528         * domain.c appdomain.c: Call mono_gc_base_init () instead of MONO_GC_PRE_INIT ().
5529
5530 2007-12-24  Rodrigo Kumpera  <rkumpera@novell.com>
5531
5532         * verify.c: add prototype for merge_stacks at top
5533
5534         * verify.c (do_switch): added.
5535
5536         * verify.c (merge_stacks): on some cases the stack merging
5537         was not happening properly. Unequal stack sizes at merge
5538         points should be invalid.
5539
5540         * verify.c (mono_method_verify): added more debug info on stack state.
5541         verify switch properly.
5542
5543 2007-12-24  Zoltan Varga  <vargaz@gmail.com>
5544
5545         * method-builder.h: New file, moved the mono_mb_ declarations here from 
5546         marshal.h.
5547
5548         * boehm-gc.c marshal.c: Include method-builder.h.
5549
5550         * marshal.c: Use mono_mb_emit_branch_label () in a few places.
5551
5552         * marshal.c: Remove some code which is now in method-builder.c.
5553
5554 2007-12-23  Zoltan Varga  <vargaz@gmail.com>
5555
5556         * method-builder.c: New file, extraction of the method builder functionality 
5557         from marshal.c.
5558
5559         * marshal.c: Move the mb functions into method-builder.c.
5560
5561         * marshal.h marshal.c: Export some mono_mb_... functions.
5562
5563         * marshal.c: Use mono_mb_get_label () and mono_mb_patch_branch () in all places.
5564
5565         * loader.c (field_from_memberref): Remove the dynamic case, it is handled in
5566         the caller.
5567
5568         * class.c (mono_class_get_full): Check the token type in the dynamic case.
5569
5570         * loader.c (mono_field_from_token): Ditto.      
5571
5572         * loader.c (mono_get_method_from_token): Change the check so it checks memberref
5573         type as well.
5574         
5575         * loader.c (mono_get_method_from_token): Check the token type in the dynamic case.
5576         Fixes #342565.
5577
5578         * class-internals.h: Add new loader error type MONO_EXCEPTION_BAD_IMAGE plus
5579         a helper function for setting it.
5580
5581         * loader.c (mono_loader_error_prepare_exception): Handle MONO_EXCEPTION_BAD_IMAGE.
5582
5583         
5584         * assembly.c: Significally simplify code now that referenced assemblies are 
5585         loaded lazily. Get rid of the 'loading' hashtables. Hopefully fixes #347629.
5586
5587         * threads.h: Don't include  the internal threads-types.h header file. Fixes
5588         #349952.
5589
5590 2007-12-21  Rodrigo Kumpera  <rkumpera@novell.com>
5591
5592         * verify.c: added enum value IL_CODE_FLAG_WAS_TARGET, to represent
5593         instructions that were target of branches or are at protected block boundaries.
5594
5595         * verify.c (in_same_block): handle filter clauses.
5596
5597         * verify.c (is_valid_branch_instruction): added. checks the target of
5598         instructions br or brtrue/false.
5599
5600         * verify.c (is_valid_cmp_branch_instruction): added. checks the target of
5601         binary branch instructions such as beq and bge.
5602
5603         * verify.c (init_stack_with_value): renamed to init_stack_with_value_at_exception_boundary
5604         and made it pin the instruction as been part of the exception block.
5605
5606         * verify.c (do_boolean_branch_op): use is_valid_branch_instruction instead
5607         of in_same_block.
5608
5609         * verify.c (do_branch_op): use is_valid_cmp_branch_instruction instead
5610         of in_same_block.
5611
5612         * verify.c (do_ret): ret from a protected block is unverifiable and
5613         not invalid.
5614
5615         * verify.c (do_static_branch): verify br and br.s instructions.
5616
5617         * verify.c (merge_stacks): add extra param to support detection
5618         of branches in the middle of instructions.
5619         
5620         * verify.c (mono_method_verify): verify branches and exception blocks
5621         that target the middle of instructions. Proper verification of br and br.s.
5622
5623 2007-12-21  Zoltan Varga  <vargaz@gmail.com>
5624
5625         * reflection.c (reflection_methodbuilder_from_ctor_builder): Initialize
5626         skip_visibility field.
5627         (reflection_methodbuilder_from_dynamic_method): Ditto.
5628
5629         * object.c (mono_class_compute_gc_descriptor): Remove more unused icall
5630         registrations. Fixes #348193.
5631
5632         * threads.h: Move the internal mono_thread_get_pending_exception () to
5633         threads-types.h and rename it to mono_thread_get_undeniable_exception ().
5634
5635 2007-12-20  Zoltan Varga  <vargaz@gmail.com>
5636
5637         * object.c (mono_class_compute_gc_descriptor): Remove unused GC_gcj_fast_malloc
5638         icall registration. Fixes #348193.
5639
5640         * marshal.c (mono_marshal_get_runtime_invoke): Put all runtime invoke wrappers
5641         for corlib classes into object. Fixes #349621.
5642
5643 2007-12-20  Gert Driesen  <drieseng@users.sourceforge.net>
5644
5645         * icall.c (property_accessor_nonpublic): new function to determine
5646         whether an accessor allows a property to be considered non-public.
5647         Returns false for private accessor(s) from parent class, and internal
5648         accessor(s) from parent on 2.0 profile (and higher).
5649         (ves_icall_Type_GetPropertiesByName): Use newly introduced function
5650         to determine whether property should be included if NonPublic flag
5651         is set. Fixes bug #349078.
5652
5653 2007-12-20  Rodrigo Kumpera  <rkumpera@novell.com>
5654
5655         * verify.c (init_stack_with_value): added.
5656
5657         * verify.c (mono_method_verify): extracted common
5658         code for exception initialization into init_stack_with_value.
5659
5660         * verify.c (mono_method_verify): initialize the exception
5661         for handler clauses as well.
5662
5663         * verify.c (mono_method_verify): fix the exception clause
5664         ordering rules, it should use handler end offset and not
5665         start offset.
5666
5667 Thu Dec 20 12:27:24 CET 2007 Paolo Molaro <lupus@ximian.com>
5668
5669         * rawbuffer.c: remove useless warning.
5670
5671 Thu Dec 20 12:10:38 CET 2007 Paolo Molaro <lupus@ximian.com>
5672
5673         * threads.h, threads-types.h: move functions to the correct header
5674         (fixes bug#349952).
5675
5676 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
5677
5678         * verify.c (mono_method_verify): proper verification
5679         of exception handling clauses ranges and fallthru in
5680         and out of protected blocks.
5681
5682 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
5683
5684         * verify.c (mono_method_verify): fixed compilation issue.
5685
5686 2007-12-19  Rodrigo Kumpera  <rkumpera@novell.com>
5687
5688         * verify.c (mono_method_verify): a printf slipped in, changed
5689         to use verifier debug macro.
5690
5691 2007-12-18  Rodrigo Kumpera  <rkumpera@novell.com>
5692
5693         * verify.c (is_correct_leave): check for filter clauses.
5694
5695         * verify.c (do_filter): added.
5696
5697         * verify.c (mono_method_verify): property verification of leave.
5698
5699
5700 2007-12-18  Mark Probst  <mark.probst@gmail.com>
5701
5702         * threads.c: Disable calls to _wapi_thread_signal_self() to fix
5703         Win32 build, until we figure out how to do the proper thing on
5704         Win32.
5705
5706 2007-12-17  Zoltan Varga  <vargaz@gmail.com>
5707
5708         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Fix a crash introduced
5709         by the previous patch.
5710         
5711         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Avoid calling
5712         the assembly resolve handler for refonly assemblies.
5713
5714 2007-12-17  Mark Probst  <mark.probst@gmail.com>
5715
5716         * threads.c, thread-types.h, icall.c: New shutdown safeguards.
5717         Make sure only one thread is allowed to commence shutdown, and
5718         don't allow new threads to be started once shutdown is in
5719         progress.
5720
5721 2007-12-14  Rodrigo Kumpera  <rkumpera@novell.com>
5722
5723         * verify.c (is_correct_endfilter): added.
5724
5725         * verify.c (is_unverifiable_endfilter): added.
5726
5727         * verify.c (do_endfilter): added.
5728
5729         * verify.c (mono_method_verify): property verification of endfilter
5730         and fixed a corner case or endfinally.
5731
5732 2007-12-13  Rodrigo Kumpera  <rkumpera@novell.com>
5733
5734         * verify.h: new flags to support fail fast of unverifiable code and
5735         do non-strict verification. Non-strict verification is required to
5736         have MS runtime compatibility. There are a huge amount of unverifiable
5737         code that it accepts as verifiable. The strict mode verifies the code
5738         as the specs says.
5739         Non-strict mode will be required in cases where code needs to be
5740         accepted as verifiable but fails under strict mode.
5741
5742         * pedump.c: added support to fail fast and non-strict verification.
5743
5744         * verify.c: added support for both fail fast and non-strict verification.
5745
5746 2007-12-12  Rodrigo Kumpera  <rkumpera@novell.com>
5747
5748         * verify.c (is_correct_endfinally): added.
5749
5750         * verify.c (mono_method_verify): property verification of endfinally.
5751
5752 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
5753
5754         * verify.c (in_any_block): check for filter clauses.
5755
5756         * verify.c (is_correct_rethrow): added.
5757
5758         * verify.c (mono_method_verify): property verification of rethrow.
5759
5760         * metadata.h: added MONO_OFFSET_IN_FILTER macro.
5761
5762 2007-12-11  Rodrigo Kumpera  <rkumpera@novell.com>
5763
5764         * verify.c (do_throw): added.
5765
5766         * verify.c (mono_method_verify): property verification of throw
5767
5768 2007-12-11  Zoltan Varga  <vargaz@gmail.com>
5769
5770         * assembly.c (mono_assembly_load_reference): Try an assembly resolve for ref-only
5771         assemblies. Fixes #346425.
5772
5773 2007-12-10  Zoltan Varga  <vargaz@gmail.com>
5774
5775         * reflection.c (mono_reflection_get_token): Call mono_image_create_token () for
5776         FieldBuilders.
5777
5778         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Fix a warning.
5779
5780         * class.c (mono_lookup_dynamic_token_class): Add a 'valid token' argument to
5781         prevent asserts when this is called with a token which might not be valid.
5782
5783         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Call
5784         lookup_dynamic_token_class with valid_token == FALSE.
5785
5786         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.       
5787
5788         * icall.c (ves_icall_System_Reflection_Module_ResolveStringToken): Ditto.
5789
5790         * icall.c (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
5791         
5792 2007-12-10  Mark Probst  <mark.probst@gmail.com>
5793
5794         * gc.c: Don't delay threadpool thread finalization unless Mono is
5795         shutting down.
5796
5797 Mon Dec 10 11:06:23 CET 2007 Paolo Molaro <lupus@ximian.com>
5798
5799         * threads.c: turn an assert into a non-fatal warning.
5800
5801 2007-12-09  Robert Jordan  <robertj@gmx.net>
5802
5803         * icall.c (GetVirtualMethod): Add missing argument validation.
5804
5805 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5806
5807         * verify.c (do_cast): added.
5808
5809         * verify.c (mono_method_verify): property verification of castclass and isinst.
5810
5811
5812 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5813
5814         * verify.c (mono_type_from_opcode): added opcodes for stelem.X.
5815
5816         * verify.c (do_stelem): added.
5817
5818         * verify.c (mono_method_verify): property verification of stelem.X.
5819
5820 2007-12-07  Mark Probst  <mark.probst@gmail.com>
5821
5822         * class.c, class-internals.h: Introduce an environment variable
5823         (MONO_GENERIC_SHARING) through which the extent of generic code
5824         sharing can be controlled (share all classes, share only corlib
5825         classes, or share nothing).
5826
5827         * object.c: Only create runtime generic context for classes for
5828         which sharing is enabled.
5829
5830 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5831
5832         * verify.c (do_ldelem): refactor it to work with ldelem.any.
5833
5834         * verify.c (mono_method_verify): property verification of ldelem.any.
5835
5836 2007-12-06  Rodrigo Kumpera  <rkumpera@novell.com>
5837
5838         * verify.c (get_indirect_op_mono_type): renamed to mono_type_from_opcode,
5839         added ldelem.X opcodes.
5840
5841         * verify.c (do_ldelema): fixed possible invalid usage of MonoType.
5842
5843         * verify.c: proper verification of ldelem.X 
5844
5845 2007-12-06  Zoltan Varga  <vargaz@gmail.com>
5846
5847         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): Allow interface cctors to be called too.
5848
5849 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
5850
5851         * verify.c (mono_method_verify): null literal requires special handling,
5852         the value pushed on stack need to be flagged as so.
5853
5854         * verify.c (do_ldelema): Verify ldelema properly.
5855
5856 2007-12-05  Rodrigo Kumpera  <rkumpera@novell.com>
5857
5858         * verify.c: Verify ldlen properly.
5859
5860 2007-12-05  Zoltan Varga  <vargaz@gmail.com>
5861
5862         * icall.c (ves_icall_MonoField_GetValueInternal): Check that the field belongs
5863         to the target object's type. Fixes #346160.
5864
5865 2007-12-05  Dick Porter  <dick@ximian.com>
5866
5867         * threadpool.c (socket_io_add_poll): Asynchronous connect() on
5868         Solaris needs the same workaround as BSD-derived systems.  Fixes
5869         bug 323524, patch by Burkhard Linke
5870         <burkhard.linke@CeBiTec.Uni-Bielefeld.DE>
5871
5872 2007-12-04  Gert Driesen  <drieseng@users.sourceforge.net>
5873
5874         * process.c: When ProcessStartInfo.ErrorDialog is true, pass window
5875         handle to use when error dialog is shown; otherwise, update mask
5876         to show no error dialog when an error occurs.
5877
5878 2007-12-03  Zoltan Varga  <vargaz@gmail.com>
5879
5880         * icall.c (ves_icall_MonoField_GetRawConstantValue): New icall.
5881
5882         * class.c (mono_class_get_field_default_value): New helper function to initialize
5883         field->def_type and field->data.
5884
5885 2007-11-30  Zoltan Varga  <vargaz@gmail.com>
5886
5887         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Use the delegate trampoline instead of
5888         the general one.
5889
5890         * object.c (mono_runtime_create_delegate_trampoline): New helper function.
5891
5892         * marshal.c: Avoid depending on delegate->method_info being set.
5893
5894         * object.c (mono_delegate_ctor): Avoid initializing delegate->method_info.
5895         
5896         * object.c (mono_delegate_ctor): Set delegate->method.
5897
5898         * object-internals.h (struct _MonoDelegate): Add 'method' field.
5899
5900         * appdomain.c: Bump corlib version.
5901
5902 2007-11-27  Raja R Harinath  <harinath@gmail.com>
5903
5904         * metadata.c (mono_generic_inst_equal_full): Short-circuit
5905         equality check if we're comparing canonicalized MonoGenericInsts.
5906
5907 2007-11-23  Zoltan Varga  <vargaz@gmail.com>
5908
5909         * class.c (generic_array_methods): Call mono_class_setup_methods () before
5910         accessing class->methods.
5911
5912 2007-11-22  Dick Porter  <dick@ximian.com>
5913
5914         * threads.c: Ensure that the synch_cs is set before trying to use
5915         it.
5916
5917 Thu Nov 22 12:34:04 CET 2007 Paolo Molaro <lupus@ximian.com>
5918
5919         * profiler.c: r89126 broke the statistial profiler, unbreak.
5920
5921 2007-11-22  Martin Baulig  <martin@ximian.com>
5922
5923         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 66.
5924
5925         * mono-debug.c
5926         (mono_debug_debugger_version): Bump to 3.
5927         (mono_debug_init): Hook `mono_debugger_class_loaded_methods_func'
5928         -> mono_debugger_class_initialized().
5929
5930         * mono-debug-debugger.c
5931         (mono_debugger_add_type): Renamed into mono_debugger_class_initialized().
5932
5933         * class.c
5934         (mono_debugger_start_class_init_func): Removed.
5935         (mono_debugger_class_loaded_methods_func): Added.
5936         (mono_class_setup_methods): Call it here.
5937
5938 2007-11-22  Martin Baulig  <martin@ximian.com>
5939
5940         * mono-debug.c
5941         (mono_debug_add_delegate_trampoline): New public method.
5942         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_DELEGATE_TRAMPOLINE'.
5943
5944         * mono-debug.h
5945         (MonoSymbolTable): Added `global_data_table'.
5946         (MonoDebuggerTypeKind): Removed.
5947
5948 2007-11-21  Zoltan Varga  <vargaz@gmail.com>
5949
5950         * marshal.c (mono_marshal_get_generic_array_helper): Skip visibility checks for
5951         these methods.
5952
5953         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5954         
5955 Tue Nov 20 23:10:41 CET 2007 Paolo Molaro <lupus@ximian.com>
5956
5957         * object.c: some fields don't have a valid rva: ignore them (bug #343083).
5958
5959 2007-11-20  Martin Baulig  <martin@ximian.com>
5960
5961         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 65.
5962
5963         * mono-debug-debugger.c
5964         (mono_debugger_insert_method_breakpoint): Moved here from debug-mini.c
5965         (mono_debugger_remove_breakpoint): Likewise.
5966         (mono_debugger_check_breakpoints): Likewise.
5967         (mono_debugger_register_class_init_callback): New public method.
5968         (mono_debugger_remove_class_init_callback): Likewise.
5969         (mono_debugger_add_type): Likewise.
5970
5971         * mono-debug-debugger.h
5972         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_CLASS_INITIALIZED'.
5973
5974 Tue Nov 20 20:54:12 CET 2007 Paolo Molaro <lupus@ximian.com>
5975
5976         * class.c: more interface implementations needed for the
5977         array enumerator (fixes bug #341112).
5978
5979 2007-11-18  Gert Driesen  <drieseng@users.sourceforge.net>
5980
5981         * icall.c: Renamed arguments for ves_icall_System_Enum_ToObject to
5982         fix ParamName of ArgumentNullExceptions.
5983
5984 2007-11-17  Miguel de Icaza  <miguel@novell.com>
5985
5986         * reflection.c (mono_reflection_encode_sighelper): Generate the
5987         modopts and modreqs.   I have a useless test that crashes monodis,
5988         but that shows the code working.
5989
5990 2007-11-17  Zoltan Varga  <vargaz@gmail.com>
5991
5992         * boehm-gc.c (create_allocator): Fix size calculation for the string allocator.
5993         (mono_gc_get_managed_allocator): Enable the string allocator on amd64.
5994
5995 2007-11-15  Dick Porter  <dick@ximian.com>
5996
5997         * threads.c (ves_icall_System_Threading_Thread_Join_internal):
5998         When joining a thread, it's the thread that's calling Join that
5999         gets WaitSleepJoin state not the target.  Fixes the standalone
6000         test case in bug 334740, and hopefully the whole bug too.
6001
6002 2007-11-15  Dick Porter  <dick@ximian.com>
6003
6004         * process.c: Read file version info from the files pointed at by
6005         process modules, not the current process.  Fixes bug 315969.
6006
6007         Use windows typedef names in some places to fix warnings on the
6008         windows build.
6009
6010 2007-11-15  Mark Probst  <mark.probst@gmail.com>
6011
6012         * image.c, metadata-internals.h: Added a generic_class_cache hash
6013         to MonoImage for looking up generic classes when sharing generics.
6014
6015 Thu Nov 15 16:11:30 CET 2007 Paolo Molaro <lupus@ximian.com>
6016
6017         * sgen-gc.c: warning cleanups.
6018
6019 2007-11-15  Zoltan Varga  <vargaz@gmail.com>
6020
6021         * icall.c (ves_icall_Type_GetPropertiesByName): Implement proper hiding of
6022         inherited properties.
6023
6024 2007-11-14  Mark Probst  <mark.probst@gmail.com>
6025
6026         * object.c, class-internals.h: Added more information to the
6027         runtime generic context.
6028
6029 2007-11-13  Zoltan Varga  <vargaz@gmail.com>
6030
6031         * marshal.c (mono_marshal_get_delegate_invoke): Take a delegate as argument
6032         instead of just the target method. Generalize the abstract method handling to
6033         handle any non-static method.
6034
6035         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
6036         mono_marshal_get_delegate_invoke () signature change.
6037
6038 2007-11-13  Mark Probst  <mark.probst@gmail.com>
6039
6040         * class.c, class-internals.h: Made
6041         mono_type_get_basic_type_from_generic () public.  Fixed member
6042         access check for shared generics.
6043
6044         * loader.c: Don't insert field into field cache if it's part of a
6045         non-inflated generic class.
6046
6047         * domain.c, domain-internals.h: The generic sharing context is now
6048         part of the jit info data structure.  Added two accessor
6049         functions.
6050
6051 2007-11-12  Zoltan Varga  <vargaz@gmail.com>
6052
6053         * marshal.c (mono_marshal_get_runtime_invoke): Create a non-shared wrapper for
6054         the array Get/Set/Address methods, since the JIT inlines them.
6055
6056         * metadata-internals.h (MonoImage): Add 'runtime_invoke_direct_cache'.
6057
6058         * image.c (mono_image_close): Free runtime_invoke_direct_cache.
6059         (mono_image_init): Initialize runtime_invoke_direct_cache.      
6060
6061         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): Update after
6062         mono_marshal_get_delegate_invoke signature change.
6063
6064         * marshal.c (mono_marshal_get_delegate_invoke): Receive the target_method as
6065         an additional argument. Add support for invoking abstract methods.
6066
6067         * metadata-internals.h (MonoImage): Add 'delegate_abstract_invoke_cache'.
6068
6069         * image.c (mono_image_close): Free delegate_abstract_invoke_cache.      
6070
6071 2007-11-09  Mark Probst  <mark.probst@gmail.com>
6072
6073         * class.c: Do field layout for open generic classes as well.
6074
6075 2007-11-09  Mark Probst  <mark.probst@gmail.com>
6076
6077         * gc.c, gc-internal.h: Don't finalize threadpool threads with
6078         other objects, because the threadpool is still around.  Put them
6079         in a list instead and after finalizing all other objects in the
6080         root domain shut down the thread pool and then finalize the
6081         threads.  Fixes bug #337383.
6082
6083         * threads.c, thread-types.h: New mono_thread_create_internal()
6084         function for marking a thread with the threadpool flag before it
6085         started.  Set synch_cs to NULL after freeing it.
6086
6087         * threadpool.c: Mark threadpool threads before they start.
6088
6089 Thu Nov 8 15:31:21 CET 2007 Paolo Molaro <lupus@ximian.com>
6090
6091         * reflection.h, reflection.c: don't export random functions
6092         and lazy load dbnull and missing objects.
6093
6094 2007-11-07  Jonathan Chambers <joncham@gmail.com>
6095
6096         * class.c: Initialize COM types if COM interfaces
6097         are present (not just COM classes).
6098         
6099         Code is contributed under MIT/X11 license.
6100
6101 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
6102         * reflection.c:
6103         create_dynamic_mono_image: hook module profiler events (dynamic case).
6104         mono_image_basic_init: hook assembly profiler events (dynamic case).
6105
6106 2007-11-07  Massimiliano Mantione  <massi@ximian.com>
6107         * profiler.c:
6108         simple_appdomain_unload: completely terminate the profiler
6109         instead of only processing the statistical samples.
6110         simple_shutdown: make sure this is really called exactly once,
6111         even in multithreaded applications, and always listen to
6112         appdomain events.
6113         * gc.c (mono_domain_finalize): don't call mono_profiler_appdomain_event
6114         here, the "[un]load" functions will do it.
6115         Fixes bugs #333791 and #325261.
6116
6117 2007-11-07  Geoff Norton  <gnorton@novell.com>
6118
6119         * socket-io.c:  Use the configure defines for HAVE_SOCKADDR_IN(6)_SIN_LEN
6120         rather than depend on __APPLE__.
6121
6122 2007-11-07  Mark Probst  <mark.probst@gmail.com>
6123
6124         * icall.c: Safety checks in InitializeArray.  Fixes bug #324535.
6125
6126 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com> 
6127
6128         * object.c: Fix mono_string_to_utf8 to handle NULL values inside the
6129         UTF16 MonoString. Fix the crash from bug #335488
6130
6131 2007-11-06  Sebastien Pouliot  <sebastien@ximian.com>
6132
6133         * marshal.c: Correct (for non-Win32 OS) length != size in 
6134         mono_string_from_bstr. Fix #339530.
6135
6136 2007-11-06  Geoff Norton  <gnorton@novell.com>
6137
6138         * socket-io.c: Apple requires sin(6)_len to be set for getnameinfo
6139         to succeed
6140
6141 2007-11-05  Kornél Pál  <kornelpal@gmail.com>
6142
6143         * process.c: Added run-time GetProcessId API detection for Windows.
6144
6145 2007-11-04  Miguel de Icaza  <miguel@novell.com>
6146
6147         * reflection.c  (mono_param_get_objects): If a parameter has the
6148         attribute [System.Runtime.InteropServices.Optional] we should
6149         set the DefaultValue of the ParameterInfo to be
6150         System.Reflection.Missing instead of DBNull.
6151
6152         See bug #339013.
6153
6154         (mono_get_reflection_missing_object): New method,
6155         returns the System.Reflection.Missing.Value singleton instance.
6156
6157 2007-11-03  Atsushi Enomoto  <atsushi@ximian.com>
6158
6159         * culture-info-table.h : regenerated.
6160
6161 2007-11-02  Jonathan Chambers <joncham@gmail.com>
6162
6163         * icall.c: Use GetEnvironmentStrings on windows
6164         so we are using the same environment block as 
6165         GetEnvironmentVariable/SetEnvironmentVariable. Fixes
6166         #333740.
6167         
6168         Code is contributed under MIT/X11 license.
6169
6170 2007-10-31  Martin Baulig  <martin@ximian.com>
6171
6172         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 64.
6173
6174         * mono-debug-debugger.h
6175         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_TRAMPOLINE'.
6176
6177 2007-10-30  Zoltan Varga  <vargaz@gmail.com>
6178
6179         * reflection.c (mono_custom_attrs_from_class): Add support for dynamic inflated 
6180         classes.
6181
6182 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
6183
6184         * culture-info-table.h : regenerated.
6185
6186 2007-10-30  Robert Jordan  <robertj@gmx.net>
6187
6188         * icall-def.h, icall.c:
6189         Add ves_icall_Remoting_RemotingServices_GetVirtualMethod ().
6190
6191         Code is contributed under MIT/X11 license.
6192
6193 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
6194
6195         * class.c (mono_class_setup_vtable): Find the inflated methods in the
6196         inflated class instead of inflating them again.
6197         
6198         * class.c (mono_class_setup_vtable): Inflate the override methods in the 
6199         dynamic case.
6200
6201         * class.c (mono_generic_class_get_class): Set klass->property.count as well.
6202         Call setup_supertypes () after klass->parent is set.
6203         (mono_class_setup_properties): Enable this to work on dynamic generic classes.
6204
6205         * reflection.c (mono_type_get_object): Only return a MonoGenericClass object
6206         for inflated instances of not yet created dynamic generic classes.
6207         (ctorbuilder_to_mono_method): Handle the case when this is called multiple
6208         times from inflated_method.
6209         (methodbuilder_to_mono_method): Ditto.
6210
6211 Mon Oct 29 21:02:53 CET 2007 Paolo Molaro <lupus@ximian.com>
6212
6213         * gc.c: code cleanup and removed old untested option of not creating the
6214         finalizer thread.
6215
6216 2007-10-29  Zoltan Varga  <vargaz@gmail.com>
6217
6218         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Avoid
6219         creating a jump trampoline for dynamic methods.
6220
6221 2007-10-29 Rodrigo Kumpera <rkumpera@novell.com>
6222
6223         * reflection.c (mono_image_create_token): Correctly encode methods and constructors of
6224         generic TypeBuilders when called from another method of the same type (bug #335131).
6225
6226
6227 2007-10-27  Zoltan Varga  <vargaz@gmail.com>
6228
6229         * reflection.c (methodbuilder_to_mono_method): Revert the last change as it
6230         doesn't seem to work perfectly.
6231         
6232         * reflection.c (ctorbuilder_to_mono_method): Handle the case when this is
6233         called multiple times.
6234         (methodbuilder_to_mono_method): Ditto.
6235         (resolve_object): Inflate FieldBuilder's.
6236
6237 Fri Oct 26 19:38:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6238
6239         * string-icalls.c, string-icalls.h, appdomain.c: patch from
6240         Tyler Larson <mono-devel@tlarson.com> to fix the handling of
6241         RemoveEmptyEntries in the string.Split implementation (bug #322375).
6242
6243 2007-10-26  Dick Porter  <dick@ximian.com>
6244
6245         * appdomain.c (MONO_CORLIB_VERSION): Bump version because of
6246         Thread initialisation changes
6247
6248 2007-10-26 Rodrigo Kumpera <rkumpera@novell.com>
6249
6250         * verify.c: fix compatibility check between arrays and System.Array
6251
6252 2007-10-26  Zoltan Varga  <vargaz@gmail.com>
6253
6254         * reflection.c (mono_reflection_get_custom_attrs_info): Handle MonoGenericClass
6255         too. Fixes #336999.
6256
6257 2007-10-25  Zoltan Varga  <vargaz@gmail.com>
6258
6259         * object.c (mono_value_box): Use typed allocation here.
6260
6261 2007-10-23  Zoltan Varga  <vargaz@gmail.com>
6262
6263         * icall.c (ves_icall_System_Delegate_CreateDelegate_internal): Create a jump
6264         trampoline instead of compiling the method right away.
6265
6266         * class-internals.h object.c: Add a JIT callback to create a jump trampoline.
6267
6268 2007-10-21  Zoltan Varga  <vargaz@gmail.com>
6269
6270         * class.c (mono_generic_class_get_class): Avoid setting klass->size_inited and
6271         related fields for dynamic classes. Fixes #334493.
6272
6273 2007-10-20  Zoltan Varga  <vargaz@gmail.com>
6274
6275         * class.c (mono_generic_class_get_class): Set klass->field.count as well.
6276         
6277         * class.c (mono_class_layout_fields): Use 1 instead of TRUE for consistency.
6278
6279         * class.c (mono_class_layout_fields): Set size_inited for generic classes as well.
6280         (mono_class_setup_vtable): Obtain overrides for dynamic generic classes correctly.
6281
6282         * class.c (mono_class_setup_methods): Handle dynamic inflated classes correctly.
6283
6284         * reflection.c (create_generic_typespec): Initialize klass->generic_container
6285         if needed.
6286         (reflection_methodbuilder_to_mono_method): Set container->is_method to TRUE.
6287
6288 2007-10-18  Jonathan Chambers <joncham@gmail.com>
6289
6290         * marshal.c: Use correct key when removing item
6291         from ccw_hash.
6292         
6293         Code is contributed under MIT/X11 license.
6294
6295 2007-10-17  William Holmes  <billholmes54@gmail.com>
6296
6297         *marshal.c: Adding a case to marshal booleans to U1
6298
6299         Code is contributed under MIT/X11 license.
6300
6301 2007-10-18  Zoltan Varga  <vargaz@gmail.com>
6302
6303         * class.c (mono_class_from_name): Search the modules compromising dynamic
6304         assemblies. Fixes #331601.
6305
6306 2007-10-16  Zoltan Varga  <vargaz@gmail.com>
6307
6308         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Throw an
6309         exception if the type name contains an assembly component. Fixes #334203.
6310
6311         * reflection.c (mono_reflection_get_type_with_rootimage): Search all the
6312         modules inside dynamic assemblies. Fixes #334200.
6313         
6314         * reflection.c: Set image->public_key and image->public_key_length;
6315
6316         * metadata-internals.h (MonoDynamicImage): Add public_key and public_key_len
6317         fields.
6318
6319         * image.c (mono_image_get_public_key): Handle dynamic assemblies. Fixes #334173.        
6320         
6321 2007-10-16  Mark Probst  <mark.probst@gmail.com>
6322
6323         * metadata.c: Implemented correct comparing of generic classes.
6324         An inflated generic class can be equal to a non-inflated one if it
6325         is inflated with generic type variables as type arguments.  Fixes
6326         bug #333798.
6327
6328 2007-10-15  Dick Porter  <dick@ximian.com>
6329
6330         * monitor.c (mono_monitor_try_enter_internal): Set thread state to
6331         WaitSleepJoin while it is waiting to acquire a lock.  Fixes bug
6332         81646.
6333
6334         * threads.c: Turn the thread synch_lock into a CRITICAL_SECTION,
6335         instead of a monitor lock.  This means that monitor_try_enter and
6336         co can set the thread state safely.
6337         (ves_icall_System_Threading_Thread_Interrupt_internal): Always set
6338         thread_interrupt_requested, so interrupt actually works.
6339
6340         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal,
6341         ves_icall_System_Net_Sockets_Socket_Select_internal): Use thread
6342         state accessor function
6343
6344 2007-10-15  Martin Baulig  <martin@ximian.com>
6345
6346         * mono-debug.h
6347         (MONO_DEBUGGER_VERSION): Bump to 63 to make it impossible to use
6348         the debugger with the current runtime.
6349
6350 Mon Oct 15 10:20:56 CEST 2007 Paolo Molaro <lupus@ximian.com>
6351
6352         * object.c, object-internals.h: added the ability to set a single
6353         trampoline for all the slots in a vtable.
6354
6355 Fri Oct 12 17:50:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
6356
6357         * marshal.c: deal with a possible race condition during multicast
6358         delegate invocation.
6359
6360 Fri Oct 12 13:31:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
6361
6362         * class.c: ensure value type methods don't have the synchronized
6363         flag set.
6364
6365 Fri Oct 12 08:10:59 CEST 2007 Paolo Molaro <lupus@ximian.com>
6366
6367         * string-icalls.c, string-icalls.h: reverted unapproved patch that
6368         breaks the build.
6369
6370 2007-10-11  Joel Reed  <joelwreed@comcast.com>
6371
6372         * string-icalls.c, string-icalls.h: modify System_String_InternalSplit
6373         to take an options parameter so that empty entries can be removed during
6374         the split procedure. Patch from: Tyler Larson <mono-devel@tlarson.com>
6375
6376 Thu Oct 11 20:16:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
6377
6378         * marshal.c: make sure we don't store the signature from a dynamic
6379         method into the runtime invoke cache (bug #327189).
6380
6381 Thu Oct 11 18:22:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6382
6383         * marshal.c: make sure the wrapper methods are properly initialized.
6384
6385 2007-10-11  Mark Probst  <mark.probst@gmail.com>
6386
6387         * metadata.c, metadata-internals.h: Generalized
6388         mono_type_stack_size() to mono_type_stack_size_internal() which
6389         takes an additional argument specifying whether it allows open
6390         types.
6391
6392 2007-10-10  Rodrigo Kumpera  <rkumpera@novell.com>
6393
6394         * verify.c (do_invoke_method): handle typedbyref params
6395         correctly and check for unverifiable return values.
6396
6397         * verify.c (do_newobj): fix a warning.
6398
6399 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
6400
6401         * verify.c: don't tread typedbyref as allways unverifable,
6402         so uses, like (ld/st)loc.0 are valid. verify for the cases
6403         that it matters, like boxing related operations.
6404
6405 2007-10-09  Rodrigo Kumpera  <rkumpera@novell.com>
6406
6407         * verify.c: add verification of the newobj opcode. verification
6408         of delegate instantation still missing due ldftn and virldftn not
6409         pushing the function type on stack
6410
6411 2007-10-08  Mark Probst  <mark.probst@gmail.com>
6412
6413         * class-internals.h: Runtime generic context data structure
6414         definition.
6415
6416         * object.c: Initialization of runtime generic context at runtime
6417         vtable creation time.
6418
6419 2007-10-08  Massimiliano Mantione  <massi@ximian.com>
6420         * class.c (mono_class_create_from_typedef,
6421         mono_class_from_generic_parameter, mono_ptr_class_get,
6422         mono_fnptr_class_get, mono_bounded_array_class_get)
6423         * domain.c (mono_domain_create, mono_domain_free)
6424         * assembly.c (mono_assembly_load_from_full, mono_assembly_close)
6425         * image.c (do_mono_image_load, mono_image_close):
6426         Hooked up load-unload profiler events.
6427
6428 Mon Oct 8 11:38:04 CEST 2007 Paolo Molaro <lupus@ximian.com>
6429
6430         * domain.c: track statistics about the actual amount of native code
6431         allocated.
6432
6433 Sat Oct 6 10:01:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
6434
6435         * class.c: the valuetype enumerators don't have the additional
6436         supertypes interfaces.
6437
6438 Fri Oct 5 20:33:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6439
6440         * class.c: need more interfaces setup for the IEnumerator<T>
6441         object created for arrays (tests/ienumerator-interfaces.2.cs).
6442
6443 2007-10-05  Zoltan Varga  <vargaz@gmail.com>
6444
6445         * class.c (mono_ldtoken): Handle methodspec tokens as well. Fixes #331097.
6446
6447 2007-10-05  Alp Toker  <alp@atoker.com>
6448
6449         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
6450         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
6451         #315863.
6452
6453 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
6454
6455         * verify.c (verify_type_compatibility_full): verification of
6456         compatibility improved, validates correctly non-strict checks between
6457         native int and I4 types different than (unsigned)int32.
6458
6459         * verify.c (do_store_indirect): added, do all verification of
6460         ldind.X opcodes. 
6461
6462         * verify.c (get_load_indirect_mono_type): renamed to
6463         get_indirect_op_mono_type, as it now returns the MonoType for 
6464         ldind.X and stind.X opcodes.
6465
6466 2007-10-04  Rodrigo Kumpera  <rkumpera@novell.com>
6467
6468         * reflection.c: Fix the encoding of generic type definition for
6469         TypeBuilders.
6470
6471         * reflection.c (mono_image_typedef_or_ref_full: do the same thing as
6472         mono_image_typedef_or_ref but allows to specify if typespec lookups should
6473         be made. Typespec check is done prior to typeref cache lookup.
6474
6475         * reflection.c (mono_image_typedef_or_ref): now just delegate to
6476         mono_image_typedef_or_ref_full.
6477
6478         * reflection.c (encode_generic_class): encode the generic class
6479         directly instead of calling encode_type.
6480
6481         * reflection.c (encode_type): encode the generic type definition
6482         MonoClass as a generic instantiation.
6483
6484         * reflection.c (create_typespec): cache typespec tokens in
6485         the assembly->typespec cache. Don't create typespec for a generic
6486         instance MonoClass. Create typespec for the generic type defintion.
6487
6488         * reflection.c (create_generic_typespec): encode the generic
6489         class directly instead of calling encode_type.
6490
6491         * reflection.c (mono_image_create_token): encode the generic
6492         type definition not using a typespec for MonoType instances.
6493
6494
6495 2007-10-04  Raja R Harinath  <rharinath@novell.com>
6496
6497         Fix #328812
6498         * class.c (mono_image_init_name_cache): Don't return nested
6499         'protected internal' classes.
6500         (mono_class_from_name_case): Likewise.
6501
6502 2007-10-04  Atsushi Enomoto  <atsushi@ximian.com>
6503
6504         * icall-def.h, icall.c : get_bundled_machine_config() is now the
6505           common function used by both DefaultConfig in System.dll and
6506           InternalConfigurationHost in System.Configuration.dll.
6507
6508 Wed Oct 3 17:26:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
6509
6510         * class.c: automatically add to vectors only a few essential explicit
6511         generic interfaces. The rest of the interfaces that arrays should
6512         provide are currently implicitly added (but still not lazily, see the
6513         design in the discussion of bug#325495 for the details of what is
6514         needed for that). Additionally, implicit interfaces are assigned the
6515         same vtable slot as the explicit interfaces (as they are compatible):
6516         this enables huge memory savings since we don't need to instantiate
6517         as many memthods and as large vtables anymore. Also, Since
6518         GetEnumerator<T> returns an instance of a type that is required to
6519         support a similarly large set of interfaces as arrays, we add
6520         implicit interfaces and interface offset sharing support to those
6521         types, too. This change adds all the required interfaces so that
6522         the anonarray.cs test case in the bug report works (we don't add
6523         all the interfaces to arrays of arrays 3-level deep and more because
6524         of the memory requirements explained in the bug and since they are much
6525         less common: the lazy-loading support will enabled them to work, too).
6526
6527 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
6528
6529         * verify.c (merge_stacks): major clean up, all type compatibility
6530         checks are done by verify_type_compatibility. This fix my earlier lack
6531         of understanding of the CLR type system and merge_stacks no longer looks
6532         scary.
6533
6534         * verify.c: fixed some bad spelling.
6535
6536 2007-10-02  Rodrigo Kumpera  <rkumpera@novell.com>
6537
6538         * verify.c (mono_type_from_stack_slot): added. returns the MonoType for
6539         a given stack slock.
6540         
6541         * verify.c: killed verify_type_compat in favor of verify_type_compatibility and
6542         verify_type_compatibility_full. This removed a near indentical function and fixed
6543         handling of Int32 and IntPtr across all opcodes.
6544
6545 Tue Oct 2 15:24:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
6546
6547         * class.c: only vectors have the additional generic interfaces.
6548
6549 2007-10-01  Jonathan Chambers <joncham@gmail.com>
6550
6551         * mono-config.c: Use g_strcasecmp instead of
6552         strcasecmp like everywhere else to fix
6553         compilation with MSVC.
6554         
6555         Code is contributed under MIT/X11 license.
6556
6557 Mon Oct 1 14:39:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
6558
6559         * object.c, object-internals.h: refactored the IMT code to enable
6560         building a single slot at a time and lazily creating the IMT trampolines
6561         and thunks.
6562
6563 2007-09-29  Zoltan Varga  <vargaz@gmail.com>
6564
6565         * loader.c (inflate_generic_signature): Allocate inflated signatures from the heap.
6566
6567         * metadata.c (mono_metadata_free_inflated_signature): Free the signature itself too.
6568         Fixes #328501.
6569         
6570 2007-09-29  Raja R Harinath  <harinath@gmail.com>
6571
6572         * loader.c (method_from_methodspec): Rearrange to avoid
6573         un-necessary exposition.  Don't assert out if the method's
6574         declaring type is a generic type definition.
6575
6576 2007-09-28  Martin Baulig  <martin@ximian.com>
6577
6578         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 61.
6579
6580 Fri Sep 28 20:15:47 CEST 2007 Paolo Molaro <lupus@ximian.com>
6581
6582         * class-internals.h: optimize field layout of MonoClass to
6583         requires less cachelines at runtime and save a few bytes on 64 bit
6584         systems.
6585
6586 2007-09-28  Jb Evain  <jbevain@novell.com>
6587
6588         * reflection.c: when encoding type names in custom attributes,
6589         if the type is a closed generic type, its generic arguments
6590         have to be serialized as AssemblyQualifiedName, so that when
6591         they are deserialized, it's possible to re-create them properly.
6592         Fixes #329450.
6593
6594
6595 Fri Sep 28 19:19:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
6596
6597         * object.c, class-internals.h: added delegate-creation counter.
6598
6599 Fri Sep 28 18:07:53 CEST 2007 Paolo Molaro <lupus@ximian.com>
6600
6601         * class.c: cleanup of the code that synthetizes interfaces for
6602         arrays in 2.0: saves quit a bit of corlib mempool memory.
6603         Code to fix bug #325495 ifdeffed out for now until the issues
6604         with memory usage and O(n^2) behaviour are fixed.
6605
6606 Fri Sep 28 17:19:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
6607
6608         * marshal.c: when possible, do not duplicate the name of the methods
6609         in the method builder and in the generated MonoMethod.
6610
6611 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
6612         * verify.c: added support for type checking ldind_* opcodes.
6613
6614 2007-09-27  Rodrigo Kumpera  <rkumpera@novell.com>
6615
6616         * class-internals.h (struct _MonoGenericClass): new field is_tb_open
6617         which is used to distinguish the fully open instantiation of a TypeBuilder
6618         with the rest. This temporary hack is required to restore the property that
6619         the fully open instantiation is the same type of the generic type definition.
6620
6621         * class-internals.h (mono_generic_class_is_generic_type_definition):
6622         new function as part of the internal API.
6623
6624         * class.c (inflate_generic_type): return NULL when the generic inst is
6625         fully open. The fully open generic type is now the same as the generic type
6626         definition for non TypeBuilder types.
6627
6628         * class.c (mono_generic_class_get_class): removed assert since it is
6629         no longer valid, gklass->cached_class can point to the generic type definition.
6630
6631         * class.c (mono_generic_class_is_generic_type_definition): new.
6632
6633         * metadata.c (mono_generic_class_hash): added is_tb_open field
6634         to the hash calculation.
6635
6636         * metadata.c (free_generic_class): if the generic class is associated
6637         with the generic type definition, its field will come from the mempool and
6638         must not be freed.
6639
6640         * metadata.c (mono_metadata_is_type_builder_generic_type_definition):
6641         new, this function identifies the corner case of a TypeBuilder fully open
6642         instantiation.
6643
6644         * metadata.c (mono_metadata_lookup_generic_class): use is_tb_open
6645         for lookup. Set gclass->cached_class to be the container class in case of
6646         the fully open instantiation of non TypeBuilder types.
6647
6648         * metadata.c (_mono_metadata_generic_class_equal): use is_tb_open
6649         to compare generic classes.
6650
6651         * reflection.c (method_encode_methodspec): remove assert that
6652         no longer is valid.
6653
6654         * reflection.c (mono_reflection_generic_class_initialize): add
6655         an aditional assert to ensure the proper type is used.
6656
6657 2007-09-26  Rodrigo Kumpera  <rkumpera@novell.com>
6658
6659         * verify.c: disabled all debug spew by default, define MONO_VERIFIER_DEBUG
6660         to enjoy it.
6661
6662 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
6663
6664         * verify.c (push_arg): Fixed support for ldarga
6665         * verify.c (set_stack_value): Removed superfluous parameter, fixed the
6666         MonoType used as first arg in case of instance calls.
6667
6668 2007-09-25  Rodrigo Kumpera  <rkumpera@novell.com>
6669
6670         * verify.c: Support for verifying VAR and MVAR types, 
6671
6672 2007-09-25  Zoltan Varga  <vargaz@gmail.com>
6673
6674         * icall.c (ves_icall_get_property_info): Set the reflected type of the
6675         accessors correctly.
6676
6677 Tue Sep 25 14:56:03 CEST 2007 Paolo Molaro <lupus@ximian.com>
6678
6679         * threads.c: support OSX and other systems in
6680         mono_thread_get_stack_bounds (bug #328026).
6681
6682 2007-09-25  Martin Baulig  <martin@ximian.com>
6683
6684         * mono-debug.h
6685         (MonoDebugVarInfo): Replace `MonoClass *klass' with `MonoType *type'.
6686
6687 2007-09-24  Martin Baulig  <martin@ximian.com>
6688
6689         * mono-debug.h
6690         (MonoDebugClassEntry): Moved the definition of this struct into
6691         mono-debug.c to make it private.
6692
6693         * mono-debug.c
6694         (MonoDebugClassEntry): Removed `symfile_id'; since we now use one
6695         type table per symbol file, we don't need to store the symfile id
6696         any longer.
6697
6698 2007-09-24  Martin Baulig  <martin@ximian.com>
6699
6700         Create one type table per symbol file, since a `MonoClass *' gets
6701         invalid when its image is unloaded.
6702
6703         * mono-debug.h (MonoSymbolTable): Removed `type_table'.
6704         (MonoDebugHandle): Added `type_table'.
6705
6706 Mon Sep 24 17:25:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
6707
6708         * mempool.c, mempool.h: added mono_mempool_new_size () API
6709         to be able to specify a smaller initial size for the pool.
6710         Adjusted the code to slowly increase pool size before using
6711         the previous default size.
6712         * image.c: use a small initial size for image mempools.
6713
6714 2007-09-23  Zoltan Varga  <vargaz@gmail.com>
6715
6716         * marshal.c (emit_marshal_array): Generate valid IL for byref array case.
6717         Fixes ##320990.
6718
6719         * icall.c (ves_icall_System_Reflection_Assembly_get_ManifestModuleInternal): 
6720         Rename this to ves_icall_System_Reflection_Assembly_GetManifestModuleInternal.
6721
6722 2007-09-22  Zoltan Varga  <vargaz@gmail.com>
6723
6724         * metadata.c (mono_type_create_from_typespec): Remove an invalid
6725         free. Fixes #327438.
6726
6727 2007-09-21  Raja R Harinath  <harinath@gmail.com>
6728
6729         * metadata.c (type_in_image) <MONO_TYPE_SZARRAY>: Handle arrays of
6730         generic instantiations, etc.
6731         <MONO_TYPE_ARRAY>: Likewise.
6732
6733 2007-09-21  Martin Baulig  <martin@ximian.com>
6734
6735         * mono-debug.h (MonoSymbolFilePriv, MonoDebugHandlePriv): Removed;
6736         these structs were never defined.
6737         (MonoDebugHandle): Removed the `_priv' field, it was never used.
6738
6739 2007-09-21  Martin Baulig  <martin@ximian.com>
6740
6741         * mono-debug.h (MonoDebugVarInfo): Add `MonoClass *klass'.
6742
6743 Fri Sep 21 14:39:45 CEST 2007 Paolo Molaro <lupus@ximian.com>
6744
6745         * image.c: removed the guid hash tables: we can get the same info
6746         without the additional memory usage hit (partially fixes also bug #327052).
6747
6748 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6749
6750         * profiler.h, profiler-private.h, profiler.c: add a new profiler
6751         event to handle unloading methods. After the event is called, the
6752         corresponding MonoMethod* must be considered invalid.
6753         * loader.c (mono_free_method): call the new mono_profiler_method_free
6754         event.
6755
6756 2007-09-20  Mark Probst  <mark.probst@gmail.com>
6757
6758         * domain-internals.h: New flag in MonoJitInfo which marks shared
6759         generic methods.  New hash table (shared_generics_hash) in
6760         MonoDomain to keep track of shared generic methods.  Prototypes
6761         for functions to register and lookup shared generic methods.
6762
6763         * domain.c: Support for registering and looking up shared generic
6764         methods via a hash table (shared_generics_hash) in MonoDomain.
6765
6766         * class-internals.h: New exception to signal failure of shared
6767         compilation of a generic method.  New counters for generics
6768         sharing in MonoStats.
6769
6770 Thu Sep 20 16:59:36 CEST 2007 Paolo Molaro <lupus@ximian.com>
6771
6772         * image.c, metadata-internals.h: don't keep a file descriptor open
6773         for loaded assemblies (bug#325988).
6774
6775 2007-09-19  Raja R Harinath  <rharinath@novell.com>
6776
6777         * metadata.c (signature_in_image): New.  Carve out of type_in_image.
6778         (ginst_in_image, gclass_in_image): Simplify.  Change signature to
6779         use the corresponding datatypes.
6780         (type_in_image): Update to changes.
6781         (CleanForImageUserData): Simplify.
6782         (steal_gclass_in_image): Carved out of old 'gclass_in_image'.
6783         Avoid quadratic behaviour in handling the "stolen" list by
6784         separating the filter predicate out, and by prepending the stolen
6785         items rather than appending them.
6786         (steal_ginst_in_image): Likewise.
6787         (mono_metadata_clean_for_image): Update to changes.
6788
6789 2007-09-19  Martin Baulig  <martin@ximian.com>
6790
6791         * domain.c (mono_cleanup): Call mono_debug_cleanup() here.
6792
6793 2007-09-19  Martin Baulig  <martin@ximian.com>
6794
6795         * mono-debug.c (mono_debug_cleanup): Don't call
6796         mono_debugger_cleanup(); this is now called earlier from mini_cleanup().
6797
6798 2007-09-19  Raja R Harinath  <harinath@gmail.com>
6799
6800         Fix crash on 'make run-test' in mcs/errors
6801         * metadata.c (type_in_image): New.  Carve out of ginst_in_image.
6802         Avoid more potential allocations in mono_class_from_mono_type.
6803         (ginst_in_image): Update to changes.
6804         (gclass_in_image): Rearrange slightly.
6805
6806 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
6807
6808         * class.c (mono_class_init): Move the code that sets up class->methods to 
6809         mono_class_setup_methods () for inflated generic classes too. Ditto for properties.
6810
6811         * metadata.c (mono_metadata_get_inflated_signature): New function to return a
6812         canonical instance of an inflated generic signature.
6813         (mono_type_create_from_typespec): Remove an invalid free.
6814
6815         * loader.c (mono_method_get_signature_full): Use mono_metadata_get_inflated_signature.  
6816
6817 2007-09-18  Marek Habersack  <mhabersack@novell.com>
6818
6819         * domain-internals.h: added a declaration of the
6820         mono_assembly_load_full_nosearch internal function.
6821
6822         * assembly.c (mono_assembly_load_with_partial_name): use
6823         mono_try_assembly_resolve return value properly.
6824         (mono_assembly_load_full_nosearch): copied the function body from
6825         mono_assembly_load_full, without the code to invoke assembly
6826         search hooks.
6827         (mono_assembly_load_full): calls the above new function and if the
6828         assembly is not resolved, invokes the search hooks.
6829
6830         * appdomain.c (mono_runtime_init): restore the global postload
6831         assembly search handlers.
6832
6833 2007-09-18  Zoltan Varga  <vargaz@gmail.com>
6834
6835         * class.c (mono_class_init): Make sure class->methods and class->properties
6836         are never NULL in the generics case.
6837
6838         * metadata.c (free_generic_class): Enable this again, skip the dynamic case.
6839
6840 2007-09-17  Zoltan Varga  <vargaz@gmail.com>
6841
6842         * metadata.c (free_generic_class): Disable some code to fix the build.
6843
6844         * domain.c (mono_cleanup): Fix a crash introduced by a previous patch.
6845
6846         * marshal.c (mono_marshal_get_xappdomain_dispatch): Allocate a piece of data
6847         from the image mempool.
6848
6849         * metadata.c (free_generic_class): Free more data from the inflated class.
6850
6851         * class.c (mono_class_from_generic_parameter): Allocate memory from the mempool.
6852
6853         * metadata.c (mono_metadata_parse_generic_param): Allocate memory from the image
6854         mempool.
6855         (mono_type_create_from_typespec): Ditto.
6856
6857         * domain.c (get_runtimes_from_exe): Add an out parameter to return the opened
6858         MonoImage to the caller.
6859         (mono_init_internal): Save the opened image in a global variable.
6860         (mono_cleanup): Close the image opened in get_runtimes_from_exe.
6861
6862         * reflection.c (resolve_object): Fix a leak.
6863
6864         * metadata.c: Fix the freeing of data in the generics caches.
6865         
6866         * metadata.c (free_generic_inst): Comment this out to fix the build.
6867         (free_generic_class): Ditto.
6868
6869         * metadata.c: Free cached generic methods, instantinations and classes when
6870         they are removed from the caches.
6871         (mono_metadata_free_type): Free the type itself.
6872
6873         * class.c: Free the result of mono_class_inflate_generic_type () in a few
6874         places.
6875
6876 Mon Sep 17 16:14:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
6877
6878         * boehm-gc.c: restrict managed allocs to __thread supporting
6879         architectures.
6880
6881 2007-09-16  Zoltan Varga  <vargaz@gmail.com>
6882
6883         * class.c (mono_class_inflate_generic_type): Add a comment describing memory ownership.
6884         (mono_generic_class_get_class): Fix a leak.
6885
6886         * metadata.c (do_mono_metadata_parse_type): Remove an unneccesary call to
6887         mono_metadata_free_type ().
6888         (mono_metadata_inflate_generic_inst): Fix a leak.
6889
6890 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6891
6892         * mono-debug.c (free_header_data): Fix a leak missed earlier.
6893
6894         * metadata.c (mono_metadata_parse_array_full): Allocate memory from the image
6895         mempool.
6896
6897         * mono-debug.c (mono_debug_close_image): Fix call to 
6898         g_hash_table_remove ().
6899
6900 Fri Sep 14 19:36:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
6901
6902         * icall-def.h: redirect all the string ctor to the managed
6903         CreateString () methods.
6904         * string-icalls.c, string-icalls.h: removed dead code for string
6905         ctors and icalls.
6906
6907 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6908
6909         * mono-debug.c: Fix memory leaks.
6910
6911 2007-09-14  Jonathan Chambers <joncham@gmail.com>
6912
6913         * threads-types.h: Implement mono_hazard_pointer_set and 
6914         mono_hazard_pointer_clear macros using do/while(0) to fix
6915         compilation with MSVC.
6916         
6917         Code is contributed under MIT/X11 license.
6918
6919 2007-09-14  Zoltan Varga  <vargaz@gmail.com>
6920
6921         * gc.c (ves_icall_System_GCHandle_GetAddrOfPinnedObject): Use a return value of
6922         -2 to communicate to managed code that the handle is not pinned. Fixes #82848.
6923
6924 Fri Sep 14 14:04:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6925
6926         * icall-def.h, string-icalls.c: get rid of old, no longer used, string
6927         icalls.
6928
6929 Fri Sep 14 11:41:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
6930
6931         * boehm-gc.c, gc-internal.h, object.c: allow strings to be
6932         managed-code allocated as well.
6933
6934 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6935
6936         * class.c (mono_class_is_assignable_from): Add support for generic variance.
6937
6938 Thu Sep 13 11:55:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
6939
6940         * boehm-gc.c: fixed the build after the AOT changes.
6941
6942 2007-09-13  Zoltan Varga  <vargaz@gmail.com>
6943
6944         * wrapper-types.h: Add an ALLOC wrapper type.
6945
6946         * gc-internals.h boehm-gc.c null-gc.c sgen-gc.c: Add functions needed by AOT to
6947         reference managed allocator methods.
6948
6949 2007-09-12  Marek Safar  <marek.safar@gmail.com>
6950
6951         * icall.c (ves_icall_MonoType_GetGenericArguments): Create an instance
6952         of Type array and not MonoType, a fix suggested by Hari.
6953         
6954 2007-09-12  Jonathan Chambers <joncham@gmail.com>
6955
6956         * domain-internals.h, domain.c : Remove delegate_invoke_impl_with_target_hash
6957         and delegate_invoke_impl_no_target_hash from _MonoDomain struct.
6958         
6959         Code is contributed under MIT/X11 license.
6960
6961 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
6962
6963         * domain.c, object.c, mono-config.c, object-internals.h: Fixed  #82416.
6964
6965 2007-09-12  Marek Habersack  <mhabersack@novell.com>
6966
6967         * image.c (do_mono_image_open): if assembly file fails to open and
6968         MONO_IOMAP is in effect, try to find the path in a
6969         case-insensitive way.
6970
6971         * appdomain.c (mono_runtime_init): do not install postload hooks -
6972         tests show that MS.NET doesn't use anything of that sort to
6973         trigger the AppDomain.AssemblyResolve event.
6974         (mono_try_assembly_resolve): renamed from try_assembly_resolve and
6975         made non-static.
6976         (mono_runtime_init): init portability helpers here.
6977
6978         * assembly.c (mono_assembly_load_with_partial_name): if other   
6979         attempts fail, trigger the AppDomain.AssemblyResolve event handler
6980         to resolve the assembly.
6981
6982         * domain-internals.h: added mono_try_assembly_resolve and marked
6983         it as internal.
6984
6985 2007-09-11  Jb Evain  <jbevain@novell.com>
6986
6987         * object-internals.h (MonoReflectionDynamicMethod): add
6988         a `MonoReflectionType *owner` field. The owner is used
6989         * reflection.c:
6990         (mono_reflection_create_dynamic_method): use the owner of the dynamic
6991         method as the class declaring the dynamic method.
6992         (reflection_methodbuilder_from_dynamic_method): copy the owner of the
6993         dynamic method to the declaring type of the methodbuilder.
6994
6995 2007-09-11  Mark Probst  <mark.probst@gmail.com>
6996
6997         * icall.c (ves_icall_InternalInvoke): Enforce CoreCLR security
6998         rules for calling methods via reflection.
6999
7000 2007-09-11  Zoltan Varga  <vargaz@gmail.com>
7001
7002         * reflection.c (resolve_object): Add support for MonoGenericClass. 
7003         Inflate MonoType's.
7004
7005 Tue Sep 11 16:08:08 CEST 2007 Paolo Molaro <lupus@ximian.com>
7006
7007         * gc-internal.h, boehm-gc.c, null-gc.c, sgen-gc.c: allow the GC to
7008         provide a managed method that does fast allocations without needing
7009         a managed->unmanaged transition. Boehm GC implementation currently
7010         enabled for ptrfree objects on sane architectures.
7011
7012 Tue Sep 11 16:00:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
7013
7014         * marshal.c, marshal.h: exported a couple of useful functions and
7015         added mono_mb_get_label () to easily handle backward branches.
7016
7017 2007-09-10  Zoltan Varga  <vargaz@gmail.com>
7018
7019         * reflection.c (resolve_object): Inflate generic methods. Fixes #82782.
7020
7021 2007-09-10  Massimiliano Mantione  <massi@ximian.com>
7022
7023         * loader.c (find_method): Fixed the regression introduced while
7024         fixing bug #81466.
7025
7026 2007-09-09  Zoltan Varga  <vargaz@gmail.com>
7027
7028         * class.c (mono_lookup_dynamic_token_class): Pass along the context here as
7029         well.
7030         
7031         * class.c loader.c metadata.c object.c class-internals.h object-internals.h
7032         icall.c reflection.c: Pass a MonoGenericContext argument to 
7033         mono_lookup_dynamic_token ().
7034
7035         * reflection.c (resolve_object): Handle GenericTypeParameterBuilder. Fixes
7036         #82744.
7037         
7038 2007-09-09  Robert Jordan  <robertj@gmx.net>
7039
7040         * object.c (mono_class_proxy_vtable): Don't create remoting trampolines
7041         for generic methods.
7042
7043         * object.c (mono_object_get_virtual_method): Handle generic methods.
7044         Fixes bug #78882.
7045
7046         Code is contributed under MIT/X11 license.
7047
7048 Sat Sep 8 18:16:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
7049
7050         * image.c: fix locking in mono_image_load_file_for_image ().
7051
7052 Thu Sep 6 19:48:00 CEST 2007 Paolo Molaro <lupus@ximian.com>
7053
7054         * reflection.c, icall.c, icall-def.h: the methodinfos name field is
7055         used only as a cache: added an icall to fill it.
7056
7057 2007-09-16  Rodrigo Kumpera  <rkumpera@novell.com>
7058
7059         * reflection.h: exposed mono_reflection_free_type_info
7060         * reflection.c (mono_reflection_get_type_internal): type_args is always freed
7061         since mono_reflection_bind_generic_parameters makes a copy of it.
7062         * reflection.c (free_type_info): subinfos should be freed.
7063         * reflection.c (free_type_info): renamed to mono_reflection_free_type_info and 
7064         made non static.
7065         * icall.c (type_from_name and ves_icall_System_Reflection_Assembly_InternalGetType):
7066         replaced explicit cleanup of MonoTypeNameParse struct with a call to mono_reflection_free_type_info,
7067         this fixes #82695 and #81726.
7068    
7069
7070 2007-09-03  Atsushi Enomoto  <atsushi@ximian.com>
7071
7072         * process.h, process.c:  added support for user profile/info in
7073           ProcessStartInfo. For now only Windows works.
7074
7075 Fri Aug 31 17:30:58 CEST 2007 Paolo Molaro <lupus@ximian.com>
7076
7077         * metadata.c: consider the generic arguments when comparing
7078         signatures (bug #82614).
7079
7080 Thu Aug 30 18:34:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
7081
7082         * cil-coff.h, image.c: updated assembly loader to cope with the
7083         PE32+ 64 bit file format.
7084
7085 Thu Aug 30 16:47:38 CEST 2007 Paolo Molaro <lupus@ximian.com>
7086
7087         * assembly.c, class.c, domain.c, loader.c: remove useless
7088         inclusion of cil-coff.h.
7089
7090 2007-08-29  Jonathan Chambers  <joncham@gmail.com>
7091
7092         * marshal.c (cominterop_get_ccw): Walk up interface hierarchy
7093         if interface is marked with CoClassAttribute. 
7094    
7095         Code is contributed under MIT/X11 license.
7096
7097 Wed Aug 29 19:27:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
7098
7099         * sgen-gc.c: ensure no object from the to space is copied again or finalized
7100         if it's seen twice in major collections.
7101
7102 Wed Aug 29 18:46:49 CEST 2007 Paolo Molaro <lupus@ximian.com>
7103
7104         * sgen-gc.c: big objects are not copied to the gray area, but they
7105         need to be considered for scanning, too, if they are brought alive
7106         by an object ready for finalizations or a survived one.
7107
7108 Wed Aug 29 18:43:11 CEST 2007 Paolo Molaro <lupus@ximian.com>
7109
7110         * sgen-gc.c: properly account the number of disappearing links when
7111         they are nullified.
7112
7113 Wed Aug 29 18:37:37 CEST 2007 Paolo Molaro <lupus@ximian.com>
7114
7115         * sgen-gc.c: share the code to scan the registered roots between the
7116         different types of collections.
7117
7118 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
7119
7120         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunModuleConstructor): New icall.
7121
7122 2007-08-28  Zoltan Varga  <vargaz@gmail.com>
7123
7124         * object.c (mono_class_proxy_vtable): Use max_interface_id instead of
7125         class->max_interface_id in a one place. Fixes transparentproxy.exe test on ia64.
7126
7127 2007-08-28  Mark Probst  <mark.probst@gmail.com>
7128
7129         * security-manager.c (mono_security_manager_get_methods):
7130         LinkDemandSecurityException now has 2 arguments instead of 3.
7131
7132 2007-08-27  Zoltan Varga  <vargaz@gmail.com>
7133
7134         * class.c (mono_class_layout_fields): Only do the struct alignment hack on
7135         platforms which need it.
7136
7137 Mon Aug 27 18:29:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
7138
7139         * sgen-gc.c: unregister thread data structures with a pthread_key_t
7140         dtor.
7141
7142 Mon Aug 27 18:27:35 CEST 2007 Paolo Molaro <lupus@ximian.com>
7143
7144         * threads.c: free the thread static data on thread exit.
7145
7146 Mon Aug 27 10:55:54 CEST 2007 Paolo Molaro <lupus@ximian.com>
7147
7148         * class.c: walk the hierarchy to find the generic definition for
7149         a class (fixes runtime part of bug #82498).
7150
7151 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
7152
7153         * assembly.c (mono_assembly_close): Move the closing of the referenced assemblies to
7154         ...
7155
7156         * image.c (mono_image_close): Here. Hopefully fixes #82510.
7157
7158 2007-08-24  Mark Probst  <mark.probst@gmail.com>
7159
7160         * monodiet.c (handle_cattrs): Fixed a custom attr leak.
7161
7162 2007-08-24  Robert Jordan  <robertj@gmx.net>
7163
7164         * appdomain.c: don't perform the ':'->';' substitution on Win32.
7165
7166 2007-08-24  Jb Evain  <jbevain@novell.com>
7167
7168         * class.c (mono_type_get_name_recurse): fix AssemblyQualifiedName
7169         for byref types.
7170
7171 2007-08-24  Mark Probst  <mark.probst@gmail.com>
7172
7173         * threads.c: Make sure a thread gets cleaned up only once.  Fixes
7174         #82286.
7175
7176 2007-08-24  Zoltan Varga  <vargaz@gmail.com>
7177
7178         * assembly.c: Fix a warning.
7179         
7180 2007-08-23  Marek Habersack  <mhabersack@novell.com>
7181
7182         * appdomain.c: parse the <runtime> section looking for the probing
7183         element with the 'privatePath' attribute, which sets additional
7184         directories in which the runtime should look for assemblies.
7185
7186 2007-08-23  Robert Jordan  <robertj@gmx.net>
7187
7188         * marshal.c (Marshal_ReAllocHGlobal) : Fix GlobalReAlloc's flags.
7189         Fixes #82499.
7190
7191 2007-08-23  Martin Baulig  <martin@ximian.com>
7192
7193         * mono-debug.[ch]: Rename mono_debug_init_corlib() into
7194         _mono_debug_init_corlib() and remove it from the header file.
7195
7196 2007-08-23  Martin Baulig  <martin@ximian.com>
7197
7198         * mono-debug-debugger.c
7199         (mono_debugger_unhandled_exception): Ignore `ThreadAbortException';
7200         don't notify the debugger about it.
7201
7202         * mono-debug-debugger.h
7203         (MonoDebuggerEvent): Removed `THREAD_ABORT'.
7204
7205 2007-08-23  Robert Jordan  <robertj@gmx.net>
7206
7207         * icall-def.h, process.*: implemented Get|SetPriorityClass icalls.
7208         Code is contributed under MIT/X11 license.
7209
7210 Wed Aug 22 18:35:12 CEST 2007 Paolo Molaro <lupus@ximian.com>
7211
7212         * sgen-gc.h, sgen-gc.c: abstracted most of the OS-specific code.
7213
7214 2007-08-22  Martin Baulig  <martin@ximian.com>
7215
7216         * mono-debug.c: Store debugging info on a per-domain basis and
7217         free it on domain unload.  Add support for unloading symbol files.
7218
7219         * mono-debug.h
7220         (MonoDebugList): New typedef.
7221         (MonoSymbolTable):
7222         - add `data_tables and `type_table'.
7223         - replace 'symbol_files' and `num_symbol_files' with a
7224           `MonoDebugList *'.
7225         (mono_debug_data_table): Removed.
7226         (mono_debug_list_add): New public function.
7227         (mono_debug_list_remove): New public function.
7228         (mono_debug_init_1): Renamed into mono_debug_init_corlib().
7229         (mono_debug_init_2_memory): Renamed into
7230         mono_debug_open_image_from_memory().
7231         (mono_debug_close_image): New public function.
7232         (mono_debug_domain_create): Likewise.
7233         (mono_debug_domain_unload): Likewise.
7234         (MONO_DEBUGGER_VERSION): Bump to 60.
7235
7236         * mono-debug-debugger.h
7237         (MonoDebuggerEvent):
7238         - remove `RELOAD_SYMTABS' and `METHOD_COMPILED'.
7239         - rename `ADD_MODULE' into `LOAD_MODULE'; add `UNLOAD_MODULE'.
7240         - add `DOMAIN_CREATE' and `DOMAIN_UNLOAD'.
7241         - rename `THREAD_CREATED' and `THREAD_EXITED' into
7242           `GC_THREAD_CREATED' and `GC_THREAD_EXITED'.
7243         - re-add `THREAD_CREATED' and `THREAD_EXITED'; with different
7244           meaning.
7245         (mono_debugger_add_symbol_file): Removed.
7246         (mono_debugger_add_type): Removed.
7247         (mono_debugger_lookup_type): Removed.
7248         (mono_debugger_lookup_assembly): Removed.
7249
7250         * domain.c
7251         (mono_domain_create): Call mono_debug_domain_create().
7252         (mono_init_internal): Call mono_debug_init_corlib().
7253
7254         * assembly.c
7255         (mono_assembly_close): Call mono_debug_close_image().
7256
7257 Wed Aug 22 17:26:02 CEST 2007 Paolo Molaro <lupus@ximian.com>
7258
7259         * sgen-gc.c: use the mono-mmap facilitites instead of hard-coding the
7260         mmap call.
7261
7262 Wed Aug 22 17:17:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
7263
7264         * sgen-gc.c: ensure section->pin_queue_end is initialized
7265         correctly when non pinning objects in the section have been found.
7266
7267 2007-08-22  Marek Habersack  <mhabersack@novell.com>
7268
7269         * appdomain.c (set_domain_search_path): cope with PrivateBinPath
7270         containing a list of directories separated by ':'. MSDN docs say
7271         the directories should be separated with ';'. Part of a bugfix for
7272         bug #81446
7273
7274 2007-08-21  Rodrigo Kumpera  <rkumpera@novell.com>
7275
7276         * class.c (mono_type_retrieve_from_typespec) : fixed the return type
7277         it should MonoType and not MonoClass.
7278
7279 2007-08-21  Atsushi Enomoto  <atsushi@ximian.com>
7280
7281         * culture-info-table.h : regenerated.
7282
7283 2007-08-20  William Holmes  <billholmes54@gmail.com>
7284
7285         *file-io.c: Added ves_icall_System_IO_MonoIO_ReplaceFile
7286          to call ReplaceFile Kernel32 on windows or in io-layer.
7287         *file-io.h: Added deceleration for ves_icall_System_IO_MonoIO_ReplaceFile
7288         *icall-def.h: Register ves_icall_System_IO_MonoIO_ReplaceFile
7289          as an internal call.
7290
7291         Code is contributed under MIT/X11 license.
7292
7293 2007-08-20  Jb Evain  <jbevain@novell.com>
7294
7295         * class-internals: add definitions for MONO_EXCEPTION_METHOD_ACCESS
7296         and MONO_EXCEPTION_FIELD_ACCESS.
7297
7298         * debug-helpers.[c|h]: new mono_field_full_name function.
7299
7300 2007-08-20  Mark Probst  <mark.probst@gmail.com>
7301
7302         * class.c: Removed class_security_level() and moved it to
7303         security-core-clr.c.
7304
7305         * security-core-clr.c, security-core-clr.h: class_security_level()
7306         is now public and renamed to mono_security_core_clr_class_level().
7307         It also looks for security attributes in the classes a class is
7308         nested in.
7309
7310 2007-08-20  Mark Probst  <mark.probst@gmail.com>
7311
7312         * security-core-clr.c, security-core-clr.h: CoreCLR security
7313         utility functions.
7314
7315         * Makefile.am: Added security-core-clr.[ch].
7316
7317         * security-manager.c, security-manager.h: Functions and enum for
7318         setting and getting the security mode.
7319
7320         * class.c: CoreCLR security checks.
7321
7322 Mon Aug 20 12:38:42 CEST 2007 Paolo Molaro <lupus@ximian.com>
7323
7324         * icall-def.h, process.c, process.h: implemented icall to get
7325         user/system processor times.
7326
7327 2007-08-17  Mark Probst  <mark.probst@gmail.com>
7328
7329         * domain.c, threads.c, class-internals.h, domain-internals.h: New
7330         reader-lock-free jit_info_table.
7331
7332 2007-08-17  Zoltan Varga  <vargaz@gmail.com>
7333
7334         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_CUSTOM.
7335
7336         * marshal.c (mono_marshal_type_size): Ditto. Fixes #82465 and #82466.   
7337
7338         * object-internals.h (MonoException): Add missing _data member.
7339
7340 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
7341
7342         * loader.c (find_method, find_method_in_class): Fixed bug #81466,
7343         checking that only methods with matching qname or fqname are picked
7344         from implemented interfaces.
7345
7346 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
7347
7348         * verify.c (do_newarr):added, do type verification of
7349         newarr ops, push the right value on the eval stack.
7350         * verify.c (mono_method_verify): use do_newarr
7351
7352
7353 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
7354
7355         * verify.c (do_ldobj_value, do_unbox_value and do_box_value):
7356         factored the common code into get_boxable_mono_type, which
7357         is now using mono_type_get_full, this fixed byref related tests.
7358
7359 2007-08-16  Rodrigo Kumpera  <rkumpera@novell.com>
7360
7361         * class.c: added mono_type_get_full, this function has the same
7362         behavior of mono_class_get_full but the returned MonoType has
7363         all metadata of the associated token in case of a typespec token.
7364         * class.c: added mono_type_retrieve_from_typespec, used by 
7365         mono_type_get_full to retrieve the token type.
7366         * class.c (mono_class_create_from_typespec): changed to use
7367         mono_type_retrieve_from_typespec.
7368         * class.c (mono_ldtoken): changed to use mono_type_get_full
7369         for MONO_TOKEN_TYPE_(DEF|REF|SPEC).
7370         * class-internals.h: exported mono_type_get_full for internal use.
7371
7372 2007-08-16  Jb Evain  <jbevain@novell.com>
7373
7374         * domain.c (supported_runtimes): add entry for
7375         the 'moonlight' runtime version.
7376
7377 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
7378
7379         * verify.c (mono_method_verify): small typo sliped in.  
7380
7381 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
7382
7383         * verify.c (do_unbox_value): added, do type verification of
7384         unboxing ops
7385         * verify.c (mono_method_verify): use do_unbox_value
7386
7387
7388 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
7389
7390         * verify.c (dump_stack_value): fixed typo, was printing string
7391         instead of object on stack.
7392         * verify.c (do_box_value): moved the byref check up as it leads
7393         to invalid code and should be done earlier.
7394         * verify.c: improved error messages for and ldobj
7395
7396 2007-08-15  William Holmes  <billholmes54@gmail.com>
7397
7398         * marshal.c (emit_marshal_custom): Omit the call to 
7399           marshal_native_to_managed when calling native to managed 
7400           and the argument is specified as an out argument.
7401
7402         Code is contributed under MIT/X11 license.
7403
7404 2007-08-15  Rodrigo Kumpera  <rkumpera@novell.com>
7405
7406         * verify.c: fixed the type checks for generics, function pointers and vectors.
7407         Added type verification for ldobj and ldtoken. The verifier
7408         would segfault if header or signature of a method contained references
7409         to non-existant types.
7410
7411 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
7412
7413         * marshal.c (cominterop_get_ccw): Patch from
7414         Bill Holmes to no walk up interface hierarchy. 
7415         All parent methods should be present in the interface for COM.
7416    
7417         Code is contributed under MIT/X11 license.
7418
7419 2007-08-15  Jonathan Chambers  <joncham@gmail.com>
7420
7421         * marshal.c (emit_marshal_com_interface): Patch from
7422         Bill Holmes to handle COM Interfaces as return values
7423         for native->managed calls.
7424    
7425         Code is contributed under MIT/X11 license.
7426
7427 2007-08-14  Jonathan Chambers  <joncham@gmail.com>
7428
7429         * marshal.c (cominterop_get_idispatch_for_object): Implement
7430         for runtime callable wrappers.
7431    
7432         Code is contributed under MIT/X11 license.
7433
7434 2007-08-13  Rodrigo Kumpera  <rkumpera@novell.com>
7435
7436         * pedump.c (main): changed from mono_init to mono_init_from_assembly
7437         so 2.0 types are accessible
7438
7439
7440 2007-08-13  Miguel de Icaza  <miguel@novell.com>
7441
7442         * domain.c (mono_init_internal): Call mono_assembly_load_friends
7443         once we load mscorlib.   Due to the order in which we initialize,
7444         the mono_assembly_load_full routine that loads mscorlib did not
7445         load friends.   We now load it once we load the
7446         mono_defaults.internals_visible_class class. 
7447
7448         * assembly.c: Expose the mono_load_friend_assemblies method.
7449
7450 2007-08-11  Rodrigo Kumpera  <rkumpera@novell.com>
7451
7452         * verify.c: improved the handling of boxing, better
7453         type checking for unary ops and conversion. Fix bug
7454         regarding managed pointer compatibility checking
7455
7456 2007-08-11  Zoltan Varga  <vargaz@gmail.com>
7457
7458         * icall.c (ves_icall_System_Array_SetGenericValueImpl): New icall.
7459
7460         * threads.c threads-types.h: Export mono_thread_get_stack_bounds.
7461
7462 2007-08-09  Raja R Harinath  <rharinath@novell.com>
7463
7464         * reflection.c (dup_type): Remove.
7465         * class.c (dup_type): Remove.
7466         (mono_metadata_signature_deep_dup): Use 'mono_metadata_type_dup'
7467         instead of the dodgy 'dup_type'.
7468         (inflate_generic_type): Likewise.  Fix the VAR/MVAR cases to
7469         handle the case where 'dup_type' needed the second argument.
7470
7471 2007-08-08  Zoltan Varga  <vargaz@gmail.com>
7472
7473         * domain.c: Fix a warning.
7474
7475 2007-08-08  Massimiliano Mantione  <massi@ximian.com>
7476
7477         * class.c (mono_class_setup_vtable_general): Fixed bug #77127,
7478         checking that methods with the same fqname are not overridden
7479         with a method from an ancestor.
7480
7481 2007-08-07  Zoltan Varga  <vargaz@gmail.com>
7482
7483         * threads.c (free_thread_static_data_helper): Avoid a crash if
7484         thread->static_data is not yet set.
7485
7486 2007-08-07  Jonathan Chambers  <joncham@gmail.com>
7487
7488         * marshal.c: Use correct image when emitting
7489         native wrapper for COM calls.
7490    
7491         Code is contributed under MIT/X11 license.
7492
7493 2007-08-07  Atsushi Enomoto  <atsushi@ximian.com>
7494
7495         * icall-def.h, security.c, security.h :
7496           added icall wrapper to ProtectedMemory.[Unprotect|Protect]Data().
7497
7498 2007-08-07  Martin Baulig  <martin@ximian.com>
7499
7500         * mono-debug-debugger.h
7501         (MonoDebuggerEvent): Add `MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD'.
7502
7503         * domain.c (mono_domain_free): Call
7504         `mono_debugger_event (MONO_DEBUGGER_EVENT_DOMAIN_UNLOAD)'.
7505
7506 2007-08-06  Rodrigo Kumpera  <rkumpera@novell.com>
7507
7508         * verify.c (check_underflow, check_overflow): error message now returns IL offset
7509         * verify.c (in_same_block): code should test if either offset is inside the clauses
7510         * verify.c (mono_method_verify): push the exception into the eval stack of exception
7511         and filter blocks
7512
7513 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
7514
7515         * image.c (mono_image_close): Fix a leak.
7516
7517         * object.c (mono_runtime_invoke_array): Avoid using alloca.
7518
7519         * icall.c (ves_icall_FieldInfo_SetValueInternal): Ditto.        
7520
7521 Fri Aug 3 19:54:23 CEST 2007 Paolo Molaro <lupus@ximian.com>
7522
7523         * domain.c, threads.c, threads-types.h: fix memory retention issue
7524         with thread static variables not being cleared on domain unload.
7525         Reuse thread static slots after domain unload.
7526
7527 2007-08-03  Zoltan Varga  <vargaz@gmail.com>
7528
7529         * object.c (mono_runtime_invoke_array): Handle the case when the receiver is a
7530         nullable type.
7531
7532         * marshal.c (mono_marshal_get_runtime_invoke): Revert the previous change, it is
7533         now done in mono_runtime_invoke_array.
7534
7535         * marshal.c (mono_marshal_get_runtime_invoke): Handle the case when the 
7536         receiver is a nullable type.
7537
7538         * class.c (mono_class_is_assignable_from): Handle the case when klass is a 
7539         generic parameter.
7540
7541 2007-08-03  Jonathan Chambers  <joncham@gmail.com>
7542
7543         * marshal.c: Implement COM Objects as return type for 
7544         managed->unmanaged calls. Added Release calls for COM Object
7545         out/return values in managed->unmanaged calls.
7546
7547         Code is contributed under MIT/X11 license.
7548
7549 Fri Aug 3 17:00:51 CEST 2007 Paolo Molaro <lupus@ximian.com>
7550
7551         * threads.h, threads-type.h: move the hazard pointer declarations
7552         to the private header.
7553
7554 Fri Aug 3 13:13:39 CEST 2007 Paolo Molaro <lupus@ximian.com>
7555
7556         * file-io.c, appdomain.c: memory leak fixes.
7557
7558 2007-08-02  Dick Porter  <dick@ximian.com>
7559
7560         * socket-io.c
7561         (ves_icall_System_Net_Sockets_Socket_Socket_internal): Move the
7562         SO_REUSEADDR setting into io-layer/sockets.c.
7563
7564 2007-08-01  Zoltan Varga  <vargaz@gmail.com>
7565
7566         * icall.c (ves_icall_Type_GetMethodsByName): Return the members inherited
7567         from Object when called on a generic parameter. Fixes #82211.
7568
7569 2007-08-01  Dick Porter  <dick@ximian.com>
7570
7571         * file-io.c (convert_share): Test FileShare values bit-by-bit.
7572         Fixes bug 79250 yet again.
7573
7574 2007-07-30  Martin Baulig  <martin@ximian.com>
7575
7576         Merged the `debugger-dublin' branch.
7577
7578         * mono-debug.h
7579         (MonoDebugDataTable): New typedef.
7580         (MonoDebugMethodAddressList): New typedef.
7581         (MonoDebugWrapperData): Removed.
7582         (MonoDebugSymbolTable): Removed `current_data_table',
7583         `current_data_table_size', `current_data_table_offset'.
7584         (MonoDebugDataItemType): Moved into mono-debug.c.
7585         (MonoDebugMethodJitInfo): Remove `address'.
7586         (mono_debug_data_table): New global variable.
7587         (mono_debug_lookup_method_addresses): New public function.
7588         (mono_debug_find_method): Take a `MonoMethod *', not a
7589         `MonoDebugMethodInfo *'.
7590
7591         * mono-debug.c: Drop support for the old symbol tables.
7592
7593 2007-06-28  Martin Baulig  <martin@ximian.com>
7594
7595         * mono-debug.c (mono_debug_debugger_version): New public variable.
7596
7597 2007-07-31  William Holmes  <billholmes54@gmail.com>
7598
7599         * metadata.c Changed mono_type_create_from_typespec to not insert
7600           the type into the hash map until after
7601           do_mono_metadata_parse_type has completed.
7602         Fixes Bug #82194
7603         Code is contributed under MIT/X11 license.
7604
7605 2007-07-31  Zoltan Varga  <vargaz@gmail.com>
7606
7607         * icall.c (ves_icall_Type_GetMethodsByName): Avoid a crash when called on a
7608         generic parameter. Fixes #82211.
7609
7610 2007-07-27  Jb Evain  <jbevain@novell.com>
7611
7612         * pedump.c (dump_metadata, dump_metadata_header): dump
7613         versions contained in the metadata header.
7614
7615 Fri Jul 27 17:07:40 CEST 2007 Paolo Molaro <lupus@ximian.com>
7616
7617         * threads.c: register small_id_table with the GC.
7618
7619 2007-07-27  Mark Probst  <mark.probst@gmail.com>
7620
7621         * threads.c, threads.h, class-internals.h, object-internals.h:
7622         Hazard pointers, to be used by lock-free parallel algorithms.
7623
7624 2007-07-26  Dick Porter  <dick@ximian.com>
7625
7626         * appdomain.c (mono_runtime_cleanup): Invoke io-layer cleanup
7627         routine on non-windows platforms, as I've not managed to think of
7628         a non-kludgy way of doing this.  Finishes off bug 78739.
7629
7630 Wed Jul 25 18:06:33 CEST 2007 Paolo Molaro <lupus@ximian.com>
7631
7632         * object.c: properly setup interface_bitmap in proxy vtables.
7633
7634 2007-07-25  Marek Habersack  <mhabersack@novell.com>
7635
7636         * appdomain.c (get_shadow_assembly_location): do not use TickCount
7637         to create unique shadow copy target directories, use the domain's
7638         serial number instead. Each domain gets a unique target directory
7639         that way.
7640
7641         * domain.c (mono_domain_create): added code to increment domain
7642         shadow copy serial number and cache the value in the current
7643         domain structure.
7644
7645         * domain-internals.h (struct _MonoDomain): added a new field -
7646         shadow_serial to hold the serial number used in generation of
7647         shadow-copy directories. This is to make sure that the directory
7648         name is unique for each and every domain created. We avoid a race
7649         condition with overriding assemblies already in use by other app
7650         domains.
7651
7652 2007-07-24  Rodrigo Kumpera  <rkumpera@novell.com>
7653
7654         * class.c (mono_bounded_array_class_get): fixed memory leak when 
7655         binding generic parameters.
7656
7657 2007-07-24  Raja R Harinath  <rharinath@novell.com>
7658
7659         * metadata.c (do_mono_metadata_parse_generic_class): Use
7660         mono_metadata_lookup_generic_class.  Don't g_assert on a metadata
7661         error.
7662
7663 Tue Jul 24 15:15:19 CEST 2007 Paolo Molaro <lupus@ximian.com>
7664
7665         * loader.c, class-internals.h, reflection.c: removed the per-method
7666         generics hashtable: we use the global one through the call of
7667         mono_class_inflate_generic_method ().
7668
7669 Mon Jul 23 19:43:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
7670
7671         * class.c, metadata.c, class-internals.h: introduce yet another
7672         generics global cache for inflated methods (fixes 98% of the perf
7673         issue in bug #81806).
7674
7675 2007-07-23  Raja R Harinath  <rharinath@novell.com>
7676
7677         Fix #81035 -- avoid allocating MonoGenericInsts willy-nilly
7678         * metadata.c (mono_metadata_lookup_generic_inst): Kill.
7679         (mono_metadata_get_generic_inst): New.  Given a list of MonoType*,
7680         return a MonoGenericInst containing (a copy) of those types.
7681         (mono_metadata_inflate_generic_inst): Update to changes.
7682         (mono_metadata_parse_generic_inst): Likewise.
7683         (mono_get_shared_generic_inst): Likewise.
7684         * reflection.c (mono_class_bind_generic_parameters): Likewise.
7685         (mono_reflection_bind_generic_method_parameters): Likewise.
7686         * metadata-internals.h: Likewise.
7687         * icall.c (free_generic_context): Kill.
7688         (init_generic_context_from_args): Use mono_metadata_get_generic_inst.
7689
7690         * reflection.c (reflection_methodbuilder_to_mono_method): Use
7691         mono_metadata_type_dup.
7692         * marshal.c (mono_mb_create_method): Likewise.
7693
7694         * metadata.c (mono_metadata_type_dup): Rename from
7695         mono_metadata_type_dup_mp.  Take an optional mempool instead of a
7696         MonoImage.  Handle a few more cases, esp. when no mempool is given.
7697         * marshal.c, metadata-internals.h: Update to changes.
7698
7699 Mon Jul 23 11:43:31 CEST 2007 Paolo Molaro <lupus@ximian.com>
7700
7701         * class.c: fixed a small leak for array classes and removed warning.
7702
7703 2007-07-22  Zoltan Varga  <vargaz@gmail.com>
7704
7705         * loader.c (mono_method_get_param_token): Make this work on generic methods.
7706         Return 0x8000000 for return parameters. Fixes #82161.
7707
7708 2007-07-21  Marek Habersack  <grendello@gmail.com>
7709
7710         * appdomain.c (get_shadow_assembly_location): append the current
7711         ticks value to the path. Avoids overwriting the same assemblies by
7712         several threads at the same time.
7713
7714 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
7715         and Raja R Harinath  <rharinath@novell.com>
7716
7717         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
7718         Simplify slightly.
7719         (ves_icall_MonoMethod_GetGenericMethodDefinition): Update
7720         property for testing if a method is a generic method definition.
7721
7722 2007-07-20  Atsushi Enomoto  <atsushi@ximian.com>
7723
7724         * domain-internals.h : added 2.0 member fields to MonoAppDomainSetup.
7725
7726 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7727
7728         * verify.c: used function from private branch, reverted to the one in class.h 
7729
7730 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7731
7732         * verify.c: a typo slipped in and the code wont compile
7733
7734 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7735
7736         * verify.c: now all code use IS_MANAGED_POINTER and UNMASK_TYPE macros.
7737         disabled box instruction as it is doing the wrong thing
7738         improved stack dump messages, now it is easier to debug type related issues
7739
7740
7741 2007-07-19  Juraj Skripsky  <js@hotfeet.ch>
7742
7743         * icall.c (ves_icall_System_MonoType_getFullName): Fix a leak. 
7744
7745 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7746
7747         * verify.c: changed MONO_TYPE_TYPEDBYREF stack type from 
7748         TYPE_COMPLEX to TYPE_PTR, it did not make any sense to be
7749         grouped with class and valuetype. This change will simply 
7750         the code as it should be handled just like unmanaged pointers.
7751
7752 2007-07-19  Mark Probst  <mark.probst@gmail.com>
7753
7754         * class.c (concat_two_strings_with_zero): Fixed a silly bug.
7755
7756 2007-07-19  Rodrigo Kumpera  <rkumpera@novell.com>
7757
7758         * verify.c: several stack merge issues fixed, reference comparisons now
7759         check the type size. strict type check now works correctly.
7760         added more uses of IS_MANAGED_POINTER macro.
7761         fixed issues pointed by running the test suite against .net.
7762         
7763
7764 2007-07-19  Mark Probst  <mark.probst@gmail.com>
7765
7766         * class.c, loader.c, class-internals.h: Removed the
7767         MonoLoaderErrorKind enum and replaced it with the MONO_EXCEPTION_
7768         defines.
7769
7770         * icall.c: Better error checking in some internal reflection
7771         methods.
7772
7773 2007-07-18  William Holmes  <billholmes54@gmail.com>
7774
7775         * filewatcher.c : removed unused variable 'filename' in 
7776           ves_icall_System_IO_FSW_SupportsFSW
7777
7778 Mon Jul 16 19:36:16 CEST 2007 Paolo Molaro <lupus@ximian.com>
7779
7780         * reflection.c, class.c, icall.c, loader.c: mono_get_inflated_method () is
7781         obsolete, removed.
7782
7783 2007-07-15  Zoltan Varga  <vargaz@gmail.com>
7784
7785         * icall.c (ves_icall_System_Reflection_FieldInfo_GetTypeModifiers): New icall.
7786         
7787         * icall.c (ves_icall_System_Reflection_Module_ResolveSignature): New icall.
7788
7789 2007-07-14  Zoltan Varga  <vargaz@gmail.com>
7790
7791         * icall.c (ves_icall_System_Reflection_Module_ResolveMethodToken): 
7792         Implement generics support.
7793         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
7794
7795         * icall.c (ves_icall_System_Reflection_Module_ResolveTypeToken): Add new
7796         type_args and method_args arguments.
7797         (ves_icall_System_Reflection_Module_ResolveMethodToken): Ditto.
7798         (ves_icall_System_Reflection_Module_ResolveFieldToken): Ditto.
7799         (ves_icall_System_Reflection_Module_ResolveMemberToken): Ditto.
7800
7801 2007-07-13  Rodrigo Kumpera  <rkumpera@novell.com>
7802
7803         * reflection.c: patch from Thong Nguyen to fix atribute resolution.
7804           It adds a rootimage parameter to mono_reflection_get_type_internal,
7805           adds new function mono_reflection_get_type_with_rootimage and use
7806           the rootimage to resolve the types instead of the current image
7807
7808 2007-07-13  Rolf Bjarne Kvinge  <RKvinge@novell.com>
7809
7810         * culture-info-table.h: Forgot to update after r78304.
7811
7812 2007-07-13  Raja R Harinath  <rharinath@novell.com>
7813
7814         * class.c (mono_class_is_open_constructed_type)
7815         <MONO_TYPE_GENERICINST>: Don't recompute a computed field.
7816
7817 2007-07-12  Rodrigo Kumpera  <rkumpera@novell.com>
7818
7819         * class.c (mono_bounded_array_class_get):  method fails if used with
7820         an incomplete TypeBuilder enum (no basetype field), fixed it by 
7821         avoiding calculating the size for such array as it cannot be instantiated.
7822         Fix bug #82015
7823
7824 2007-07-12  Raja R Harinath  <rharinath@novell.com>
7825
7826         * class-internals.h (_MonoGenericInst::is_reference): Remove bogus
7827         field.
7828         * metadata.c, reflection.c: Update to changes.
7829
7830 2007-07-11  Rodrigo Kumpera  <rkumpera@novell.com>
7831
7832         * class.c, class-internal.h: added mono_type_is_valid_enum_basetype and
7833         mono_class_is_valid_enum, they are used to valide a enum when loading.
7834         * reflection.c: used new functions to throw TypeLoadException when and
7835         invalid enum is build with TypeBuilder. Fixes #82018
7836   
7837 Wed Jul 11 14:47:07 CEST 2007 Paolo Molaro <lupus@ximian.com>
7838
7839         * object.c: forgot commit of mono_class_setup_methods () to access
7840         iface->methods.
7841         * object-internals.h: added a few more handy fields to
7842         MonoIMTCheckItem.
7843
7844 2007-07-11  Zoltan Varga  <vargaz@gmail.com>
7845
7846         * object.c (build_imt): Call mono_class_setup_methods () before accessing 
7847         iface->methods.
7848
7849 Tue Jul 10 16:49:01 CEST 2007 Paolo Molaro <lupus@ximian.com>
7850
7851         * class-internals.h, object-internals.h, object.c: IMT-based
7852         interface invocation core from Massimiliano Mantione
7853         (massi@ximian.com) with a reworked arch-specific interface,
7854         bsearch implementation and a few bugfixes and memory savings by me.
7855
7856 2007-07-10  Rodrigo Kumpera  <rkumpera@novell.com>
7857
7858         * class.c (mono_class_create_from_typedef): mono would segfault if 
7859         an enum did not have a __value field. It now throws a TypeLoadException
7860         for such cases. Fix bug #82022
7861
7862 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
7863
7864         * marshal.c (mono_marshal_string_to_utf16_copy): Fix allocation size.
7865
7866 2007-07-09  Mark Probst  <mark.probst@gmail.com>
7867
7868         * class.c (mono_class_init): If a class is already inited but has
7869         an exception_type set, return FALSE, not TRUE.  Fixes: 82050.
7870
7871 2007-07-09  Mark Probst  <mark.probst@gmail.com>
7872
7873         * class.c: Properly handle the case of an unimplemented interface
7874         method.  Fixes: 81673.
7875
7876 Mon Jul 9 16:21:43 CEST 2007 Paolo Molaro <lupus@ximian.com>
7877
7878         * class-internals.h, object.c: cleanup patch from massi: use
7879         MonoVTable->interface_bitmap since the vtable interfaces offset array
7880         is going away.
7881
7882 2007-07-10  Zoltan Varga  <vargaz@gmail.com>
7883
7884         * icall-def.h icall.c: Remove Module:get_MDStreamVersion icall and add a new
7885         GetMDStreamVersion icall instead.
7886
7887 Mon Jul 9 11:34:17 CEST 2007 Paolo Molaro <lupus@ximian.com>
7888
7889         * filewatcher.c: patch from Thong Nguyen <tum@veridicus.com> to
7890         not use mono_dl_build_path() with a full library name: makes
7891         fallbacks to libgaim and libfam work.
7892
7893 2007-07-06  William Holmes  <billholmes54@gmail.com>
7894
7895         * assembly.c: Added a continue statement in probe_for_partial_name when
7896          parse_assembly_directory_name fails.  Fixes : 82002
7897
7898 2007-07-06  Rodrigo Kumpera  <rkumpera@novell.com>
7899
7900         * verify.c (check_unmanaged_pointer_type): renamed to check_unverifiable_type
7901         and added a verification  for TYPEDBYREF.
7902         * verify.c (verify_stack_type_compatibility): fix handling of byref types,
7903         make native int interchangeable with int32 and some small cleanup and formating.
7904         * verify.c (push_arg): only ldarg on invalid argument is valid (but not verifiable) and
7905         handle byref of byref.
7906         * verify.c (push_local): handle byref of byref.
7907         * verify.c (do_binop): invalid mix of values is unverifiable
7908         * verify.c (do_invoke_method): fixed the handling of bad params on stack and
7909         added visibility checks
7910         * verify.c (field related method): added visibility checks
7911         * verify.c (do_push_field): cannot take the address of a temporary valuetype field
7912
7913 2007-07-06  Zoltan Varga  <vargaz@gmail.com>
7914
7915         * marshal.c (mono_marshal_string_to_utf16_copy): Null terminate the
7916         string.
7917
7918 2007-07-05  Zoltan Varga  <vargaz@gmail.com>
7919
7920         * profiler.c (mono_profiler_load): Fix an off-by-one error.
7921
7922         * marshal.c (emit_marshal_string): When returning a string from managed code,
7923         allways make a copy even for unicode strings. Fixes #81990.
7924
7925 Wed Jul 4 11:53:57 CEST 2007 Paolo Molaro <lupus@ximian.com>
7926
7927         * object.c: cleaned up mono_runtime_invoke_array () and fixed handling
7928         of byref generic inst types (bug #81997).
7929
7930 2007-07-03  Rodrigo Kumpera  <rkumpera@novell.com>
7931
7932         * class.c: moved methods mono_method_can_access_field and mono_method_can_access_method from mini/mini.c
7933         * class.h: added declarations of mono_method_can_access_field() and mono_method_can_access_method()
7934
7935 2007-07-02  Zoltan Varga  <vargaz@gmail.com>
7936
7937         * marshal.c (emit_marshal_string): Add support for unicode strings in
7938         MARSHAL_ACTION_MANAGED_CONV_RESULT. Fixes #81990.
7939
7940 2007-07-02 Rodrigo Kumpera  <rkumpera@novell.com>
7941
7942         * verify.c: field load/store are now verified, missing only access checks now
7943
7944 2007-06-28  Martin Baulig  <martin@ximian.com>
7945
7946         * mono-debug.c (mono_debug_debugger_version): New public variable.
7947
7948 2007-06-24  Gert Driesen  <drieseng@users.sourceforge.net>
7949
7950         * locales.c: When constructing DateTimeFormat or NumberFormat for
7951         MonoCultureInfo, inherit readonly bit from MonoCultureInfo. The
7952         MonoCultureInfo contructed from the current locale is always
7953         read-only and has UseUserOverride set to true. All MonoCultureInfo
7954         instances returned for GetCultures have both IsReadOnly and
7955         UseUserOverride set to true. Fixes part of bug #81930.
7956
7957 2007-06-22  Jonathan Chambers  <joncham@gmail.com>
7958
7959        * icall-def.h: Update System.__ComObject icalls
7960        * marshal.c: Avoid managed transition (and object creation)
7961        when looking up COM interface in RCW.
7962        * marshal.h: Ditto.
7963        
7964        Code is contributed under MIT/X11 license.
7965
7966 2007-06-22  Zoltan Varga  <vargaz@gmail.com>
7967
7968         * marshal.c (mono_marshal_get_runtime_invoke): Cache in the method image for now
7969         to avoid crashes during assembly unloading.
7970
7971 2007-06-22  Raja R Harinath  <rharinath@novell.com>
7972
7973         Fix MethodInfo.IsGenericMethodDefinition
7974         * reflection.c (mono_reflection_bind_generic_method_parameters):
7975         Rearrange code to ensure we always uses a generic method definition.
7976         * class.c (mono_class_inflate_generic_method_full): Set
7977         'generic_container' field only for generic method definitions.
7978         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition):
7979         Use presense of 'generic_container' field as indication of being a
7980         generic method definition.
7981
7982 2007-06-21  Zoltan Varga  <vargaz@gmail.com>
7983
7984         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7985
7986         * object-internals.h: Reflect changes in the layout of the managed Delegate
7987         class.
7988         
7989         * object-internals.h reflection.c icall-def.h: Applied patch from Robert
7990         Jordan (robertj@gmx.net). Add a dtor to dynamic methods which frees up the
7991         runtime memory used by the dynamic method. Fixes #77146.
7992
7993 2007-06-21  Dick Porter  <dick@ximian.com>
7994
7995         * file-io.h: 
7996         * file-io.c (convert_share): Cope with FileShare.Delete.  Patch
7997         from Wojtek Krawczyk <krawczyk.wojciech@gazeta.pl>, fixes bug
7998         81767.
7999
8000 2007-06-21  Raja R Harinath  <rharinath@novell.com>
8001
8002         * reflection.c (method_encode_methodspec): Add a tripwire.
8003         * class.c (inflate_generic_type): The fully open generic type is
8004         not the same as the generic type definition.
8005
8006 2007-06-21  Martin Baulig  <martin@ximian.com>
8007
8008         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 59.
8009
8010         * mono-debug-debugger.h
8011         (MonoDebuggerBreakpointInfo): Removed.
8012         (mono_debugger_insert_breakpoint_full): Moved to ../mini/debug-mini.h.
8013         (mono_debugger_remove_breakpoint): Likewise.
8014         (mono_debugger_breakpoint_callback): Likewise.
8015         (mono_debugger_start_add_type): Renamed into mono_debugger_add_type().
8016
8017 2007-06-21  Raja R Harinath  <rharinath@novell.com>
8018
8019         * metadata.c (mono_metadata_lookup_generic_class): The fully open
8020         generic type is not the same as the generic type definition.
8021         * class.c (mono_generic_class_get_class): Likewise.
8022
8023 2007-06-20  Geoff Norton  <gnorton@customerdna.com>
8024
8025         * icall.c: The second argument to 
8026         System.Reflection.MethodBase.GetMethodFromHandleInternalType
8027         is a MonoType not a MonoClass.
8028
8029 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
8030
8031         * verify.c: support for function pointers in the verifier
8032
8033 2007-06-20  Rodrigo Kumpera  <kumpera@gmail.com>
8034
8035         * verify.c: unmanaged pointer verification checks (loading unmanaged pointers is unverifiable)
8036
8037 Wed Jun 20 10:22:15 CEST 2007 Paolo Molaro <lupus@ximian.com>
8038
8039         * assembly.c: removed Mono.Data.SqliteClient from the list of
8040         forward-compatible assemblies as it breaks the ABI (bug #81899).
8041
8042 2007-06-19  Raja R Harinath  <rharinath@novell.com>
8043
8044         * metadata.c (mono_metadata_lookup_generic_class): Protect cache
8045         lookup/update with the loader lock.
8046         * reflection.c (mono_class_bind_generic_parameters): No need to
8047         protect mono_metadata_lookup_* with the loader lock.
8048         * class.c (inflate_generic_type): Likewise.
8049         
8050         * metadata.c (ginst_in_image): Avoid mono_class_from_mono_type
8051         on a generic instantiated type.
8052
8053 2007-06-18  Rodrigo Kumpera <kumpera@gmail.com>
8054
8055         *verify.c: produce meanfull error messages on verification error
8056         *verify.c: fixed some cases of verification errors reported as validation errors
8057         *pedump.c: fixed the error name array, now it shows validation errors properly
8058         *verify.h: fixed the contant that should be used for verification errors
8059
8060 Mon Jun 18 17:07:22 CEST 2007 Paolo Molaro <lupus@ximian.com>
8061
8062         * metadata.c, image.c, metadata-internals.h: part of the fixes needed
8063         for bug #77596, 81858 and 80743 (generics data structures on domain
8064         unload).
8065
8066 2007-06-15  Raja R Harinath  <rharinath@novell.com>
8067
8068         Avoid allocating 'MonoGenericContext' on the heap.
8069         * class-internals (_MonoMethodInflated::context): Make field
8070         inline, not a pointer.
8071         * loader.c (method_from_methodspec): Allocate 'new_context' on the
8072         stack.  Use the context embedded within the inflated method as the
8073         hash key, rather than 'new_context'.
8074         * class.c (inflate_generic_context): Simplify.  Return a struct
8075         rather than allocating on the heap.
8076         (mono_class_inflate_generic_method_full): Update to changes.  Now,
8077         doesn't salt away a copy of the context -- simplifying the
8078         lifetime rules of a 'MonoGenericContext *'.
8079         (mono_method_get_context): Return pointer to embedded context.
8080         (setup_generic_array_ifaces): Allocate temporary context on stack.
8081         * reflection.c (inflate_mono_method): Likewise.
8082         (mono_reflection_bind_generic_method_parameters): Likewise.
8083         Use the context embedded within the inflated method as the hash key.
8084
8085         Avoid a source of allocation of 'MonoGenericContext'.
8086         * class-internals.h (_MonoGenericClass::context): Combine 'inst'
8087         and 'cached_context' fields into embedded 'MonoGenericContext' field.
8088         * class.c: Update to changes.
8089         (mono_generic_class_get_context): Simplify drastically.  Now just
8090         returns a pointer to the field.
8091         * metadata-internals.h (mono_metadata_generic_context_hash): Mark
8092         argument as a const pointer.
8093         (mono_metadata_generic_context_equal): Likewise.
8094         * metadata.c, loader.c, icall.c, reflection.c, verify.c:
8095         Update to changes.
8096
8097 2007-06-14  Rodrigo Kumpera  <kumpera@gmail.com>
8098
8099         * verify.c improved the handling of brtrue/brfalse, factored out common code
8100
8101 2007-06-14  Raja R Harinath  <rharinath@novell.com>
8102
8103         Kill MonoGenericMethod.
8104         * class-internals.h (MonoGenericContext::method_inst): Rename from
8105         'gmethod' and convert to a MonoGenericInst.
8106         (MonoGenericMethod): Remove.
8107         * metadata.h (MonoGenericMethod): Note that the name is obsolete.
8108         * loader.c (method_from_methodspec): Update to changes.  Use a
8109         MonoGenericContext as the key to the hashtable.
8110         * metadata.c (mono_metadata_generic_context_equal): Rename from 
8111         'mono_metadata_generic_method_equal' and take MonoGenericContext.
8112         (mono_metadata_generic_context_hash): Likewise from
8113         'mono_metadata_generic_method_hash'.  Change hash function.
8114         (mono_metadata_load_generic_params): Update to changes.
8115         (mono_get_shared_generic_method): Remove.
8116         * metadata-internals.h (mono_get_shared_generic_method): Remove.
8117         * class.c (inflate_generic_type) [MONO_TYPE_MVAR]: Update to changes.
8118         (inflate_generic_context): Likewise.
8119         (mono_class_inflate_generic_method_full): Likewise.
8120         (setup_generic_array_ifaces): Likewise.
8121         (mono_class_create_from_typespec): Likewise.
8122         * reflection.c (encode_generic_method_sig): Take a MonoGenericContext.
8123         (method_encode_methodspec): Update callsite.
8124         (reflection_methodbuilder_to_mono_method): Update to changes.
8125         (mono_reflection_bind_generic_method_parameters): Likewise.  Use a
8126         MonoGenericContext as the key to the hashtable.
8127         (inflate_mono_method): Update to changes.
8128
8129         * class-internals.h (MonoGenericMethod::container): Remove.
8130         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
8131
8132 Thu Jun 14 12:40:05 CEST 2007 Paolo Molaro <lupus@ximian.com>
8133
8134         * profiler-private.h, profiler.c, profiler.h: added API to profile
8135         exception events.
8136
8137 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
8138
8139         * verify.c: Fixed pointer type handling, some code and message formating and two invalid assigments 
8140
8141 2007-06-13  Rodrigo Kumpera  <kumpera@gmail.com>
8142
8143         * verify.c: method invocation is now validated, now we verify parameter types on stack.
8144         Fixed overflow and underflow not aborting the verification process.
8145
8146 2007-06-13  Mark Probst  <mark.probst@gmail.com>
8147
8148         * class-internals.h (MonoStats): Added stats entries for dynamic
8149         code allocations.
8150
8151 2007-06-12  Zoltan Varga  <vargaz@gmail.com>
8152
8153         * loader.c (mono_free_method): Free header->locals and header->clauses.
8154
8155         * marshal.c (mono_mb_create_method): Make a copy of the locals as well in the
8156         dynamic case.
8157
8158         * threads.c (mono_thread_get_stack_bounds): Fix memory leak.
8159
8160         * class.c (setup_interface_offsets): Allocate memory from the image mempool.
8161
8162 2007-06-12  Raja R Harinath  <rharinath@novell.com>
8163
8164         * verify.c (TYPE_MAX): Set it to 8 to match the dimensions of all
8165         the tables.
8166
8167 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
8168
8169         *pedump.c (main): return error code 4 if assembly cannot be loaded instead of segfaulting
8170
8171 2007-06-11  Raja R Harinath  <harinath@gmail.com>
8172
8173         MonoGenericMethod on a diet
8174         * class-internals.h (_MonoMethodInflated::reflection_info): Move
8175         here ...
8176         (_MonoGenericMethod::reflection_info): ... from here.
8177         * icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition):
8178         Update to changes.
8179         * reflection.c (inflate_mono_method): Likewise.
8180         (mono_reflection_bind_generic_method_parameters): Likewise.
8181
8182 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
8183
8184         *verify.c: all debu printf statements are now guarded by VERIFY_DEBUG
8185         *verify.c: factored long ldarg forms to share code with short forms
8186
8187 2007-06-11  Rodrigo Kumpera  <kumpera@gmail.com>
8188
8189         *verify.c: fixed code formating factored some duplicate code
8190         into a new function
8191
8192         *verify.h: fixed binary incompatibility introduced earlier
8193
8194         *pedump.c: fixed formating
8195
8196 2007-06-11  Raja R Harinath  <harinath@gmail.com>
8197
8198         Fix assertion when disassembling Mono.C5.dll
8199         * loader.c (method_from_methodspec): Avoid inflating a method
8200         twice with the same context.  If the methodref is inflated, use
8201         the declaring method instead.
8202
8203         * class.c (mono_class_from_generic_parameter): Fix case similar to
8204         bug #81830 handled below, but for method containers.
8205
8206 2007-06-10  Raja R Harinath  <harinath@gmail.com>
8207
8208         * class.c (inflate_generic_type) [MONO_TYPE_CLASS]: Don't call
8209         get_shared_generic_class.  Directly inflate the instance.
8210         [MONO_TYPE_GENERICINST]: Inline inflate_generic_class.
8211         (inflate_generic_class): Delete.
8212         (get_shared_generic_class): Delete.  Move setting of
8213         'cached_class' and 'cached_context' ...
8214         * metadata.c (mono_metadata_lookup_generic_class): ... here.
8215
8216         * metadata.c (mono_metadata_lookup_generic_class): Change
8217         signature to take the components of a MonoGenericClass rather than
8218         an allocated MonoGenericClass.  Change semantics to be intern-like.
8219         * reflection.c (mono_class_bind_generic_parameters): Update to
8220         changes.  Make locking region tighter.
8221         * class.c (inflate_generic_class): Update to changes.
8222         (get_shared_generic_class): Likewise.
8223         * metadata-internals.h: Likewise.
8224
8225         * reflection.c (mono_class_bind_generic_parameters): Take and
8226         return a MonoClass*, not a MonoType*.  Add 'is_dynamic' parameter.
8227         (mono_reflection_bind_generic_parameters): Use
8228         'mono_class_bind_generic_parameters' rather than duplicate the code.
8229         * class.c (mono_bounded_array_class_get): Update to changes.
8230         * object-internals.h: Likewise.
8231
8232         * reflection.c (mono_class_bind_generic_parameters): Only support
8233         parameterizing generic type definitions.  Remove support for other
8234         open types.
8235
8236 2007-06-08  Zoltan Varga  <vargaz@gmail.com>
8237
8238         * loader.c (mono_free_method): Free method->signature as well. Fixes #81832.
8239
8240         * marshal.c (mono_marshal_get_managed_wrapper): Allocate the signature using malloc
8241         in the dynamic case.
8242
8243 2007-06-08  Gert Driesen  <drieseng@users.sourceforge.net>
8244
8245         * threads.c: When cleaning up thread, reset the Background bit.
8246         Fixes bug #81720.
8247
8248 2007-06-08  Jonathan Chambers  <joncham@gmail.com>
8249
8250        * metadata.c: Move variable declarations to top of scope.
8251        * verify.c: Move variable declarations to top of scope.
8252
8253        Code is contributed under MIT/X11 license.
8254
8255 2007-06-08  Raja R Harinath  <rharinath@novell.com>
8256
8257         * reflection.c (mono_class_bind_generic_parameters): Replace
8258         open-coded loop with mono_metadata_inflate_generic_inst.
8259
8260         * class.c (get_shared_generic_class): Don't call
8261         mono_get_shared_generic_inst.  Use the container's own
8262         'class_inst'.
8263
8264         * metadata.c (mono_metadata_load_generic_params): Move
8265         initialization of 'context' field here from ...
8266         * class.c (mono_class_create_from_typedef): ... here, and ...
8267         * loader.c (mono_get_method_from_token): ... here.
8268
8269         * class.c (get_shared_generic_class): Rename from
8270         mono_get_shared_generic_class and make static.
8271         (mono_get_shared_generic_inst): Move to metadata.c.
8272         * loader.c (mono_get_shared_generic_method): Likewise.
8273         * class-internals.h, metadata-internals.h: Update to changes.
8274
8275         Fix #81830
8276         * class.c (mono_class_from_generic_parameter): Don't assume a
8277         generic container owner exists.  Generic containers from monodis
8278         don't have any.
8279
8280 2007-06-06  Rodrigo Kumpera  <kumpera@gmail.com>
8281
8282         * pedump.c: pedump exists with 2 if assembly is not verifiable and 3 if invalid
8283         * verify.h: new typedefs to returns the non-verifiable status
8284         * verify.c: initial implementation of generics, stack merging and object compatibility check
8285
8286 2007-06-06  Mark Probst  <mark.probst@gmail.com>
8287
8288         * class.c, image.c, class-internals.h (MonoImage): class_cache is
8289         a MonoInternalHashTable again (fixed bug in internal hash table
8290         code).
8291
8292 2007-06-06  Mark Probst  <mark.probst@gmail.com>
8293
8294         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
8295         MonoInternalHashTable again (fixed bug in internal hash table
8296         code).
8297
8298 2007-06-06  Mark Probst  <mark.probst@gmail.com>
8299
8300         * class.c, image.c, class-internals.h, domain.c,
8301         domain-internals.h (MonoImage): Reverting MonoInternalHashTable
8302         changes.  Have to figure out what makes them break the SWF
8303         regression.
8304
8305 2007-06-04  Mark Probst  <mark.probst@gmail.com>
8306
8307         * class.c, image.c, class-internals.h (MonoImage): class_cache is
8308         a MonoInternalHashTable now.
8309
8310 2007-06-04  Mark Probst  <mark.probst@gmail.com>
8311
8312         * domain.c, domain-internals.h (MonoDomain): jit_code_hash is a
8313         MonoInternalHashTable now.
8314
8315 2007-05-31  Zoltan Varga  <vargaz@gmail.com>
8316
8317         * domain-internals.h (MonoDomain): Add two new hash tables to store delegate
8318         invoke_impl code.
8319
8320         * object-internals.h (_MonoDelegate): Reflect changes to managed object layout.
8321
8322         * object.c (mono_delegate_ctor): Initialize invoke_impl field with an arch
8323         dependent trampoline.
8324
8325         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
8326
8327         * icall.c (ves_icall_System_Delegate_SetMulticastInvoke): New icall.
8328
8329 2007-05-29  Robert Jordan  <robertj@gmx.net>
8330
8331         * marshal.[c|h]: add mono_win32_compat_* wrappers. Fixes #81754.
8332
8333 2007-05-28  Zoltan Varga  <vargaz@gmail.com>
8334
8335         * icall.c (ves_icall_get_method_info): Handle loader errors. Fixes #81724.
8336
8337 2007-05-25  Jonathan Chambers  <joncham@gmail.com>
8338
8339        * marshal.c: Fix interface lookup loops for
8340        cominterop_get_com_slot_for_method and 
8341        cominterop_get_method_interface. Only need to lookup
8342        if type is a class, else use interface type method is on.
8343
8344        Code is contributed under MIT/X11 license.
8345
8346 2007-05-25  Sebastien Pouliot  <sebastien@ximian.com>
8347
8348         * reflection.c: HasSecurity can be present even if no specially 
8349         encoded (CAS) attributes are available (e.g. SuppressUnmanagedCode
8350         SecurityAttribute). Fix CAS regression tests on buildbot.
8351
8352 2007-05-24  Jonathan Chambers  <joncham@gmail.com>
8353
8354        * appdomain.c: Add configure checks for header files.
8355        * image.c: Add configure checks for header files.
8356        * file-io.c: Add configure checks for header files.
8357        * debug-mono-symfile.c: Add configure checks for header files.
8358        * threadpool.c: Add configure checks for header files.
8359        * console-io.c: Add configure checks for header files.
8360        * profiler.c: Add configure checks for header files.
8361        * rawbuffer.c: Add configure checks for header files.
8362        * icall.c: Add configure checks for header files.
8363        * rand.c: Add configure checks for header files.
8364        * socket-io.c: Add configure checks for header files.
8365
8366        Code is contributed under MIT/X11 license.
8367
8368 2007-05-24  Zoltan Varga  <vargaz@gmail.com>
8369
8370         * reflection.c (mono_custom_attrs_from_builders): Remove the 
8371         assertion as it breaks the build.
8372         
8373         * reflection.c (mono_custom_attrs_from_builders): Add an assertion.
8374
8375         * reflection.c (lookup_custom_attr): Make a copy here too.
8376
8377         * image.c (mono_image_check_for_module_cctor): Avoid accessing metadata in
8378         dynamic images.
8379
8380         * class.c (mono_class_init): Avoid accessing the metadata in dynamic
8381         images.
8382
8383         * reflection.c (mono_custom_attrs_from_param): Make a copy of the dynamic attr
8384         info.
8385
8386 2007-05-22  Zoltan Varga  <vargaz@gmail.com>
8387
8388         * reflection.c (encode_cattr_value): Fix yet another object cattr encoding issue.
8389         (load_cattr_value): Ditto.
8390
8391 2007-05-20  Zoltan Varga  <vargaz@gmail.com>
8392
8393         * marshal.c (mono_marshal_get_delegate_invoke): Improve the generated IL a little.
8394
8395 2007-05-19  Gert Driesen  <drieseng@users.sourceforge.net>
8396
8397         * threads.c: In "start_wrapper", set apartment_state to MTA if
8398         apartment_state is Unknown and we're running on 2.0 profile or
8399         higher.
8400         * object.c: In "mono_runtime_exec_main", if STAThread is not applied
8401         to main method, then set apartment_state to Unknown on 1.0 profile,
8402         and MTA on 2.0 profile.
8403
8404 2007-05-16  Jb Evain  <jb@nurv.fr>
8405
8406         * class-internals.h (MonoDefaults): Add an attribute_class and
8407           customattribute_data_class.
8408         * domain.c (mono_init_internal): Populate them.
8409         * reflection.c: Use them to remove duplicates. Make a vew
8410         MonoClass variables `static'.
8411
8412 2007-05-15  Massimiliano Mantione  <massi@ximian.com>
8413
8414         * class-internals.h: Added "MonoVTable.interface_bitmap" as a next
8415         step in implementing IMT, so that all isinst checks now can go
8416         through the bitmap.
8417         This was needed because vtables for TransparentProxy need to look
8418         like the vtable of the "target" class, so they need to point to
8419         its interface bitmap directly.
8420
8421         * object.c: inside "mono_class_create_runtime_vtable" and
8422         "mono_class_proxy_vtable", initialize "MonoVTable.interface_bitmap".
8423
8424 2007-05-15  Atsushi Enomoto  <atsushi@ximian.com>
8425
8426         * object-internals.h
8427           culture-info.h : added territory field in MonoCulture and
8428           CultureInfoEntry foreach. Added lcid field in RegionInfoEntry.
8429         * locales.c : fill territory field above too.
8430         * culture-info-table.h : regenerated.
8431
8432 2007-05-12  Zoltan Varga  <vargaz@gmail.com>
8433
8434         * class-internals.h (_MonoGenericContainer): Widen type_argc filed to 31 bits.
8435         Fixes #81599.
8436
8437 2007-05-11  Jonathan Chambers  <joncham@gmail.com>
8438
8439         * object.c: Always initialize apartment, even if 
8440         there is no custom attributes on entry point.
8441         
8442         Code is contributed under MIT/X11 license.
8443
8444 2007-05-10  Jonathan Chambers  <joncham@gmail.com>
8445
8446         * marshal.c: LPTSTR == LPWSTR on Win32. Fixes #81370.
8447         * metadata.c: If no encoding is set, check for unicode
8448         on class.
8449         
8450         Code is contributed under MIT/X11 license.
8451
8452 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
8453
8454         * threads.c: Handle if mono_thread_current returns NULL 
8455         
8456         Code is contributed under MIT/X11 license.
8457
8458 2007-05-09  Jonathan Chambers  <joncham@gmail.com>
8459
8460         * threads.c: Initialize Thread.AprtmentState and set on Thread.Start
8461         in start_wrapper. Added mono_thread_init_apartment_state and
8462         mono_thread_cleanup_apartment_state.
8463         * object.c: Initialize thread apartment state on main thread
8464         by checking for STAThreadAttribute on entry point.
8465         * object-internals.h: Add apartment_state field to MonoThread.
8466         * threads-types.h: Add unmanaged definition of 
8467         System.Threading.ApartmentState, MonoThreadApartmentState.
8468         
8469         Code is contributed under MIT/X11 license.
8470         
8471 2007-05-08  Jonathan Chambers  <joncham@gmail.com>
8472
8473         * class.c: Fix windows build.
8474         * class-internals.h: Fix windows build.
8475         
8476         Code is contributed under MIT/X11 license.
8477
8478 2007-05-08  Robert Jordan  <robertj@gmx.net>
8479
8480         * process.c (CreateProcess_internal):
8481         Pass CREATE_NO_WINDOW to CreateProcess when ProcessStartupInfo
8482         .CreateNoWindow was specified. Fixes #81496.
8483
8484 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
8485
8486         * class-internals.h: Removed "MonoClass.interface_offsets" as a first
8487         step in implementing IMT, replaced it with two compact arrays
8488         (interfaces_packed and interface_offsets_packed) and a bitmap that
8489         is used for isinst checks (interface_bitmap).
8490
8491         * class.c: (compare_interface_ids): compare function to pass to
8492         bsearch when looking for an interface with a given id.
8493         (mono_class_interface_offset): reimplemented using bsearch on
8494         interfaces_packed, getting the offset from interface_offsets_packed.
8495         (print_implemented_interfaces): utility debugging function.
8496         (setup_interface_offsets): reworked to initialize interfaces_packed,
8497         interface_offsets_packed and interface_bitmap.
8498
8499         * object.c: replaced all accesses to "MonoClass.interface_offsets"
8500         with uses of interfaces_packed and interface_offsets_packed.
8501
8502 2007-05-08  Massimiliano Mantione  <massi@ximian.com>
8503
8504         * class-internals.h: Added MONO_CLASS_IMPLEMENTS_INTERFACE macro and
8505         mono_class_interface_offset prototype to wrap all accesses to
8506         "MonoClass.interface_offsets".
8507
8508         * class.c: Implemented mono_class_interface_offset, and wrapped all
8509         accesses to "MonoClass.interface_offsets".
8510
8511         * monodiet.c, object.c, marshal.c, icall.c: wrapped all accesses to
8512         "MonoClass.interface_offsets".
8513
8514 Tue May 8 13:02:09 CEST 2007 Paolo Molaro <lupus@ximian.com>
8515
8516         * icall.c, icall-def.h: implemented new GetFieldFromHandle and
8517         GetMethodFromHandle overloads (bug #78637).
8518
8519 Tue May 8 12:22:14 CEST 2007 Paolo Molaro <lupus@ximian.com>
8520
8521         * assembly.c: parse ProcessorArchitecture in assembly name and ignore
8522         it for now (see mono-devel, from Marek Sieradzki <marek.sieradzki@gmail.com>).
8523
8524 2007-05-01  Zoltan Varga  <vargaz@gmail.com>
8525
8526         * icall.c (custom_attrs_get_by_type): Handle loading errors gracefully. Fixes
8527         #81498.
8528
8529         * reflection.c (mono_reflection_get_custom_attrs_by_type): Handle loading errors
8530         gracefully.
8531         (mono_custom_attrs_from_index): Ditto.
8532
8533         * icall.c (ves_icall_InternalInvoke): Allow calling ctors of abstract classes. 
8534         Fixes #81501.
8535
8536 2007-04-30  Zoltan Varga  <vargaz@gmail.com>
8537
8538         * metadata.c (mono_metadata_parse_type_full): Avoid an invalid free since the type
8539         is now allocated from a mempool.
8540
8541 2007-04-28  Zoltan Varga  <vargaz@gmail.com>
8542
8543         * threads.c (build_wait_tids): Do not call mono_monitor_enter () here since the
8544         caller holds threads_lock, leading to deadlocks. Fixes #81476.
8545
8546 2007-04-26  Zoltan Varga  <vargaz@gmail.com>
8547
8548         * loader.c (mono_loader_error_prepare_exception): Fix crash caused by calling
8549         mono_loader_clear_error () too late. Fixes #81463.
8550
8551 2007-04-26  Atsushi Enomoto  <atsushi@ximian.com>
8552
8553         * culture-info-table.h : regenerated.
8554
8555 2007-04-25  Zoltan Varga  <vargaz@gmail.com>
8556
8557         * appdomain.c (add_assemblies_to_domain): Fix crash when an assembly reference
8558         is missing.
8559
8560 2007-04-25  Dick Porter  <dick@ximian.com>
8561
8562         * Makefile.am: Put the mingw enforced-optimisation back into the
8563         PLATFORM_WIN32 section.
8564
8565 2007-04-24  Zoltan Varga  <vargaz@gmail.com>
8566
8567         * reflection.c (mono_image_load_module_dynamic): Fix crash introduced by previous
8568         patch.
8569
8570         * image.c (mono_image_load_module): New API function to load a module reference.
8571
8572         * image.c (load_modules): Load modules lazily. Fixes #80812.
8573
8574         * class.c (mono_class_from_typeref): Use mono_image_load_module.
8575         
8576         * reflection.c (mono_image_load_module_dynamic): Copy image->modules_loaded too.
8577
8578         * object-internals.h reflection.c icall-def.h (mono_image_load_module): Rename this 
8579         to mono_image_load_module_dynamic.
8580
8581 2007-04-23  Jonathan Chambers  <joncham@gmail.com>
8582
8583         * marshal.c: Fix calling convention for CCW on non-windows
8584         platforms. STDCALL on windows, CDECL everywhere else to work 
8585         with XPCOM and MainWin COM.
8586         
8587         Code is contributed under MIT/X11 license.
8588
8589 2007-04-23  Martin Baulig  <martin@ximian.com>
8590
8591         Fix #80969.
8592
8593         * loader.c
8594         (method_from_memberref): Added `gboolean *used_context' argument.
8595         (mono_get_method_from_token): Likewise.
8596         (mono_get_method_full): Don't insert the method in the cache when
8597         `used_context' is true.
8598
8599 2007-04-23  Raja R Harinath  <rharinath@novell.com>
8600
8601         * monodiet.c (add_types_from_method): Fix "wrong type" warning.
8602
8603         * reflection.c (mono_reflection_bind_generic_parameters): Don't
8604         create new MonoTypes for returned types.
8605         * class.c (mono_generic_class_get_class): Export mono-internal.
8606         * class-internals.h: Update to changes.
8607
8608 Thu Apr 19 16:45:55 CEST 2007 Paolo Molaro <lupus@ximian.com>
8609
8610         * threadpool.c, threadpool.h, icall-def.h: patch from
8611         Robert Jordan to implemnt ThreadPool.SetMaxThreads.
8612
8613 2007-04-18  Zoltan Varga  <vargaz@gmail.com>
8614
8615         * threads.c (mono_thread_get_stack_bounds): Fix windows build.
8616         
8617         * threads.c (mono_thread_get_stack_bounds): Remove an assert which can be triggered.
8618
8619         * threads.c (mono_thread_get_stack_bounds): New helper function.
8620
8621         * threads.c (mono_thread_attach): Applied patch from horst.reiterer@fabasoft.com.
8622         Correctly compute stack bounds when attaching. Fixes #81394.
8623
8624 Wed Apr 18 18:28:41 BST 2007 Paolo Molaro <lupus@ximian.com>
8625
8626         * reflection.c: fix handling of doubles in custom attributes
8627         for the arm-fpa format (bug #81368).
8628
8629 2007-04-18  Raja R Harinath  <rharinath@novell.com>
8630
8631         * reflection.c (assembly_add_win32_resources): Mildly relax an
8632         bounds check to let the end pointer point just past the end of the
8633         allocated buffer.  (may fix #81384)
8634
8635 2007-04-17  Atsushi Enomoto  <atsushi@ximian.com>
8636
8637         * culture-info-table.h : regenerated.
8638
8639 2007-04-07  Zoltan Varga  <vargaz@gmail.com>
8640
8641         * threads.c (start_wrapper): Call push_appdomain_ref () earlier to fix races where
8642         the thread is aborted early.
8643
8644 2007-04-05  Dick Porter  <dick@ximian.com>
8645
8646         * file-io.c (ves_icall_System_IO_MonoIO_GetFileSystemEntries): use
8647         FindFirstFile()/FindNextFile() to find entries.  This lets the
8648         io-layer versions use MONO_IOMAP compatibility helpers.  Fixes bug
8649         81038.
8650
8651         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the usage of
8652         the parameters of
8653         ves_icall_System_IO_MonoIO_GetFileSystemEntries() has changed.
8654
8655 2007-04-04  Martin Baulig  <martin@ximian.com>
8656
8657         * debug-helpers.c
8658         (mono_method_desc_full_match): Add support for nested classes.
8659
8660 2007-04-02  Zoltan Varga  <vargaz@gmail.com>
8661
8662         * marshal.c (cominterop_get_managed_wrapper_adjusted): Fix warnings.
8663
8664 2007-04-01  Zoltan Varga  <vargaz@gmail.com>
8665
8666         * threads.c (abort_appdomain_thread): Avoid handle leakage if we are
8667         waiting for too many threads.
8668
8669 2007-03-28  Sebastien Pouliot  <sebastien@ximian.com>
8670
8671         * environment.c: Fix return value check on uname so we can get the 
8672         executing version on Solaris operating systems.
8673
8674 2007-03-28  Jb Evain  <jbevain@gmail.com>
8675
8676         * class.c (mono_type_get_name_recurse): Complete the
8677         fix for the creation of assembly qualified names for
8678         pointer types. Fixes #81208.
8679
8680 2007-03-27  Dick Porter  <dick@ximian.com>
8681
8682         * appdomain.c (MONO_CORLIB_VERSION): Increment, as the signature
8683         of ves_icall_System_Threading_Mutex_ReleaseMutex_internal() has
8684         changed.
8685
8686         * threads.c
8687         (ves_icall_System_Threading_Mutex_ReleaseMutex_internal): Return
8688         the value of ReleaseMutex().
8689
8690 2007-03-27  Dick Porter  <dick@ximian.com>
8691
8692         * socket-io.c (ipaddress_to_struct_in_addr): IPAddress is stored
8693         in little-endian order, not network endian, so must be converted
8694         to host endian here.  Fixes bug 80593.
8695
8696 2007-03-22  Jb Evain  <jbevain@gmail.com>
8697
8698         * class.c (mono_type_get_name_recurse): Fix the creation of assembly
8699         qualified names for pointer types. Fixes #81208.
8700
8701 2007-03-21  Jonathan Chambers  <joncham@gmail.com>
8702
8703         * marshal.c: Add support for PreserveSigAttribute. 
8704         
8705         Code is contributed under MIT/X11 license.
8706
8707 2007-03-14  Zoltan Varga  <vargaz@gmail.com>
8708
8709         * process.c: Fix endianness issues. Fixes #81126.
8710
8711         * reflection.c (mono_reflection_create_dynamic_method): Fix the last change so
8712         multiple circular calls made from the same DynamicMethod work. Fixes #81141.
8713
8714         * image.c (mono_image_lookup_resource): Make this work on big-endian
8715         machines.Change API contract so the caller needs to free the return value.
8716         
8717         * process.c (process_get_fileversion): Adapt to mono_image_lookup_resource ()
8718         API change.
8719         
8720 2007-03-14  Martin Baulig  <martin@ximian.com>
8721
8722         * debug-helpers.c (mono_type_get_desc): In `MONO_TYPE_ARRAY', use
8723         mono_type_get_desc() as well.
8724
8725 2007-03-13  Jonathan Chambers  <joncham@gmail.com>
8726
8727         * icall.c:  Fix environ access in VS.  
8728         
8729 2007-03-13  Alp Toker  <alp@atoker.com>
8730
8731         * icall.c (ves_icall_MonoType_GetElementType): For enums, return null
8732         rather than the underlying type. Based on a patch by Ben Maurer. Fixes
8733         #63841.
8734
8735 2007-03-12  Zoltan Varga  <vargaz@gmail.com>
8736
8737         * reflection.c (mono_reflection_create_dynamic_method): Add support for 
8738         circular references among dynamic methods. Fixes #81091.
8739
8740         * object-internals.h (MonoReflectionDynamicMethod): Add 'referenced_by' field.
8741
8742 2007-03-09  Martin Baulig  <martin@ximian.com>
8743
8744         * reflection.c (encode_constant): Add support for MONO_TYPE_GENERICINST.
8745
8746 2007-03-09  Jonathan Chambers  <joncham@gmail.com>
8747
8748         * appdomain.c:  Fix shadow copy on Windows. Use g_snprintf instead
8749         of snprintf as it doesn't exist on Win32 (VS build); also for uniformity.  
8750         
8751         Code is contributed under MIT/X11 license.
8752         
8753 2007-03-09  Gert Driesen  <drieseng@users.souceforge.net>
8754
8755         * loader.c: Reapply patch for bug #79424.
8756
8757 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
8758
8759         * metadata.c (mono_type_to_unmanaged): Only convert object to
8760         MARSHAL_CONV_SAFEHANDLE on the 2.0 profile.
8761
8762 Tue Mar 6 15:39:48 CET 2007 Paolo Molaro <lupus@ximian.com>
8763
8764         * class-internals.h, class.c, metadata.c, reflection.c: removed unused
8765         (and incorrectly set) is_reference field from MonoGenericInst.
8766
8767 2007-03-06  Zoltan Varga  <vargaz@gmail.com>
8768
8769         * assembly.c (mono_assembly_load_from_full): Call mono_assemblies_unlock ()
8770         a little earlier.
8771
8772         * icall.c (ves_icall_type_Equals): Rename this to ves_icall_System_Type_EqualsInternal.
8773
8774         * icall-def.h: Rename Type:Equals to Type:EqualsInternal.
8775
8776 2007-03-05  Miguel de Icaza  <miguel@novell.com>
8777
8778         * file-io.c (ves_icall_System_IO_MonoIO_Open): Use the new
8779         FileOptions.1 value to mean "temporary", map that to
8780         FILE_ATTRIBUTE_TEMPORARY and use that to signal 600 permissions.
8781
8782         Fixes 80688
8783
8784 2007-03-03  Marek Habersack  <mhabersack@novell.com>
8785
8786         * appdomain.c: implement MS .Net style shadow copying. Copies of
8787         the assemblies are made in a subdirectory of the dynamic base
8788         directory, the assembly names are preserved.
8789         Copy .mdb and .config files along with the assemblies being shadowed.
8790
8791 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
8792
8793         * marshal.c (emit_object_to_ptr_conv): Emit valid IL for handling HandleRefs.
8794         (emit_marshal_handleref): Ditto.
8795
8796         * profiler.c: Applied patch from Tor Lillqvist (tml@novell.com) to fix output
8797         on Visual C++. Fixes #80671.
8798
8799 Wed Feb 28 16:53:40 CET 2007 Paolo Molaro <lupus@ximian.com>
8800
8801         * boehm-gc.c, null-gc.c, object.h, object.c: sgen gc fixes
8802         for clone operations.
8803
8804 2007-02-28  Zoltan Varga  <vargaz@gmail.com>
8805
8806         * marshal.c: Fix warnings.
8807
8808 Fri Feb 23 15:06:57 CET 2007 Paolo Molaro <lupus@ximian.com>
8809
8810         * loader.c: allow case-insensitive matching of the dll name
8811         in dllmap handling when prefixed with "i:".
8812
8813 2007-02-20  Jonathan Chambers  <joncham@gmail.com>
8814
8815         * threads.c: Fix #ifdef for dummy_apc function for VS.
8816
8817 Tue Feb 20 11:59:42 CET 2007 Paolo Molaro <lupus@ximian.com>
8818
8819         * threads.c: don't throw in MemoryBarrier (), use lock/unlock.
8820
8821 2007-02-19  Massimiliano Mantione  <massi@ximian.com>
8822         * class.c (mono_class_setup_vtable_general): Fix bug 75903,
8823         giving precedence to the methods with a fully qualified name
8824         (InterfaceName.MethodName) when building the interface sections
8825         of the vtable.
8826
8827 2007-02-16  Dick Porter  <dick@ximian.com>
8828
8829         * threadpool.c (append_job): Fix fast-path array handling, so it's
8830         less likely the array will grow exponentially when the load is
8831         heavy.
8832
8833 Fri Feb 16 19:17:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8834
8835         * metadata-internals.h, loader.c: fix dllmap lookup order
8836         for non-function maps, too, and prepare for fallback code.
8837
8838 2007-02-12  Robert Jordan  <robertj@gmx.net>
8839
8840         * marshal.c, marshal.h, icall-def.h: rename mono_marshal_realloc
8841         to ves_icall_System_Runtime_InteropServices_Marshal_ReAllocHGlobal
8842         and use GlobalReAlloc on WIN32 to be in sync with GlobalAlloc,
8843         GlobalFree. Fixes a part of bug #77075.
8844
8845 Mon Feb 12 21:10:07 CET 2007 Paolo Molaro <lupus@ximian.com>
8846
8847         * loader.c: implemented typedef parent in field memberref.
8848
8849 2007-02-11  Jonathan Chambers  <joncham@gmail.com>
8850
8851         * marshal.c: Fix warnings and remember to call Release on
8852         IUnknown of RCW.
8853         
8854         Code is contributed under MIT/X11 license.
8855
8856 2007-02-10  Miguel de Icaza  <miguel@novell.com>
8857
8858         * class-internals.h: Add MonoHandleRef definition, and
8859         handleref_class to mono_defaults. 
8860
8861         * metadata.c (mono_type_to_unmanaged): If we find HandleRefs in a
8862         structure, use new conversion MONO_MARSHAL_CONV_HANDLEREF.
8863
8864         * marshal.c (emit_ptr_to_object_conv): Add support for HandleRefs
8865         (do nothing on this stage)
8866         (emit_object_to_ptr_conv): Extract the handle from the HandleRef.  
8867         (emit_marshal_handleref): New method, used for argument handling
8868         of HandleRefs. 
8869
8870 2007-02-08  Jonathan Chambers  <joncham@gmail.com>
8871
8872         * class.c (mono_class_setup_parent): Lazily init com types.
8873         * domain.c (mono_init_internal, mono_init_com_types): Lazily 
8874         init com types.
8875         * object.c (mono_remote_class_vtable): Lazily init com types.
8876         * class-internals.h: Add iunknown and idispatch to MonoDefaults.
8877         * object-internals.h: Add MonoComInteropProxy and MonoReflectionGuidAttribute.
8878         * domain-internals.h: Expose mono_init_com_types.
8879         * icall-def.h: Add icalls for ComInteropProxy, __ComObject, and Marshal.
8880         * marshal.c: Add mutex for cominterop use. Init locals for wrapper methods.
8881         Add support for COM Callable Wrapper marshalling.
8882         * marshal.h: Add icall definitions.
8883         * gc.c: Handle freeing of CCWs in finalizer code.
8884         
8885         Code is contributed under MIT/X11 license.
8886
8887 Thu Feb 8 12:46:18 CET 2007 Paolo Molaro <lupus@ximian.com>
8888
8889         * reflection.c: changed all the signature encoding code to use
8890         a variable-sized buffer.
8891
8892 Wed Feb 7 20:37:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8893
8894         * marshal.c: locking fixes: never take the loader lock
8895         or other runtime locks when holding the marshal lock
8896         (fixes bug#80664).
8897
8898 Wed Feb 7 18:49:10 CET 2007 Paolo Molaro <lupus@ximian.com>
8899
8900         * marshal.c: make the delegate function pointer mapping
8901         work for the moving GC.
8902
8903 Mon Jan 29 11:30:46 CET 2007 Paolo Molaro <lupus@ximian.com>
8904
8905         * marshal.c: fix from Robert Jordan (robertj@gmx.net)
8906         for bug #80618.
8907
8908 Fri Jan 26 12:49:23 CET 2007 Paolo Molaro <lupus@ximian.com>
8909
8910         * image.h, loader.c, metadata-internals.h: use mono-dl instead of
8911         gmodule.
8912
8913 Fri Jan 26 12:00:45 CET 2007 Paolo Molaro <lupus@ximian.com>
8914
8915         * threadpool.c: made the code moving-GC safe.
8916
8917 Thu Jan 25 20:31:41 CET 2007 Paolo Molaro <lupus@ximian.com>
8918
8919         * assembly.c, boehm-gc.c, class-internals.h, class.c,
8920         debug-mono-symfile.c, domain.c, locales.c, marshal.c, metadata.c,
8921         monitor.c, mono-debug.c, mono-debug.h, object.c, profiler.c:
8922         warning cleanup.
8923         * reflection.c: warning cleanup, some threading and moving GC fixes.
8924
8925 Thu Jan 25 16:22:36 CET 2007 Paolo Molaro <lupus@ximian.com>
8926
8927         * class.c, loader.c: create the needed Set/Get/Address array methods
8928         as well as the .ctors in mono_class_init (), fixes bug #80567.
8929
8930 2007-01-24  Zoltan Varga  <vargaz@gmail.com>
8931
8932         * class.c (mono_class_layout_fields): When force-aligning a field, make sure
8933         we doesn't decrease its alignment. Should fix the sparc build.
8934
8935 2007-01-24  Dick Porter  <dick@ximian.com>
8936
8937         * socket-io.c
8938         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
8939         Create the returned object if we need to ignore an unsupported
8940         socket option.  Fixes a segfault reported by Atsushi.
8941
8942 Tue Jan 23 18:09:21 CET 2007 Paolo Molaro <lupus@ximian.com>
8943
8944         * class.c, object.c: restrict GC-tracked fields to
8945         UIntPtr fields used inside corlib, so we provide better
8946         type info to the GC and also allow broken packing as in
8947         bug #80580.
8948
8949 Mon Jan 22 11:24:27 CET 2007 Paolo Molaro <lupus@ximian.com>
8950
8951         * sgen-gc.c: removed duplicated function.
8952
8953 2007-01-19  Miguel de Icaza  <miguel@novell.com>
8954
8955         *  socket-io.c (convert_sockopt_level_and_name): return -2 as a
8956         value that means that the value is not supported, but that we
8957         should not return a failure, but instead report this as a
8958         successful operation.
8959
8960 2007-01-19  Raja R Harinath  <rharinath@novell.com>
8961
8962         Fix tests/bug79956.2.il
8963         * class.c (mono_type_get_underlying_type): Handle genericinst enums.
8964         (mono_generic_class_get_class): If the generic definition in an
8965         enum, copy over other fields related to it.
8966
8967 Thu Jan 18 18:37:28 CET 2007 Paolo Molaro <lupus@ximian.com>
8968
8969         * metadata.h: fix MONO_TYPE_ISSTRUCT() to not consider
8970         genericinst enums (bug #79215).
8971
8972 2007-01-17  Massimiliano Mantione  <massi@ximian.com>
8973         * class.c: Fix bug 80307.
8974
8975 Wed Jan 17 17:09:20 CET 2007 Paolo Molaro <lupus@ximian.com>
8976
8977         * image.c: if the file table is not present, try to load
8978         all the modules, since we don't have info about them
8979         having or not metadata (bug #80517).
8980         * assembly.c: allow mono_assembly_load_references () to
8981         work for netmodules.
8982
8983 Wed Jan 17 14:28:30 CET 2007 Paolo Molaro <lupus@ximian.com>
8984
8985         * image.c, metadata-internals.h, object.c: execute module
8986         cctors when running on the 2 runtime if present (bug #80487).
8987
8988 Tue Jan 16 15:32:53 CET 2007 Paolo Molaro <lupus@ximian.com>
8989
8990         * icall.c: optimized InitializeArray() on bigendian.
8991
8992 Tue Jan 16 13:18:51 CET 2007 Paolo Molaro <lupus@ximian.com>
8993
8994         * icall.c: fix for the broken ARM FPA double format.
8995
8996 Tue Jan 16 12:51:16 CET 2007 Paolo Molaro <lupus@ximian.com>
8997
8998         * icall.c: handle endian issues for r4 and r8 types, too, in
8999         the InitializeArray() icall.
9000
9001 2007-01-15  Miguel de Icaza  <miguel@novell.com>
9002
9003         * loader.c (mono_loader_error_prepare_exception): Clear the error
9004         once we have extracted the information from it, do this before we
9005         call into the JIT's class loading mechanisms.
9006
9007         * object.c (mono_class_create_runtime_vtable): Do not clear the
9008         loader error before calling mono_class_get_exception_for_failure
9009         as the loader error is needed inside
9010         mono_class_get_exception_for_failure to throw the error (thinko).
9011
9012         Fixes #80521
9013         
9014 Mon Jan 15 10:27:31 CET 2007 Paolo Molaro <lupus@ximian.com>
9015
9016         * reflection.c: align fields rva data so it's faster to load at
9017         runtime.
9018
9019 2007-01-12  Raja R Harinath  <rharinath@novell.com>
9020
9021         Prepare to simplify GenericMethod handling.
9022         * class-internals.h (mono_method_get_context): New accessor function.
9023         * class.c, icall.c, loader.c, reflection.c, verify.c: Use accessor
9024         rather than directly accessing '->context' field.
9025
9026         * class-internals.h (_MonoGenericParam.method): Move ...
9027         (_MonoGenericContainer): ... here.  Add into union with klass field.
9028         * class.c, icall.c, loader.c, metadata.c, reflection.c:
9029         Update to changes.
9030
9031 Fri Jan 12 11:58:52 CET 2007 Paolo Molaro <lupus@ximian.com>
9032
9033         * Makefile.am, class-internals.h, debug-helpers.c: consolidate
9034         the wrapper type enum and reduce relocations.
9035
9036 2007-01-12  Raja R Harinath  <rharinath@novell.com>
9037
9038         * reflection.c (inflate_mono_method): Reuse method instantiation
9039         from the generic method, if available.
9040
9041 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
9042
9043         * marshal.c (emit_marshal_variant): Fix conv_arg
9044         type in last commit, based on whether parameter is byref.
9045         
9046 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
9047
9048         * marshal.c (emit_marshal_variant): Handle unmanaged->managed
9049         marshalling.
9050         (mono_marshal_emit_managed_wrapper): Convert byref arguments of type
9051         MONO_TYPE_OBJECT back for VARIANT support.
9052
9053 2007-01-11  Jonathan Chambers  <joncham@gmail.com>
9054
9055         * marshal.c, marshal.h, icall-def.h: Implement 
9056         Marshal.ReAllocCoTaskMem.
9057
9058 Thu Jan 11 19:00:03 CET 2007 Paolo Molaro <lupus@ximian.com>
9059
9060         * marshal.c: memory retention fixes: use the proper
9061         image cache for runtime_invoke method lookups.
9062
9063 Thu Jan 11 18:53:19 CET 2007 Paolo Molaro <lupus@ximian.com>
9064
9065         * mempool.c: added code to help debug mempool allocations.
9066
9067 2007-01-11  Dick Porter  <dick@ximian.com>
9068
9069         * socket-io.c (convert_sockopt_level_and_name): Add DontFragment
9070         support (experimenting with faking it with IP_MTU_DISCOVER for
9071         systems that don't have IP_DONTFRAGMENT.)
9072         (ves_icall_System_Net_Sockets_Socket_Disconnect_internal): New
9073         icall.
9074
9075         * icall-def.h: new System.Net.Sockets.Disconnect icall.
9076
9077         * socket-io.h: Add new fields to MonoSocketAsyncResult
9078         corresponding to the new ones in Socket.cs.
9079
9080 2007-01-11  Raja R Harinath  <rharinath@novell.com>
9081
9082         Fix IronPython regression mentioned in #80249
9083         * metadata.c (do_mono_metadata_parse_generic_class): Clear
9084         'cached_context' field, since it may have been initialized as a
9085         side-effect of metadata parsing.
9086
9087         * class-internals.h (_MonoGenericClass.is_inflated): Remove.
9088         (_MonoGenericClass.cached_class): Move here and rename from lone
9089         remaining field of ...
9090         (_MonoInflatedGenericClass): ... this.  Remove.
9091         * metadata.h, class.c, reflection.c, metadata.c, icall.c: Update
9092         to changes.
9093
9094         Fix mcs/tests/test-128.cs regression.
9095         * reflection.c (encode_cattr_value) [MONO_TYPE_SZARRAY]: Revert
9096         2007-01-10 change below.
9097         [MONO_TYPE_OBJECT]: Recurse into array case.
9098
9099 2007-01-11  Raja R Harinath  <harinath@gmail.com>
9100
9101         * class-internals.h (mono_get_inflated_generic_class): Remove.
9102         * class.c (mono_get_inflated_generic_class): Remove.
9103         (mono_generic_class_get_class): Rename from
9104         mono_class_create_generic.
9105         (mono_class_from_mono_type) [GENERICINST]: Use it.
9106         * reflection.c, metadata.c: Update to changes.  Use
9107         'mono_class_from_mono_type'.
9108
9109 Wed Jan 10 16:19:54 CET 2007 Paolo Molaro <lupus@ximian.com>
9110
9111         * reflection.c: use passed type when encoding an array element
9112         in custom attributes (patch from David Mitchell, dmitchell@logos.com).
9113
9114 2007-01-09  Robert Jordan  <robertj@gmx.net>
9115
9116         * marshal.c (mono_delegate_end_invoke): Add check for unpaired asyc
9117         result arguments (someDelegate.EndInvoke (unrelatedAres)).
9118         Fixes bug #80392.
9119
9120 2007-01-09  Raja R Harinath  <rharinath@novell.com>
9121
9122         * class-internals.h (_MonoInflatedGenericClass.is_initialized): Remove.
9123
9124         * object.c (set_value): Avoid aliasing between type->data.klass
9125         and type->data.generic_class.
9126
9127         * class.c (mono_class_create_generic): Don't use 'is_initialized' field.
9128
9129 2007-01-08  Raja R Harinath  <rharinath@novell.com>
9130
9131         * marshal.c (mono_marshal_get_runtime_invoke): Avoid aliasing
9132         between type->data.klass and type->data.generic_class.
9133
9134 2007-01-08  Lluis Sanchez  <lluis@ximian.com>
9135
9136         * marshal.c: In MS.NET, StringBuilder objects are not copied by
9137         value in out parameters.
9138
9139 2007-01-08  Raja R Harinath  <rharinath@novell.com>
9140
9141         Simplify invariant for MonoGenericClass::klass field.
9142         * class.c (mono_class_create_generic): Verify 'klass' is null.
9143         * metadata.c (do_mono_metadata_parse_generic_class): Don't
9144         initialize 'klass' field.
9145
9146 2007-01-05  Raja R Harinath  <rharinath@novell.com>
9147
9148         Ongoing work to avoid redundant data and simplify invariants.
9149         * class-internals.h (_MonoGenericMethod.class_inst): Rename from
9150         'generic_class', and change type to a GenericInst.
9151         (_MonoGenericContext.class_inst): Likewise, rename from 'gclass'.
9152         * class.c, loader.c, metadata.c, reflection.c: Update to changes.
9153
9154 2007-01-05  Atsushi Enomoto  <atsushi@ximian.com>
9155
9156         * class.c : skip io-layer under PLATFORM_WIN32.
9157
9158 2007-01-03  Tor Lillqvist  <tml@novell.com>
9159
9160         Fix #80305: In a bundled executable, look in the bundled exe
9161         assembly to determine the runtime version. Add the possibility to
9162         bundle also the machine.config file.
9163         
9164         * assembly.c (mono_assembly_open_from_bundle): Make
9165         non-static. Allow being called even if we have no bundled
9166         assemblies, and return NULL right away in that case.
9167
9168         * domain-internals.h: Declare mono_assembly_open_from_bundle()
9169         here.
9170
9171         * domain.c (app_config_parse): Take an assembly exe file name as
9172         parameter instead of a config file name. Check for a bundled
9173         config file for that assembly by calling
9174         mono_config_string_for_assembly_file() (see below) before looking
9175         for one in the file system.
9176         (get_runtimes_from_exe): Corrsponding change to call of
9177         app_config_parse().
9178         (get_runtimes_from_exe): Check for bundled assembly exe file first
9179         by calling mono_assembly_open_from_bundle(). If no bundled
9180         assembly exe file is found, call mono_image_open() as before to
9181         look it up in the file system.
9182
9183         * mono-config.c: Add variable bundled_machinec_onfig.
9184         (mono_config_string_for_assembly_file): New function.
9185         (mono_config_for_assembly): Move code snippet that looks for a
9186         bundled assembly .config file into the above new function. Call
9187         it.
9188         (mono_register_machine_config, mono_get_machine_config): New
9189         functions to set and retrieve
9190
9191         * assembly.h: Declare mono_register_machine_config().
9192
9193         * mono-config.h: Declare mono_get_machine_config() and
9194         mono_config_string_for_assembly_file().
9195
9196         * icall.c: No declaration of environ necessary on Win32. It is
9197         declared (as a macro expanding to a function call) in stdlib.h.
9198         (ves_icall_System_Configuration_DefaultConfig_get_bundled_machine_config):
9199         New internal mono function. Returns the value of
9200         mono_get_machine_config() as a Mono string.
9201
9202         * icall-def.h: Add get_bundled_machine_config().
9203
9204 2007-01-04  Raja R Harinath  <rharinath@novell.com>
9205
9206         Remove redundant field
9207         * class-internals.h (_MonoGenericContext.container): Remove field.
9208         * loader.c (mono_method_get_signature_full): Don't parse a
9209         "container" for a signature parse when the signature is inflated
9210         immediately.
9211         (method_from_methodspec): Likewise, for a generic_inst.
9212         * class.c, metadata.c, reflection.c: Update to changes.
9213
9214 2006-01-04  Raja R Harinath  <rharinath@novell.com>
9215
9216         * class-internals.h (_MonoGenericClass): Rename 'context' field to
9217         'cached_context', and change semantics -- it starts off NULL, and
9218         is initialized on demand.
9219         * class.c (mono_generic_class_get_context): New accessor to
9220         replace 'context' field accesses.
9221         (mono_class_get_context): New helper.
9222         (*): Update to changes.
9223         * icall.c, loader.c, metadata.c, reflection.c: Update to changes.
9224
9225 2007-01-03  Miguel de Icaza  <miguel@novell.com>
9226
9227         * marshal.c (mono_string_to_byvalstr): Fix thinko, shorten len
9228         before the memcpy.   Fixes Marshal2 regression.
9229
9230 2007-01-02  Jb Evain  <jbevain@gmail.com>
9231
9232         * blob.h: add a MONO_TYPE_ENUM definition
9233         * reflection.c (load_cattr_value, create_custom_attr, create_custom_attr_data):
9234         fix the encoding of arrays of enums in custom attributes.
9235
9236         Fixes #79666.
9237
9238 2007-01-01  Miguel de Icaza  <miguel@novell.com>
9239
9240         * marshal.c (mono_string_to_byvalwstr): Fix this routine.   The
9241         string is null terminated, but only cut the string short if it
9242         overflows the buffer.   
9243         
9244         (mono_string_to_byvalstr): Also fix this routine.   The code here
9245         was not properly terminating a string (it was only terminated
9246         because of the previous catch-all memset). 
9247
9248         I left the memset, because I do not know if applications expect
9249         the runtime to clear this region. 
9250
9251         Fixes #79944.
9252
9253         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType):
9254         Clear the error before returning to unmanaged code to prevent the
9255         runtime from being confused later on (fixes  80420).
9256         (ves_icall_type_from_name): Always call mono_loader_clear_error
9257         after parsing a type that could have failed.
9258         (ves_icall_System_Reflection_Assembly_GetTypes): ditto.
9259
9260         * loader.c (mono_loader_clear_error): Fix indentation.
9261
9262 2006-12-28  Martin Baulig  <martin@ximian.com>
9263
9264         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 58.
9265
9266 Fri Dec 22 20:04:57 CET 2006 Paolo Molaro <lupus@ximian.com>
9267
9268         * reflection.c: patch from Rolf Bjarne Kvinge to fix
9269         getting a token for an EnumBuilder.
9270
9271 Fri Dec 22 19:49:07 CET 2006 Paolo Molaro <lupus@ximian.com>
9272
9273         * reflection.c: be more careful in case resource generation
9274         fails to create the data array.
9275
9276 Fri Dec 22 18:17:40 CET 2006 Paolo Molaro <lupus@ximian.com>
9277
9278         * sgen-gc.c: write barrier for clone and fix unregister handles.
9279
9280 Fri Dec 22 18:15:33 CET 2006 Paolo Molaro <lupus@ximian.com>
9281
9282         * reflection.c: some fixes needed in the generics code for the moving GC.
9283
9284 2006-12-22  Robert Jordan  <robertj@gmx.net>
9285
9286         * icall.c (ves_icall_System_Array_SetValueImpl): Take enums into
9287         account. Fixes bug #80299.
9288
9289 2006-12-21  Raja R Harinath  <rharinath@novell.com>
9290
9291         Fix WaitHandle usage in delegates.
9292         * object-internals.h (mono_wait_handle_get_HANDLE): Declare.
9293         * object.c (mono_wait_handle_new): Use the property set method to
9294         initialize the handle.
9295         (mono_wait_handle_get_handle): New.
9296         * threadpool.c (mono_async_invoke): Use it.
9297         * threads.c (ves_icall_System_Threading_WaitHandle_WaitAll_internal):
9298         Likewise.
9299         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Likewise.
9300
9301 2006-12-21  Jonathan Chambers  <joncham@gmail.com>
9302
9303         * marshal.c (emit_marshal): Call emit_marshal_variant and
9304         emit_marshal_com_interface when applicable.
9305         (emit_marshal_variant, emit_marshal_com_interface): Add
9306         methods for this case and remove if's from emit_marshal_object.
9307         
9308 Wed Dec 20 11:03:56 CET 2006 Paolo Molaro <lupus@ximian.com>
9309
9310         * filewatcher.c: updated to use the mono-dl API instead of gmodule.
9311
9312 2006-12-19  Jonathan Chambers  <joncham@gmail.com>
9313
9314         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocHGlobal,
9315         ves_icall_System_Runtime_InteropServices_Marshal_FreeHGlobal): Use GlobalAlloc
9316         and GlobalFree on Windows. Remove FIXME.
9317
9318 Tue Dec 19 16:18:16 CET 2006 Paolo Molaro <lupus@ximian.com>
9319
9320         * mono-mlist.h, mono-mlist.c, Makefile.am: linked list
9321         implementation for managed objects.
9322
9323 Tue Dec 19 14:28:03 CET 2006 Paolo Molaro <lupus@ximian.com>
9324
9325         * object.c: implemented code to be used for checking
9326         that no reference field overlaps with non-references.
9327
9328 Tue Dec 19 14:10:37 CET 2006 Paolo Molaro <lupus@ximian.com>
9329
9330         * threadpool.c: fix queue code to be compatible with the
9331         moving GC.
9332
9333 2006-12-18  Miguel de Icaza  <miguel@novell.com>
9334
9335         * marshal.c (emit_object_to_ptr_conv): Handle null safehandles
9336         in structures by throwing ArgumentNullException.
9337
9338         (emit_marshal_safehandle): Also when they are null parameters.
9339
9340         (emit_marshal_safehandle): Add support for ref
9341         SafeHandles parameters
9342
9343 Mon Dec 18 19:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
9344
9345         * profiler.c: updated to use the mono-dl API instead of
9346         gmodule.
9347
9348 Mon Dec 18 19:02:37 CET 2006 Paolo Molaro <lupus@ximian.com>
9349
9350         * profiler.c: updated to use the mono-dl dynamic loading
9351         API instead of gmodule.
9352
9353 Mon Dec 18 18:16:22 CET 2006 Paolo Molaro <lupus@ximian.com>
9354
9355         * profiler.c: use readlink, older versions of glib don't have
9356         g_file_read_link ().
9357
9358 Mon Dec 18 16:40:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9359
9360         * profiler.c: try to detect the path to mono if libc fails to provide
9361         a useful name (bug #80286).
9362
9363 2006-12-16  Raja R Harinath  <rharinath@novell.com>
9364
9365         Fix #80242
9366         * icall.c (ves_icall_Type_GetNestedType): If the type is a generic
9367         instance, use the generic type definition instead.
9368         (ves_icall_Type_GetNestedTypes): Likewise.
9369         * class.c (mono_class_create_generic): Always set the
9370         nested_classes of a generic instance to NULL, even if the generic
9371         type definition has nested types.
9372
9373 2006-12-15  Jonathan Chambers  <joncham@gmail.com>
9374
9375         * marshal.c (mono_string_from_bstr): Revert previous Windows change
9376         and fix on Linux.
9377         
9378 2006-12-15  Miguel de Icaza  <miguel@novell.com>
9379
9380         * marshal.c (mono_string_from_bstr): Jon Chambers pointed out that
9381         my arguments were in the wrong order.   I also fixed the Windows
9382         version which seems to have had the same issue.
9383
9384         (mono_free_bstr): On Unix, this is g_free.
9385         (mono_string_from_bstr, mono_string_to_bstr): Implement bstr
9386         conversions (for the tests in corlib to pass).
9387
9388 2006-12-14  Miguel de Icaza  <miguel@novell.com>
9389
9390         * marshal.c (emit_ptr_to_object_conv): For now, ignore
9391         MONO_MARSHAL_CONV_SAFEHANDLE on return values (we need to throw an
9392         exception if a ref SafeHandle in a struct has changed).
9393         
9394         (emit_struct_conv): Do not perform layout checks for classes
9395         derived from SafeHandle, as those are specially handled. 
9396
9397         (emit_object_to_ptr_conv): Add support for
9398         MONO_MARSHAL_CONV_SAFEHANDLE conversion. 
9399
9400         (emit_marshal_safehandle): Implement conversion of return values
9401         of safehandles (MARSHAL_ACTION_CONV_RESULT).
9402         
9403         * threads.c: WaitHandle now is compiled with two different handles
9404         "IntPtr os_handle" for 1.x and "SafeWaitHandle safe_wait_handle"
9405         for 2.0.
9406         
9407         (ves_icall_System_Threading_WaitHandle_WaitAll_internal) 
9408         (ves_icall_System_Threading_WaitHandle_WaitAny_internal): Adjust
9409         these routines to cope with both kinds of fields.
9410
9411 2006-12-12  Miguel de Icaza  <miguel@novell.com>
9412
9413         * metadata.c (mono_type_to_unmanaged): Handle the case where
9414         type->data.klass is a SafeHandle, and in that case, return the
9415         size of a pointer (MONO_NATIVE_INT) and set the conversion to be
9416         MONO_MARSHAL_CONV_SAFEHANDLE. 
9417
9418 2006-12-11  Miguel de Icaza  <miguel@novell.com>
9419
9420         * marshal.c (emit_marshal): Hook up to the MONO_TYPE_CLASS and
9421         MONO_TYPE_OBJECT cases and check for a SafeHandle here before
9422         calling emit_marshal_object.
9423
9424         (emit_marshal_safehandle): Implement marshalling of
9425         SafeHandle parameters (no ref support yet).
9426
9427         (MarshalAction): Document the defines as I implement
9428         them for SafeHandle.
9429
9430         (emit_marshal_object): indentation police.
9431
9432         * class-internals.h: Define MonoSafeHandle.
9433         Add safehandle_class to MonoDefaults type.
9434
9435         * verify.c: Add System.Runtime.InteropServices.SafeHandle to the
9436         list of classes to check for fields. 
9437
9438         * domain.c (mono_init_internal): Add SafeHandle to the list of
9439         mono_defaults loaded.
9440
9441 2006-12-15  Raja R Harinath  <rharinath@novell.com>
9442
9443         Fix #80253
9444         * reflection.c (mono_reflection_bind_generic_parameters): If the
9445         generic type definition is a type builder, ensure that it is fully
9446         initialized before instantiating it.  Kill some dead code.
9447
9448 Thu Dec 14 17:02:59 CET 2006 Paolo Molaro <lupus@ximian.com>
9449
9450         * object.c: clear the loader_error () before loading
9451         more metadata stuff (bug #80258).
9452
9453 Thu Dec 14 12:49:47 CET 2006 Paolo Molaro <lupus@ximian.com>
9454
9455         * icall.c, icall-defs.h: type modifiers icalls for
9456         parameters and properties.
9457
9458 Wed Dec 13 19:29:50 CET 2006 Paolo Molaro <lupus@ximian.com>
9459
9460         * object.c, icall.c: fixed warnings.
9461
9462 Mon Dec 11 11:03:10 CET 2006 Paolo Molaro <lupus@ximian.com>
9463
9464         * marshal.c: fixed a couple of leaks and coding style in a few places.
9465
9466 2006-12-08  Dick Porter  <dick@ximian.com>
9467
9468         * process.c: Cope with NULL ProcessStartInfo arguments on windows
9469         too.  Patch from Jonathan Chambers <joncham@gmail.com>, fixes bug
9470         80173.
9471
9472 Thu Dec 7 15:20:31 CET 2006 Paolo Molaro <lupus@ximian.com>
9473
9474         * process.c: ProcessStartInfo may have only filename set and
9475         arguments can be NULL.
9476
9477 Tue Dec 5 19:19:34 CET 2006 Paolo Molaro <lupus@ximian.com>
9478
9479         * icall.c: fix leak found by Robert Jordan.
9480
9481 Tue Dec 5 17:53:10 CET 2006 Paolo Molaro <lupus@ximian.com>
9482
9483         * marshal.c, marshal.h: generate managed method to access an element
9484         of a multi-dimensional array.
9485
9486 2006-11-30  Paolo Molaro (lupus@ximian.com)
9487
9488         * metadata.c, marshal.c: locking fixes when writing to image->mempool.
9489
9490 Thu Nov 30 11:11:37 CET 2006 Paolo Molaro <lupus@ximian.com>
9491
9492         * icall.c: back out GetFields () fix until the serialization code is
9493         fixed to not depend on the incorrect behaviour.
9494
9495 Wed Nov 29 22:01:46 CET 2006 Paolo Molaro <lupus@ximian.com>
9496
9497         * profiler.c: provide defaults if none are set.
9498
9499 Tue Nov 28 12:54:51 CET 2006 Paolo Molaro <lupus@ximian.com>
9500
9501         * Makefile.am, attrdefs.h: new public header file with
9502         constants for attributes for use by embedders.
9503
9504 Tue Nov 28 11:44:52 CET 2006 Paolo Molaro <lupus@ximian.com>
9505
9506         * icall.c: GetFields () fix for bug #80064.
9507
9508 Tue Nov 28 10:56:01 CET 2006 Paolo Molaro <lupus@ximian.com>
9509
9510         * filewatcher.c, filewatcher.h, icall-def.h, icall.c, locales.c:
9511         removed long unused icalls.
9512
9513 2006-11-27  Jonathan Chambers  <joncham@gmail.com>
9514   
9515         * marshal.c: 
9516                 (mono_marshal_emit_managed_wrapper): Level of indirection for 
9517                 mono_marshal_get_managed_wrapper so that a wrapper for a managed method
9518                 can be generated without a delegate class.
9519                 (mono_marshal_get_managed_wrapper): Move wrapper logic to mono_marshal_emit_managed_wrapper.
9520         
9521         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
9522
9523 2006-11-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9524
9525         * console-io.c: add the 'signal' call removed by mistake. Fixes bug
9526         #80069.
9527
9528 Mon Nov 27 19:29:13 CET 2006 Paolo Molaro <lupus@ximian.com>
9529
9530         * boehm-gc.c, null-gc.c, sgen-gc.c, mono-gc.h, icall.c,
9531         icall-def.h: added icalls needed by System.GC.
9532
9533 Thu Nov 23 20:01:12 CET 2006 Paolo Molaro <lupus@ximian.com>
9534
9535         * loader.c: ensure the class in catch clauses is handled
9536         correctly for generics methods (fixes bug#79980).
9537
9538 Thu Nov 23 17:31:58 CET 2006 Paolo Molaro <lupus@ximian.com>
9539
9540         * monitor.h, monitor.c: added mono_locks_dump () function
9541         to help debug deadlocks involving managed locks.
9542
9543 2006-11-13  Dick Porter  <dick@ximian.com>
9544
9545         * file-io.c (get_file_attributes): If the file is a symlink try
9546         and get the stat data for the target, but also add the
9547         FILE_ATTRIBUTE_REPARSE_POINT flag.  This is an attempt to follow
9548         the specs for the windows symlink support, but will probably have
9549         to be reworked when I have test data from a vista machine.  Fixes
9550         bug 79887.
9551
9552 2006-11-13  Dick Porter  <dick@ximian.com>
9553
9554         * gc.c (mono_domain_finalize): 
9555         * marshal.c (mono_delegate_begin_invoke): 
9556         * threadpool.c (socket_io_init, mono_thread_pool_init)
9557         (mono_thread_pool_finish): 
9558         * monitor.c (mono_monitor_try_enter_internal): 
9559         * threads.c (mono_thread_resume, mono_thread_init)
9560         (mono_thread_suspend_all_other_threads)
9561         (mono_thread_execute_interruption): 
9562         * appdomain.c (mono_domain_unload): Check for NULL error returns
9563         from CreateThread(), CreateEvent() and CreateSemaphore().  See bug
9564         75733.
9565
9566 2006-11-11  Miguel de Icaza  <miguel@novell.com>
9567
9568         * process.c
9569         (ves_icall_System_Diagnostics_Process_CreateProcess_internal):
9570         Only close the handle if the value of the handle is not
9571         INVALID_HANDLE_VALUE.  This just makes the process a bit more
9572         robust.
9573
9574         Improvement for #75733, so that we do not run into this problem. 
9575
9576         
9577         * assembly.c (check_path_env, check_extra_gac_path_env): Do not
9578         include empty directories from MONO_PATH or MONO_GAC_PREFIX in our
9579         internal variables.  Fixes #79462 
9580         
9581
9582 2006-11-09  Dick Porter  <dick@ximian.com>
9583
9584         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
9585         Use poll() not select().  Fixes bug 79397.
9586
9587 2006-11-09  Raja R Harinath  <rharinath@novell.com>
9588
9589         Fix #79872
9590         * assembly.c (mono_assembly_load_from_full): Check that the given
9591         image has an assembly manifest.
9592
9593 2006-11-09  Ankit Jain  <jankit@novell.com>
9594
9595         * tabledefs.h (ASSEMBLYREF_RETARGETABLE_FLAG):
9596         (ASSEMBLYREF_ENABLEJITCOMPILE_TRACKING_FLAG):
9597         (ASSEMBLYREF_DISABLEJITCOMPILE_OPTIMIZER_FLAG): Add AssemblyRef flags.
9598
9599 2006-11-07  Dick Porter  <dick@ximian.com>
9600
9601         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
9602         Put the old resolver behaviour back for pre-2.0 profiles.
9603
9604 Tue Nov 7 16:56:24 CET 2006 Paolo Molaro <lupus@ximian.com>
9605
9606         * threadpool.c: precise GC and locking fixes.
9607
9608 Tue Nov 7 11:02:42 CET 2006 Paolo Molaro <lupus@ximian.com>
9609
9610         * class.c: don't load types that have an explicit unaligned
9611         managed reference. Provide better info in the TypeLoad exception.
9612         Part of the fix for bug #79744.
9613         * object.c: use the correct check for class type load issues.
9614
9615 Mon Nov 6 17:07:43 CET 2006 Paolo Molaro <lupus@ximian.com>
9616
9617         * class.c: enforce alignment of fields with managed references
9618         even when Pack=1 is forced by the user (bug #77788).
9619
9620 2006-11-03  Dick Porter  <dick@ximian.com>
9621
9622         * socket-io.c (ves_icall_System_Net_Dns_GetHostByAddr_internal):
9623         If the address reverse lookup fails, return it as the hostname
9624         anyway.  Fixes bug 79721.
9625
9626 2006-11-03  Dick Porter  <dick@ximian.com>
9627
9628         * threads.c (ves_icall_System_Threading_Thread_SpinWait_internal):
9629         Fix build on Windows.
9630
9631 2006-11-02  Dick Porter  <dick@ximian.com>
9632
9633         * icall-def.h: 
9634         * object-internals.h: 
9635         * exception.c (mono_get_exception_thread_interrupted): 
9636         * threads.c: Implement Thread.Interrupt and Thread.SpinWait.
9637         Fixes bug 74525.
9638
9639         * monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait):
9640         Check for pending Thread.Interrupt.
9641
9642 2006-10-27  Massimiliano Mantione  <massi@ximian.com>
9643         * loader.c: Fixed bug 79684.
9644
9645 2006-10-27  Dick Porter  <dick@ximian.com>
9646
9647         * file-io.c (get_file_attributes): Force symlinks to directories
9648         to be returned as a regular file.  Fixes bug 79733.
9649 2006-10-26  Dick Porter  <dick@ximian.com>
9650
9651         * file-io.c (ves_icall_System_IO_MonoIO_Open): If we're calling
9652         CreateFile to open a directory then we need to set the
9653         FILE_FLAG_BACKUP_SEMANTICS flag.  Fixes bug 75285.
9654
9655 2006-10-23  Zoltan Varga  <vargaz@gmail.com>
9656
9657         * reflection.c (mono_method_get_object): Cache the MonoMethod class and its
9658         friends.
9659
9660 Mon Oct 23 03:06:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9661
9662         * sgengc.c: small cleanup of timer code.
9663
9664 Mon Oct 23 02:49:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
9665
9666         * sgen-gc.c: fix some warnings and start adding support for
9667         complete object removal on domain unload.
9668
9669 2006-10-22  Gert Driesen  <drieseng@users.sourceforge.net>
9670
9671         * assembly.c: build_assembly_name should not consider a version
9672         number without build or revision number invalid. Fixes bug #79715.
9673
9674 2006-10-18  Jonathan Chambers  <joncham@gmail.com>
9675
9676         * icall.c: Have ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
9677         call kernel32 function OutputDebugString directly.
9678         
9679         Signed-off-by: Jonathan Chambers <joncham@gmail.com>
9680         
9681 Tue Oct 17 16:59:59 CEST 2006 Paolo Molaro <lupus@ximian.com>
9682
9683         * reflection.c: small cleanup, using a function to insert a MonoString
9684         in the string heap.
9685
9686 Tue Oct 17 16:45:27 CEST 2006 Paolo Molaro <lupus@ximian.com>
9687
9688         * reflection.c: moving GC fixes.
9689
9690 Mon Oct 16 16:53:12 CEST 2006 Paolo Molaro <lupus@ximian.com>
9691
9692         * sgen-gc.c, gc-internal.h, gc.c: added API to collect and remove
9693         all the objects with finalizers belonging to an unloading appdomain.
9694
9695 Mon Oct 16 15:08:41 CEST 2006 Paolo Molaro <lupus@ximian.com>
9696
9697         * sgen-gc.c: added ability to allocate even when the nursery is fully
9698         pinned and fixed a couple of bugs.
9699
9700 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
9701
9702         * threads.h: Revert the last change for now.
9703
9704         * threads.h (mono_thread_get_pending_exception): Rename this to
9705         mono_thread_get_undeniable_exception ().
9706
9707 2006-10-15  Gert Driesen  <drieseng@users.sourceforge.net>
9708
9709         * appdomain.c: Use mono_get_exception_bad_image_format2 to construct
9710         BadImageFormatException in ves_icall_System_Reflection_Assembly_LoadFrom
9711         when fname does not refer to valid assembly. This result in a more
9712         meaningful error message.
9713         * exception.c: added mono_get_exception_bad_image_format2 which 
9714         constructs a BadImageFormatException using the ctor taking a custom
9715         message and the file name. Passing in a NULL msg results in a default
9716         message.
9717         * exception.h: define mono_get_exception_bad_image_format2 function.
9718         * icall.c: in InternalGetAssemblyName, throw BadImageFormatException 
9719         when file name pointed to an invalid IL image. Use 
9720         mono_get_exception_file_not_found2 to construct FileNotFoundException,
9721         as this results in a more meaningful error message.
9722
9723 2006-10-15  Zoltan Varga  <vargaz@gmail.com>
9724
9725         * reflection.c (encode_named_val): Implement proper encoding of arrays. Fixes
9726         #79465.
9727
9728 2006-10-12  Zoltan Varga  <vargaz@gmail.com>
9729
9730         * metadata.c (mono_type_size): Change the align parameter to guint32 for
9731         consistency with the other _size functions.
9732         (mono_type_stack_size): Ditto.
9733
9734         * class.c object.c icall.c: Fix warnings caused by the above change.
9735
9736         * class.c (mono_class_get_method_from_name_flags): Fix a typo.
9737
9738         * image.c (load_metadata_ptrs): Reenable loading of modules with uncompressed metadata.
9739
9740         * metadata.c class.c loader.c: Add proper support for uncompressed metadata.
9741
9742 Wed Oct 11 17:27:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
9743
9744         * console-io.h, filewatcher.h, locales.h, marshal.h, monitor.h,
9745         process.h, rand.h, rawbuffer.h, security-manager.h, security.h,
9746         socket-io.h, string-icalls.h, sysmath.h, threadpool-internals.h,
9747         threadpool.h, threads-types.h: mark more internal functions.
9748
9749 2006-10-11  Dick Porter  <dick@ximian.com>
9750
9751         * socket-io.c (ves_icall_System_Net_Sockets_Socket_Poll_internal):
9752         Fix typo spotted by Robert Jordan in bug 79352 (though I can't
9753         reproduce the bug even before applying the fix.)
9754
9755 Tue Oct 10 15:39:39 CEST 2006 Paolo Molaro <lupus@ximian.com>
9756
9757         * reflection.c: allow retrieving attributes for arguments in generic
9758         methods (bug #79241).
9759
9760 Tue Oct 10 11:45:50 CEST 2006 Paolo Molaro <lupus@ximian.com>
9761
9762         * debug-mono-symfile.c: properly check fopen () result (found by
9763         coverity).
9764
9765 Tue Oct 10 11:30:52 CEST 2006 Paolo Molaro <lupus@ximian.com>
9766
9767         * reflection.c: make error message clearer and fixed two
9768         issuelets found by Coverity.
9769
9770 2006-10-10  Zoltan Varga  <vargaz@gmail.com>
9771
9772         * object-internals.h: Remove duplicate definition of mono_method_get_signature_full ().
9773
9774 Mon Oct 9 19:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
9775
9776         * object-internals.h, gc-internal.h, profiler-private.h:
9777         mark internal functions.
9778
9779 Mon Oct 9 19:28:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
9780
9781         * reflection.c: put data in the text section.
9782         * icall.c: recognize more types in type_from_typename ().
9783         * process.c, marshal.c: added some GC FIXMEs.
9784
9785 Mon Oct 9 19:27:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
9786
9787         * loader.c: check for NULL before initializing.
9788
9789 2006-10-09  Zoltan Varga  <vargaz@gmail.com>
9790
9791         * gc.c (finalizer_thread): Use a non-alertable wait here.
9792
9793         * class.c loader.c metadata.c: Revert the mono_metadata_decode_table_... changes,
9794         until the correct solution is found.
9795
9796 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
9797
9798         * reflection.c (mono_module_get_object): Avoid an assert when operating on
9799         modules with no metadata. Fixes #79596.
9800
9801         * image.c (load_metadata_ptrs): Put back the error message when
9802         the #- heap is encountered since the support is not complete yet.
9803
9804 Fri Oct 6 16:57:26 CEST 2006 Paolo Molaro <lupus@ximian.com>
9805
9806         * gc.c: do not allow the user to SuppressFinalize () a
9807         delegate because it would leak the trampoline if present.
9808
9809 2006-10-06  Zoltan Varga  <vargaz@gmail.com>
9810
9811         * class.c metadata.c row-indexes.h blob.h: Applied patch from Jb. Add support for the
9812         PropertyPtr table.
9813
9814 2006-10-05  Zoltan Varga  <vargaz@gmail.com>
9815
9816         * loader.c (mono_method_signature): Fix a use of MONO_TABLE_METHOD missed earlier.
9817
9818         * metadata.c (mono_metadata_get_param_attrs): Ditto.
9819
9820         * row-indexes.h: Add definitions for *Ptr tables.
9821
9822         * metadata-internals.h (MonoImage): Add an 'uncompressed_metadata' flag.
9823
9824         * metadata.c (mono_metadata_translate_token_index): New helper function to
9825         translate table indexes used in uncompressed metadata.
9826         (mono_metadata_decode_table_row): Ditto.
9827         (mono_metadata_decode_table_row_col): Ditto.
9828
9829         * metadata.c: Add table schema for *Ptr tables.
9830
9831         * class.c loader.c: Use the new helper function to access the affected metadata
9832         tables.
9833         
9834         * image.c (load_metadata_ptrs): Allow assemblies with uncompressed metadata. Fixes
9835         #38532.
9836         
9837 2006-10-04  Zoltan Varga  <vargaz@gmail.com>
9838
9839         * marshal.c (emit_object_to_ptr_conv): Avoid using short branches around IL
9840         sequences which can be unbounded in size. Fixes #79583.
9841
9842 2006-10-02  Zoltan Varga  <vargaz@gmail.com>
9843
9844         * object.c (mono_runtime_class_init): Handle a corner case in handling failure of
9845         static initialization.
9846
9847         * domain-internals.h (MonoDomain): Add a 'type_init_exception_hash' field.
9848
9849         * class-internals.h (MonoVTable): Add an 'init_failed' flag.
9850
9851         * domain.c (mono_domain_free): Free up type_init_exception_hash.
9852
9853         * object.c (mono_runtime_class_init): Implement correct semantics when a static
9854         ctor fails, i.e. throw the same exception on subsequent accesses.
9855         
9856 2006-09-0  Jonathan Chambers  <joncham@gmail.com>
9857
9858         * domain.c, class-internals.h: Added ComInteropProxy class to MonoDefaults.
9859         * marshal.c: Return correct unmanaged size for object when MarshalAs.Struct.
9860         Emit exception rather than crash in case of COM Callable Wrapper (not yet implemented).
9861         Handle marshalling of interfaces and VARIANTs contained in structs.
9862         
9863         Code is contributed under MIT/X11 license.
9864         
9865 2006-09-30  Zoltan Varga  <vargaz@gmail.com>
9866
9867         * marshal.c (emit_marshal_custom): Fix some corner cases. Fixes #79471.
9868         
9869         * marshal.c (mono_marshal_load_type_info): Allocate memory from the image
9870         mempool.
9871
9872 2006-09-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9873
9874         * console-io.c: ignore previous SIGINT handler.
9875
9876 2006-09-27  Zoltan Varga  <vargaz@gmail.com>
9877
9878         * metadata.c class.c: Applied patch from Ricardo Fernandez Pascual 
9879         (ricardo.fernandez@st.com). Add some new MonoClass and MonoType accessors. Fixes
9880         #79460, #79461, #79485.
9881
9882         * class.c (mono_class_from_name_case): Fix incorrect comments. Fixes #79504.
9883
9884         * marshal.c (mono_marshal_load_type_info): Fix a typo which caused an assert. Fixes
9885         #79217.
9886
9887 2006-09-26  Zoltan Varga  <vargaz@gmail.com>
9888
9889         * marshal.c (mono_marshal_get_delegate_invoke): Tweak the IL a little so better code
9890         could be generated from it.
9891
9892 Mon Sep 25 13:29:53 CEST 2006 Paolo Molaro <lupus@ximian.com>
9893
9894         * rand.c: fix read loop to correctly handle EINTR.
9895
9896 Mon Sep 25 11:33:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9897
9898         * Makefile.am, icall-def.h, icall.c, verify.c: changed the way
9899         internal calls are defined to keep methods closer to the declaring
9900         type and allow a significant reduction in runtime relocations and
9901         memory usage.
9902
9903 2006-09-21 Gert Driesen  <drieseng@users.sourceforge.net>
9904
9905         * appdomain.c: Pass NULL to mono_get_exception_file_not_found2 as
9906         exception message to have FileNotFoundException use the default
9907         assembly load error message. Fixes bug #79426.
9908         * exception.c: Support NULL msg in mono_get_exception_file_not_found2.
9909
9910 2006-09-21 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9911
9912         * threadpool.c: (start_thread_or_queue) use the root domain when
9913         creating the thread instead of the async object one.
9914
9915 Thu Sep 21 19:30:04 CEST 2006 Paolo Molaro <lupus@ximian.com>
9916
9917         * class.c, object.c, class-internals.h, reflection.c:
9918         for arrays, store element_size inside MonoClass (speedup
9919         for array object creation).
9920
9921 Thu Sep 21 17:06:43 CEST 2006 Paolo Molaro <lupus@ximian.com>
9922
9923         * icall.c: fixed CodeBase to use the file name and not the module
9924         name (bug #79365).
9925
9926 Thu Sep 21 12:09:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
9927
9928         * mono-debug.c, mono-debug.h: export find_method as
9929         mono_debug_find_method ().
9930
9931 Wed Sep 20 19:59:06 CEST 2006 Paolo Molaro <lupus@ximian.com>
9932
9933         * debug-helpers.c, class-internals.h: added a few functions useful
9934         when debugging under gdb.
9935
9936 2006-09-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
9937
9938         * console-io.[ch]: trigger the ConsoleCancelEvent and retrieve
9939         characters that need special handling.
9940
9941 Tue Sep 19 18:57:38 CEST 2006 Paolo Molaro <lupus@ximian.com>
9942
9943         * mono-config.c: make the os/cpu specification more flexible,
9944         allowing lists and negation.
9945
9946 2006-09-18  Jonathan Chambers  <joncham@gmail.com>
9947
9948         * marshal.c: COM Interop fixes. Handle case where method->klass.
9949         is interface. Handle BSTR/MonoString when null. Use CDECL as 
9950         calling convention on non-windows platforms. This is for
9951         compatibility with XPCOM and MainWin COM.
9952         
9953         Code is contributed under MIT/X11 license.
9954         
9955
9956 2006-09-18  Zoltan Varga  <vargaz@gmail.com>
9957
9958         * marshal.c (mono_marshal_load_type_info): Handle concurrent and recursive calls
9959         correctly. Fixes #79217.
9960
9961         * class-internals.h (MonoClass): Remove unused marshal_info_init_pending field.
9962
9963 Mon Sep 18 16:59:54 CEST 2006 Paolo Molaro <lupus@ximian.com>
9964
9965         * mono-config.c: allow both an os and cpu attribute for dllmap
9966         and dllentry elemnets to enable a single config file to be used
9967         for multiple architectures.
9968
9969 2006-09-18  Gert Driesen  <drieseng@users.sourceforge.net>
9970
9971         * loader.c: MonoLoaderError was cleared too soon on load failure.
9972         Fixes bug #79424.
9973
9974 Mon Sep 18 15:37:13 CEST 2006 Paolo Molaro <lupus@ximian.com>
9975
9976         * icall.c: use the defining class vtable when accessing a
9977         static field, not a pobblibly derived class.
9978
9979 2006-09-17  Zoltan Varga  <vargaz@gmail.com>
9980
9981         * icall.c string-icalls.c: Remove references to unicode.h.
9982
9983         * unicode.h unicode.c Makefile.am: Remove these unused source files.
9984
9985         * NOTES: Moved to ../../docs and renamed to thread-safety.txt.
9986
9987         * marshal.c (mono_marshal_emit_native_wrapper): Add an 'image' argument, 
9988         indicating the image where custom marshaller types should be looked up.
9989         (mono_ftnptr_to_delegate): Use the image of the delegate type to look up
9990         custom marshallers, instead of corlib. Fixes #79425.
9991
9992 2006-09-14  Zoltan Varga  <vargaz@gmail.com>
9993
9994         * marshal.c (emit_marshal_object): Fix marshalling of blittable classes and null.
9995
9996 2006-09-14  Jonathan Chambers  <joncham@gmail.com>
9997
9998         * environment.c (ves_icall_System_Environment_get_ProcessorCount): 
9999         Implement Environment.ProcessorCount.
10000         
10001         * environment.h (ves_icall_System_Environment_get_ProcessorCount): 
10002         Implement Environment.ProcessorCount.
10003         
10004         * icall.c: 
10005         Add Environment.ProcessorCount icall.
10006         
10007         Patch by Jason McFall.
10008
10009 2006-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10010
10011         * assembly.c: don't append .exe/.dll when the filename already contains
10012         one of those extensions.
10013
10014 2006-09-12  Martin Baulig  <martin@ximian.com>
10015
10016         * class.c (mono_bounded_array_class_get): Also add `IList<object>'
10017         to array interfaces.
10018
10019 2006-09-11  Martin Baulig  <martin@ximian.com>
10020
10021         * reflection.c (mono_image_build_metadata): Create the
10022         MethodImpl's after emitting all types and methods, so we don't
10023         need another fixup pass for them.
10024
10025 2006-09-11  Zoltan Varga  <vargaz@gmail.com>
10026
10027         * class.c (mono_class_from_name_case): Fix regression introduced by the last
10028         change.
10029
10030 Mon Sep 11 12:57:15 CEST 2006 Paolo Molaro <lupus@ximian.com>
10031
10032         * gc-internal.h, appdomain.c, gc.c: force-destroy GC handles on domain
10033         unload.
10034
10035 2006-09-10  Zoltan Varga  <vargaz@gmail.com>
10036
10037         * object.c (mono_method_return_message_restore): Avoid a crash if one of the out
10038         args is not set. Fixes #78926.
10039
10040 2006-09-08  Zoltan Varga  <vargaz@gmail.com>
10041
10042         * class.c (mono_class_init): Init class->no_special_static_fields from the cached info.
10043
10044         * image.c (load_class_names): Move this to class.c, and rename it to 
10045         'mono_image_init_name_cache'.
10046         (load_modules): Fix a warning.
10047
10048         * class.c icall.c image.c: Initialize image->name_cache lazily.
10049
10050         * class-internals.h (MonoGetClassFromName): New hook function to find a class based
10051         on its name using information in the AOT file.
10052
10053         * class.c (mono_class_from_name): Use the new hook function.
10054
10055 2006-09-06  Zoltan Varga  <vargaz@gmail.com>
10056
10057         * reflection.c (mono_param_get_objects): Handle enum default parameter values
10058         correctly.
10059
10060         * marshal.c (emit_marshal_object): Implement [In, Out] byval marshalling of classes.
10061         Fixes #79289.
10062         
10063 2006-09-06  Martin Baulig  <martin@ximian.com>
10064
10065         * icall.c (mono_lookup_internal_call): Small fix.
10066
10067 2006-09-05  Raja R Harinath  <rharinath@novell.com>
10068
10069         * debug-mono-symfile.c (mono_debug_open_mono_symbols): Remove
10070         double g_free.
10071
10072 2006-09-04  Sebastien Pouliot  <sebastien@ximian.com>
10073
10074         * debug-mono-symfile.c: Fix *some* memory leaks that happens only 
10075         when --debug is specified.
10076
10077 2006-09-04  Zoltan Varga  <vargaz@gmail.com>
10078
10079         * class.c (setup_generic_array_ifaces): Fix a warning.
10080
10081 2006-09-04  Miguel de Icaza  <miguel@novell.com>
10082
10083         * Temporarily remove the patch to assemly.c that checks the
10084         assembly versions as it breaks our gacutil.
10085
10086 2006-09-03  Zoltan Varga  <vargaz@gmail.com>
10087
10088         * metadata.c (mono_metadata_parse_mh_full): Fix an invalid free.
10089
10090         * assembly.c (mono_assembly_load_from_full): Avoid loading net 2.0 assemblies into
10091         a net 1.0 runtime.
10092
10093         * marshal.c (mono_string_builder_to_utf8): Fix marshalling of StringBuilders
10094         created using the default ctor. Fixes #79152.
10095         (mono_string_builder_to_utf16): Ditto.
10096
10097 2006-09-01  Martin Baulig  <martin@ximian.com>
10098
10099         Fix handling of the generic array interfaces.
10100
10101         * class-internals.h
10102         (MonoDefaults): Removed `generic_array_class' and added
10103         `generic_ilist' class.
10104
10105         * class.c
10106         (mono_bounded_array_class_get): Add the new generic array interfaces.
10107         (setup_generic_array_ifaces): New static method; create vtable
10108         entries for each method in the generic array interfaces.
10109
10110         * metadata.c
10111         (select_container): Allow "parent-less" generic methods.
10112
10113         * marshal.c
10114         (mono_marshal_get_generic_array_helper): New public method.
10115
10116         * icall.c
10117         (ves_icall_System_Array_InternalArray_GetGenericValueImpl):
10118         Renamed into ves_icall_System_Array_GetGenericValueImpl() and
10119         moved the interncall into System.Array.
10120
10121 2006-09-01  Raja R Harinath  <rharinath@novell.com>
10122
10123         A few more cases of avoiding work on types with ->byref set.
10124         Has the real fix for #79238
10125         * icall.c (is_generic_parameter): New helper.
10126         (ves_icall_Type_GetGenericParameterPosition): Use it.
10127         (ves_icall_Type_GetGenericParameterAttributes): Likewise.
10128         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
10129         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
10130         (ves_icall_Type_GetGenericTypeDefinition_impl): Return NULL on
10131         reference types.
10132         (ves_icall_Type_get_IsGenericTypeDefinition): Return FALSE on
10133         reference types.
10134         (ves_icall_Type_get_IsGenericInstance): Likewise.
10135         (ves_icall_Type_get_IsGenericType): Likewise.
10136
10137 2006-09-01  Zoltan Varga  <vargaz@gmail.com>
10138
10139         * class.c (mono_class_setup_vtable_general): Share identical vtables with the parent
10140         class if possible.
10141
10142         * mempool.h (mono_mempool_get_allocated): New helper function.
10143
10144         * object.c (mono_class_create_runtime_vtable): Fix problem introduced by last
10145         change.
10146
10147         * mempool.c: Fix warnings and the calculation of stats.
10148
10149         * object.c (mono_class_create_runtime_vtable): Fix the AOT optimization.
10150
10151         * class.c (mono_class_setup_vtable): Update generic_vtable_count stat.
10152
10153         * loader.c (mono_get_method_from_token): Update method_count stat.
10154
10155         * class-internals.h (MonoStats): Add some stats.
10156
10157 2006-08-31 Robert Jordan  <robertj@gmx.net>
10158
10159         * icall.c: Replace the PtrToStringAuto, StringToHGlobalAuto icalls
10160         with managed variants.
10161         All code is contributed under the MIT/X11 license.
10162         
10163 2006-08-31  Zoltan Varga  <vargaz@gmail.com>
10164
10165         * reflection.c (reflection_methodbuilder_to_mono_method): Set 
10166         method->skip_visibility based up the skipVisibility parameter of DynamicMethods.
10167
10168         * class-internals.h (MonoMethod): Add a 'skip_visibility' field.
10169
10170         * marshal.c (mono_marshal_load_type_info): Revert the last change as it can't cope
10171         with cycles in classes.
10172
10173         * icall.c (ves_icall_MonoType_get_Name): Add a '&' for byref types. Fixes #79110.
10174
10175         * marshal.c (emit_marshal_array): Avoid crash when a parameter with type array is 
10176         missing a [MarshalAs] directive. Fixes #79203.
10177
10178         * marshal.c (mono_marshal_load_type_info): Fix a race in initializing 
10179         klass->marshal_info. Fixes #79217.
10180
10181 2006-08-30  Martin Baulig  <martin@ximian.com>
10182
10183         Committing a patch from Joachim Ante <joe@otee.dk>:
10184         Add support for binary data symbol stores.
10185
10186         * debug-mono-symfile.c
10187         (mono_debug_open_mono_symbol_file): Renamed into
10188         mono_debug_open_mono_symbols() and added `raw_contents' and `size'
10189         arguments.
10190
10191         * mono-debug.c
10192         (mono_debug_open_image): Added `raw_contents' and `size' args.
10193         (mono_debug_init_2_memory): New public function.
10194
10195 Fri Aug 25 18:25:23 CEST 2006 Paolo Molaro <lupus@ximian.com>
10196
10197         * icall.c: handle TypedReference in GetTypeCode (bug #79150).
10198
10199 2006-08-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10200
10201         * appdomain.c: implement support for ShadowCopyFiles.
10202
10203 2006-08-22  Sebastien Pouliot  <sebastien@ximian.com>
10204
10205         * string-icalls.c: Add shortcut in ves_icall_System_String_ctor_charp
10206         when value is NULL (and should remove CID #51).
10207
10208 2006-08-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10209
10210         * image.c: moved 2 functions to ../utils.
10211
10212 Tue Aug 22 15:53:29 CEST 2006 Paolo Molaro <lupus@ximian.com>
10213
10214         * gc.c: cope with the target object of a GC handle being NULL
10215         (bug #78877).
10216
10217 Tue Aug 22 11:10:33 CEST 2006 Paolo Molaro <lupus@ximian.com>
10218
10219         * class.c: recursively check parent's explicit implementations
10220         of interface methods (fixes bug #79125).
10221
10222 2006-08-19  Miguel de Icaza  <miguel@novell.com>
10223
10224         * filewatcher.c: Avoid warnings when building, do not redefine
10225         constants that are defined.
10226
10227         Remove warnings.
10228
10229 2006-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10230
10231         * image.c: don't fail when the link points to an absolute path.
10232
10233 2006-08-18  Sebastien Pouliot  <sebastien@ximian.com>
10234
10235         * decimal.c: Remove dead code (unrequired check) in mono_decimalIncr.
10236         Fix CID #3.
10237
10238 2006-08-17  Miguel de Icaza  <miguel@novell.com>
10239
10240         * image.c (full_path): A new method used to obtain the actual path
10241         of an assembly even in the presence of symbolic links.  
10242
10243         This is necessary for the case where we are running a binary that
10244         has been GACed, but we are using the "published" path name
10245         ($prefix/mono/1.0/blah.exe) which happens to point to the real
10246         file in the GAC.
10247
10248         This was the source of the failure for the `xsp' command with the
10249         recent AppDomain changes, as far as the runtime was concerned,
10250         there were two different assemblies: $prefix/mono/1.0/blah.exe and
10251         $prefix/mono/gac/blah/version/blah.exe.
10252
10253         (do_mono_image_open): use full path
10254
10255 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
10256
10257         * object.c (mono_class_create_runtime_vtable): Add a FIXME.
10258
10259 2006-08-17  Sebastien Pouliot  <sebastien@ximian.com>
10260
10261         * marshal.c: Fix mono_marshal_check_domain_image if an invalid 
10262         domain_id is supplied. Fix CID #241 and corlib's unit tests.
10263
10264 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
10265
10266         * class.c (mono_class_layout_fields): Set min_align to a bigger value for
10267         small structures. Fixes #78990.
10268
10269 2006-08-17  Zoltan Varga  <vargaz@gmail.com>
10270
10271         * marshal.c (mono_marshal_get_xappdomain_invoke): Use the new helper functions here.
10272
10273         * appdomain.c (ves_icall_System_AppDomain_createDomain): Fix a warning.
10274
10275 2006-08-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10276
10277         * appdomain.c:
10278         * marshal.c: don't load all the assemblies from a domain into newly
10279         created ones. The new domains might have different rules and load
10280         assemblies from different locations. Fixes bug #76757.
10281
10282         Patch by Lluis. Conflicts resolved by Brian Crowell.
10283
10284 2006-08-16  Alp Toker  <alp@atoker.com>
10285
10286         * socket-io.c: First half of the fix for #79084.
10287         Set sa_size to the length of the content, not that of the struct.
10288         Don't add NULL suffix to the content, this should be done in
10289         managed code if needed.
10290
10291 2006-08-14  Raja R Harinath  <rharinath@novell.com>
10292
10293         Fix part of #79012
10294         * metadata.c (do_mono_metadata_parse_generic_class): Don't SEGV if
10295         mono_metadata_parse_type returns NULL.
10296
10297 2006-08-13  Atsushi Enomoto  <atsushi@ximian.com>
10298
10299         * normalization-tables.h : new file for string normalization data.
10300         * locales.c, locales.h, icall.c :
10301           added load_normalization_resource() for string normalization,
10302           and icall as well.
10303         * Makefile.am : added normalization-tables.h to the sources.
10304
10305 2006-08-13  Zoltan Varga  <vargaz@gmail.com>
10306
10307         * marshal.c: Add more helper functions to reduce code duplication and use them
10308         everywhere.
10309
10310 2006-08-12  Zoltan Varga  <vargaz@gmail.com>
10311
10312         * marshal.c: Fix non-x86 stdcall warnings.
10313         
10314         * marshal.c marshal.h: Add some helper functions to emit/patch branches, and use 
10315         them everywhere.
10316
10317 2006-08-11  Jonathan Chambers  <joncham@gmail.com>
10318
10319         * class.c (mono_bounded_array_class_get): Fix if statement that caused incorrect
10320         type check on multi-dimensional arrays. Fixes #79000.
10321
10322 2006-08-10  Jonathan Chambers  <joncham@gmail.com>
10323
10324         * class.c (mono_class_setup_parent): setup is_com_object during class initialization.
10325         * object.c (mono_remote_class_vtable/mono_object_new_specific): Changed checks
10326         to use is_com_object instead of MONO_CLASS_IS_IMPORT() macro.
10327         * class-internals.h: add is_com_object to class structure.
10328         * marshal.c: Fixed marshalling for IDispatch and IUnknown, added
10329         null checks to COM object marshalling. Fix .ctor call on RCW.
10330         * icall.c: Added icall implementation for MonoType.IsCOMObjectImpl.
10331         
10332         All code is contributed under the MIT/X11 license.
10333
10334 2006-08-09  Dick Porter  <dick@ximian.com>
10335
10336         * monitor.c (mono_monitor_cleanup): mono_monitor_cleanup() is
10337         racing mono_monitor_allocator_lock() somewhere, so don't delete
10338         the critical section for now.  Found by running and exiting
10339         monodevelop.
10340
10341 2006-08-10  Zoltan Varga  <vargaz@gmail.com>
10342
10343         * marshal.c (cominterop_get_native_wrapper): Fix a warning.
10344         (ves_icall_System_ComObject_FindInterface): Ditto.
10345         (ves_icall_System_ComObject_CacheInterface): Ditto.
10346
10347         * metadata.c (do_mono_metadata_type_equal): Applied patch from Roberto Costa
10348         (roberto.costa@st.com). Add support for MONO_TYPE_FNPTR.
10349
10350 2006-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10351
10352         * threadpool.c: treat pipes from process asynchronous reads as sockets
10353         when reading from them, so we get select/poll or epoll to wait for
10354         data.
10355
10356 2006-08-07  Sebastien Pouliot  <sebatien@ximian.com>
10357
10358         * loader.c: Fix a typo (CID #233) in the null check.
10359
10360 2006-08-07  Zoltan Varga  <vargaz@gmail.com>
10361
10362         * appdomain.c (mono_domain_unload): Close the thread handle of the unload thread.
10363         Hopefully fixes #78949.
10364         
10365         * metadata.c (mono_metadata_parse_method_signature_full): Applied patch from 
10366         Roberto Costa (roberto.costa@st.com). Handle vararg signatures without SENTINEL
10367         bytes. Fixes #78972.
10368
10369 2006-08-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10370
10371         * filewatcher.c: we need to set errno here.
10372
10373 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10374
10375         * filewatcher.c: let Win32Exception get the error value.
10376
10377 2006-08-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10378
10379         * filewatcher.c: translate errno into win32 errors for Win32Exception
10380         to know what happened.
10381
10382 2006-08-01  Zoltan Varga  <vargaz@gmail.com>
10383
10384         * threadpool.c: Fix more warnings.
10385
10386         * assembly.c (search_loaded): Fix warnings.
10387
10388         * threadpool.c (mono_thread_pool_finish): Fix warnings.
10389         (mono_async_invoke): Ditto.
10390
10391 2006-07-28  Jonathan Chambers  <joncham@gmail.com>
10392
10393         * object.c (mono_remote_class_vtable): Need to create proxy vtable
10394         entries for __ComObject type in addition to ComImport types.
10395         * marshal.c: Added support for marshalling COM RCWs. Fixed warning
10396         about hash table.
10397         
10398         All code is contributed under the MIT/X11 license.
10399
10400 Fri Jul 28 19:04:34 CEST 2006 Paolo Molaro <lupus@ximian.com>
10401
10402         * image.c: avoid tentative loading of modulerefs that contain
10403         no metadata (P/Invoke library names).
10404
10405 2006-07-28  Dick Porter  <dick@ximian.com>
10406
10407         * loader.c (mono_loader_cleanup): mono_loader_cleanup() is racing
10408         mono_loader_lock() somewhere, so don't delete the critical section
10409         for now.  Found by running and exiting monodevelop.
10410
10411 2006-07-26 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10412
10413         * filewatcher.c: define the inotify syscalls when we're building on
10414         linux and have sys/syscall.h. The build system might not have support
10415         for inotify but the target system might have it.
10416
10417 2006-07-26  Miguel de Icaza  <miguel@novell.com>
10418
10419         * domain.c: Documentation updates.
10420
10421         * loader.c (mono_free_method): Do not release the method
10422         information if we are being profiled, as profilers will use this
10423         information at shut down to present some data to the user.
10424
10425         This is needed so that the profiler does not crash, as the
10426         profiler tends to keep MonoMethods around, and they might become
10427         invalid if we free these.
10428
10429         (mono_get_method_constrained): Return the original CIL stream
10430         method as well, so verification can be performed against it.
10431
10432 2006-07-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10433
10434         * filewatcher.[ch]: support for inotify file system watcher.
10435         * icall.c: add new internal calls for the inotify file system watcher.
10436
10437 2006-07-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
10438
10439         * threadpool.c: Windows also misbehaves on async. connects. Fixes bug
10440         #78888.
10441
10442 2006-07-20  Dick Porter  <dick@ximian.com>
10443
10444         * file-io.c (ves_icall_System_IO_MonoIO_Seek): Fix signed/unsigned
10445         warning.
10446
10447 2006-07-20  Dick Porter  <dick@ximian.com>
10448
10449         * threads.c (start_wrapper): Do the thread cleanup while we still
10450         hold a reference to its object.  Fixes bug 78123.
10451
10452 2006-07-18  Kornél Pál  <kornelpal@gmail.com>
10453
10454         * class-internals.h: Added MONO_WRAPPER_MANAGED_TO_MANAGED wrapper type.
10455         * debug-helpers.c: Map MONO_WRAPPER_MANAGED_TO_MANAGED to
10456           "managed-to-managed".
10457         * icall.c: Redirect string constructors that take sbyte* to
10458           ves_icall_System_String_ctor_RedirectToCreateString.
10459         * marshal.c: Redirect ves_icall_System_String_ctor_RedirectToCreateString
10460           to CreateString () methods with matching signature.
10461         * reflection.c: Use original security informations for
10462           MONO_WRAPPER_MANAGED_TO_MANAGED.
10463         * security-manager.c: Use original security informations for
10464           MONO_WRAPPER_MANAGED_TO_MANAGED.
10465         * string-icalls.c: Added ves_icall_System_String_ctor_RedirectToCreateString
10466           that is a placeholder and only its address should be used.
10467         * string-icalls.h: Added ves_icall_System_String_ctor_RedirectToCreateString
10468           that is a placeholder and only its address should be used.
10469
10470 2006-07-15  Jonathan Chambers  <joncham@gmail.com>
10471
10472         Begin implementing COM Interop.
10473         * appdomain.c: Increment corlib version.
10474         * class.c: Set ComImport classes' parent to __ComObject.
10475         * loader.c: Mark cominterop methods as such.
10476         * domain.c: Add __ComObject class to MonoDefaults structure.
10477         * image.c: Add 2 hashtables to the image for COM Interop related methods
10478         * metadata.c: Added mono_metadata_type_dup_mp to duplicate a type
10479         using the mempool allocator
10480         
10481         * metadata-internals.h: Add 2 hashtables to the image for COM Interop related methods
10482         * metadata.h: Added cominterop field to _MonoMethodSignature struct and
10483         declaration for mono_metadata_type_dup_mp.
10484         
10485         * debug-helpers.c: Added strings for two additional wrapper types
10486         * object.c: Create proxy objects for ComImport classes
10487         * class-internals.h: Define 2 new method wrapper types, COM Interop remoting target,
10488         and added __ComObject class to MonoDefaults structure.
10489         
10490         * object-internals.h: Finish MonoRealProxy definition, and add definition of
10491         MonoComInteropProxy and MonoComObject.
10492         
10493         * marshal.c: Added support for COM Interop
10494         (signature_cominterop): Converts managed signature to corresponding
10495         unmanaged COM signature.
10496         (cominterop_get_function_pointer): gets unmanaged function pointer via
10497         COM object vtable
10498         (cominterop_get_com_slot_for_method): returns vtable slot in COM interface of method
10499         (cominterop_get_method_interface): returns interface type that method is defined on
10500         (mono_mb_emit_cominterop_call): emits native call to function pointer
10501         gotten from vtable
10502         (cominterop_get_native_wrapper_adjusted): actual wrapper around unmanaged COM call
10503         that matches signature of unmanaged function.
10504         (cominterop_get_native_wrapper): wrapper around adjusted method call.
10505         (cominterop_get_invoke): forwards call from proxy to __ComObject
10506         (ves_icall_System_Runtime_InteropServices_Marshal_AddRef): Implements Marshal.AddRef 
10507         (ves_icall_System_Runtime_InteropServices_Marshal_QueryInterface): Implements Marshal.QueryInterface 
10508         (ves_icall_System_Runtime_InteropServices_Marshal_Release): Implements Marshal.Release 
10509         
10510         * marshal.h: Added Marshal icall declarations.
10511         * icall.c: Added __ComObject icalls. Need to store interfaces in unmanaged code
10512         so we can access them in finalizer
10513         
10514 2006-07-14  Dick Porter  <dick@ximian.com>
10515
10516         * object.c (mono_type_initialization_cleanup): Fix a race
10517         condition by temporarily commenting out the critical section
10518         deletion.
10519
10520 2006-07-14  Zoltan Varga  <vargaz@gmail.com>
10521
10522         * reflection.c (create_custom_attr): Fix some warnings.
10523         (create_custom_attr_data): Ditto.
10524         (typebuilder_setup_properties): Save custom attrs for properties in dynamic
10525         types. Fixes #78855.
10526
10527 2006-07-11  Zoltan Varga  <vargaz@gmail.com>
10528
10529         * class.c (mono_type_get_name_recurse): Fix the name of 1 dimensional non-szarrays.
10530
10531         * reflection.c (mono_custom_attrs_free): Fix freeing of dynamic cattr info.
10532
10533 2006-07-08  Zoltan Varga  <vargaz@gmail.com>
10534
10535         * reflection.c (resolve_object): Add support for DynamicMethod.
10536
10537         * domain.c appdomain.c threads.c monitor.c object.c gc.c: Applied patch from
10538         Joachim Ante (joe@otee.dk). Fix some shutdown leaks.
10539
10540 2006-07-06  Sebastien Pouliot  <sebastien@ximian.com>
10541
10542         * process.c: In ves_icall_System_Diagnostics_Process_GetModules_internal 
10543         don't leak GPtrArray's pdata has we have no use (nor free) for it.
10544
10545 2006-07-01  Zoltan Varga  <vargaz@gmail.com>
10546
10547         * marshal.c (mono_marshal_get_runtime_invoke): Fix passing of generic valuetypes.
10548         Fixes #77888.
10549
10550 2006-06-30  Raja R Harinath  <rharinath@novell.com>
10551
10552         * icall.c (ves_icall_MonoMethod_get_base_definition): Simplify
10553         slightly: remove a shadow local variable.
10554
10555 2006-06-29  Raja R Harinath  <rharinath@novell.com>
10556
10557         * icall.c (ves_icall_MonoMethod_get_base_definition): Return the
10558         definition that introduces the virtual function slot.
10559         Also fix Coverity #105.
10560
10561 2006-06-29  Zoltan Varga  <vargaz@gmail.com>
10562
10563         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Fix support
10564         for dynamic assemblies. Fixes #78724.
10565
10566 2006-06-28  Zoltan Varga  <vargaz@gmail.com>
10567
10568         * marshal.c (mono_string_to_byvalwstr): Fix this completely broken function.
10569         Fixes #78722.
10570
10571 2006-06-21  Martin Baulig  <martin@ximian.com>
10572
10573         * reflection.c
10574         (method_encode_clauses): Don't assert on `ex_info->handlers' here;
10575         fixes #76484.
10576
10577 2006-06-21  Zoltan Varga  <vargaz@gmail.com>
10578
10579         * object.h (mono_array_setref): Cast value to (MonoObject*) to fix warnings.
10580
10581 2006-06-20  Raja R Harinath  <rharinath@novell.com>
10582
10583         Make 'mono_class_get_full' only inflate TYPESPECs, not TYPEDEFs
10584         nor TYPEREFs.
10585         * class.c (mono_class_create_from_typespec): Add 'context' argument.
10586         Inflate result if necessary.
10587         (mono_class_get_full): Remove old version.  Rename from
10588         'mono_class_get' and add 'context' argument.  Pass it to
10589         ..._create_from_typespec.
10590         (mono_class_get): New.  Simple wrapper to mono_class_get_full.
10591         (mono_ldtoken): Revert change below.
10592
10593 2006-06-20  Martin Baulig  <martin@ximian.com>
10594
10595         * class.c (mono_ldtoken): Don't pass the generic context to
10596         mono_class_get_full() for MONO_TOKEN_TYPE_DEF/REF.  Fixes #78053.
10597
10598 2006-06-15  Zoltan Varga  <vargaz@gmail.com>
10599
10600         * marshal.c (mono_ftnptr_to_delegate): Avoid allocating signature from mempool
10601         and later freeing it. Fixes #78638.
10602
10603 2006-06-15  Miguel de Icaza  <miguel@novell.com>
10604
10605         * icall.c (mono_class_get_throw): Revert over-zealous error
10606         throwing, the caller for mono_class_get_throw will cope with
10607         errors when classes are not properly initialized already.
10608
10609         The code still copes with loader exceptions though.
10610
10611         Fixes the regression in reftype1 and reftype3 from the CAS tests.
10612         
10613 2006-06-14  Miguel de Icaza  <miguel@novell.com>
10614
10615         Fixes the `make run1' version of RuntimeAbort (to be commited,
10616         source is in Bugzilla).
10617         
10618         * metadata.c (mono_metadata_interfaces_from_typedef_full): Return
10619         FALSE on class loading failure instead of returning true.
10620
10621         * class.c (mono_class_create_from_typedef): It is possible for
10622         mono_metadata_interfaces_from_typedef_full to fail if a class is
10623         not found, cope with this.
10624         
10625
10626 2006-06-14  Dick Porter  <dick@ximian.com>
10627
10628         * socket-io.c: 
10629         * process.c: Fix a bunch of signed/unsigned warnings from gcc
10630         4.1.1
10631
10632 2006-06-12  Atsushi Enomoto  <atsushi@ximian.com>
10633
10634         * culture-info-table.h : oops, forgot to make it nsync with r61548.
10635
10636 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10637
10638         * icall.c: Another fix for building mono in Visual Studio.
10639
10640 2006-06-09  Jonathan Chambers  <jonathan.chambers@ansys.com>
10641
10642         * marshal.c icall.c: Minor fixes for building mono in Visual Studio.
10643         
10644 2006-06-09  Martin Baulig  <martin@ximian.com>
10645
10646         * debug-mono-symfile.c: Put this back and really fix it this
10647         time. Sorry for all the trouble.
10648
10649 2006-06-08  Zoltan Varga  <vargaz@gmail.com>
10650
10651         * icall.c (mono_class_get_throw): Fix a warning.
10652         (ves_icall_System_Reflection_Assembly_GetTypes): Allways throw 
10653         ReflectionTypeLoadException if needed. Fixes #78606.
10654
10655         * class.c (mono_class_setup_vtable_general): Handle loader errors a bit better.
10656         (mono_class_init): Ditto.
10657
10658         * loader.c (mono_loader_set_error_assembly_load): Display a separate warning for
10659         ref_only exceptions.
10660         (mono_loader_clear_error): Make this work even if there is no error.
10661
10662 2006-06-08  Jonathan Chambers  <jonathan.chambers@ansys.com>
10663
10664         * object-internals.h marshal.c marshal.h icall.c: Implement method 
10665         Marshal.GetComSlotForMethodInfo using internal call.
10666
10667 2006-06-07  Zoltan Varga  <vargaz@gmail.com>
10668
10669         * class-internals.h: Add a new kind of loader error LOADER_ERROR_ASSEMBLY plus
10670         a function for signalling it.
10671
10672         * class.c (mono_class_from_typeref): Use the new kind of loader error when
10673         a referenced assembly is not found.
10674
10675         * loader.c (mono_loader_error_prepare_exception): Add support for 
10676         LOADER_ERROR_ASSEMBLY. Fix formatting.
10677
10678 2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
10679
10680         * domain.c appdomain.c class-internals.h marshal.c: Add support 
10681         for VARIANT marshalling on windows and increment corlib version
10682         since Variant struct was added.
10683
10684 2006-06-03  Miguel de Icaza  <miguel@novell.com>
10685
10686         * debug-mono-symfile.c: Revert Martin's previous patch which broke
10687         stack trace line information:
10688
10689         (Martin) (mono_debug_symfile_lookup_location): Fix the algorithm:
10690         (Martin) when looking up B which is between A and C, return A not C.
10691
10692         Bug is #78573.
10693
10694         Thanks to Alexander Olk for tracking this down.
10695
10696 2006-06-02  Zoltan Varga  <vargaz@gmail.com>
10697
10698         * marshal.c (mono_marshal_set_last_error_windows): Fix build.
10699         
10700         * marshal.c (mono_marshal_emit_native_wrapper): Call GetLastError () early and without a wrapper to
10701         avoid clobbering its value.
10702         (mono_string_to_lpstr): Fix a warning on windows.
10703
10704 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
10705
10706         * class-internals.h (MonoClass): Removed obsolete 'dummy' flag.
10707
10708         * reflection.c loader.c: Removed references to 'dummy' flag.
10709
10710         * loader.c (mono_loader_error_prepare_exception): Fix a warning.
10711
10712         * threadpool.c: Make ASyncCall a copy of the managed MonoAsyncCall class so
10713         it gets GC tracking.
10714
10715         * object-internals.h (MonoAsyncResult): Add an 'object_data' field which has
10716         GC tracking.
10717         
10718         * object.c (mono_async_result_new): Add an additional parameter 'object_data'.
10719
10720         * marshal.c threadpool.c: Update callers of mono_async_result_new.
10721
10722         * appdomain.c: Bump corlib version.
10723
10724 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
10725
10726         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
10727         CEE_STIND_REF when working with object references.
10728
10729 2006-05-31  Zoltan Varga  <vargaz@gmail.com>
10730
10731         * class.c (mono_class_setup_fields): Call mono_class_init () for class->parent.
10732         Fixes #78539.
10733
10734 2006-05-30  Miguel de Icaza  <miguel@novell.com>
10735
10736         * loader.c (method_from_memberref): Fix argument value for
10737         mono_loader_set_error_method_load (I was passing the MonoClass
10738         instead of the class name char *).
10739
10740 2006-05-30  Zoltan Varga  <vargaz@gmail.com>
10741
10742         * marshal.c: Use mono_mb_emit_stloc in more places. Use CEE_LDIND_REF and
10743         CEE_STIND_REF when working with object references.
10744
10745 2006-05-30  Martin Baulig  <martin@ximian.com>
10746
10747         * mono-debug.c (mono_debug_print_stack_frame): Reverted the
10748         mono_method_full_name() change and replace the ':' with a '.'
10749         here.
10750
10751 2006-05-30  Martin Baulig  <martin@ximian.com>
10752
10753         * debug-mono-symfile.c
10754         (mono_debug_symfile_lookup_location): Fix the algorithm:
10755         when looking up B which is between A and C, return A not C.
10756
10757 2006-05-29  Martin Baulig  <martin@ximian.com>
10758
10759         * mono-debug.h
10760         (MonoDebugMethodInfo): Make the typedef public.
10761         (MonoDebugSourceLocation): New public struct.
10762
10763         * mono-debug.c
10764         (mono_debug_source_location_from_address): Removed.
10765         (mono_debug_source_location_from_il_offset): Removed.
10766         (mono_debug_il_offset_from_address): Removed.
10767         (mono_debug_address_from_il_offset): Removed.
10768         (mono_debug_lookup_method): New public function.
10769         (mono_debug_lookup_source_location): New public function; replaces
10770         the old mono_debug_source_location_from_*() functions; see the
10771         inline documentation.
10772         (mono_debug_free_source_location): New public function.
10773         (mono_debug_print_stack_frame): New public function; see the
10774         inline documentation.
10775
10776         * debug-mono-symfile.c
10777         (mono_debug_find_source_location): Renamed into
10778         mono_debug_symfile_lookup_location(); only take a
10779         `MonoDebugMethodInfo *' and an `offset' argument; added inline
10780         documentation.
10781         (mono_debug_find_method): Renamed into
10782         mono_debug_symfile_lookup_method().
10783
10784 2006-05-27  Zoltan Varga  <vargaz@gmail.com>
10785
10786         * assembly.c (mono_assembly_open_full): Dont overwrite the status
10787         returned by mono_image_open_full ().
10788
10789         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Convert
10790         MONO_IMAGE_IMAGE_INVALID into a BadImageFormatException. Fixes
10791         #78517.
10792
10793         * object.c (compute_class_bitmap): Use class->class_size for static fields. Fixes
10794         #78518.
10795
10796 2006-05-27  Miguel de Icaza  <miguel@novell.com>
10797
10798         * class.c (mono_class_from_typeref): handle missing images
10799         earlier, deals with bug #78418.   Refactor code; 
10800
10801         Fix a warning introduced in my previous commit (some stale code
10802         from before I revisited my patch).
10803
10804         * class.c (mono_class_create_from_typedef): On failure, remove the
10805         class from the MonoImage->class_cache as the class is not
10806         initialized;   Fixes the leak pointed out by Paolo.
10807
10808 2006-05-25  Dick Porter  <dick@ximian.com>
10809
10810         * threads.c (mono_thread_cleanup): Build fix.  Comment out the
10811         DeleteCriticalSections until I figure out which one may still be
10812         sometimes locked when mono_thread_cleanup is called.
10813
10814 2006-05-24  Dick Porter  <dick@ximian.com>
10815
10816         * threads.c (mono_thread_cleanup): Move the threading cleanup out
10817         of mono_thread_manage and back into its own function, so it can be
10818         called after the finalizer thread has finished.
10819
10820         * appdomain.c (mono_runtime_cleanup): Call mono_thread_cleanup
10821
10822 2006-05-24  Zoltan Varga  <vargaz@gmail.com>
10823
10824         * assembly.c (mono_assembly_open_full): Fix typo introduced by a previous change.
10825         Fixes #78495.
10826
10827         * marshal.c (emit_ptr_to_object_conv): Implement marshalling of byval arrays
10828         with non-blittable elements.
10829         (emit_object_to_ptr_conv): Ditto. Fixes #78492.
10830
10831 2006-05-24  Martin Baulig  <martin@ximian.com>
10832
10833         * mono-debug-debugger.h (MonoDebuggerEvent): Added
10834         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE'.    
10835
10836         * mono-debug-debugger.c (mono_debugger_cleanup): Send a
10837         `MONO_DEBUGGER_EVENT_FINALIZE_MANAGED_CODE' and then set
10838         `mono_debugger_event_handler' to NULL.
10839
10840 2006-05-24  Martin Baulig  <martin@ximian.com>
10841
10842         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 57.
10843
10844 2006-05-24  Martin Baulig  <martin@ximian.com>
10845
10846         * mono-debug-debugger.h
10847         (mono_debugger_create_notification_function): Added
10848         `MonoCodeManager *' argument.
10849
10850 Tue May 23 16:05:47 CEST 2006 Paolo Molaro <lupus@ximian.com>
10851
10852         * boehm-gc.c, null-gc.c: fix compilation on 64 bit systems.
10853
10854 Tue May 23 13:44:11 CEST 2006 Paolo Molaro <lupus@ximian.com>
10855
10856         * Makefile.am, gc-internal.h, reflection.c: updates for the new GC.
10857         * sgen.-gc.c, sgen-gc.h: simple generational compacting GC
10858         implementation.
10859
10860 Tue May 23 13:40:30 CEST 2006 Paolo Molaro <lupus@ximian.com>
10861
10862         * icall.c: precise GC support: objects can't be stored in unmanaged
10863         memory anymore, even if they are kept alive by other references: since
10864         they can move the GC needs to be able to always find them.
10865
10866 Tue May 23 12:57:08 CEST 2006 Paolo Molaro <lupus@ximian.com>
10867
10868         * object.c: precise GC support for static fields. Support
10869         for moving GCs: write barriers and pinned allocation for interned
10870         strings.
10871
10872 Tue May 23 12:41:44 CEST 2006 Paolo Molaro <lupus@ximian.com>
10873
10874         * domain.c, domain-internals.h: precise GC support for the MonoDomain
10875         structure.
10876
10877 Tue May 23 12:38:56 CEST 2006 Paolo Molaro <lupus@ximian.com>
10878
10879         * class.c, gc.c: sgen and precise GC updates.
10880
10881 Tue May 23 12:33:24 CEST 2006 Paolo Molaro <lupus@ximian.com>
10882
10883         * marshal.h, marshal.c: added write barrier wrapper and precise type
10884         fixes.
10885
10886 Tue May 23 12:31:22 CEST 2006 Paolo Molaro <lupus@ximian.com>
10887
10888         * object.h, null-gc.c, boehm-gc.c: more write barrier functions and
10889         support.
10890
10891 Tue May 23 12:27:14 CEST 2006 Paolo Molaro <lupus@ximian.com>
10892
10893         * reflection.c: precise and sgen GC updates.
10894
10895 Tue May 23 12:21:46 CEST 2006 Paolo Molaro <lupus@ximian.com>
10896
10897         * debug-helpers.c, class-internals.h: added write barrier wrapper type.
10898
10899 2006-05-22  Zoltan Varga  <vargaz@gmail.com>
10900
10901         * threads.c (start_wrapper): Fix a missed guint32 tid declaration.
10902
10903 2006-05-20  Zoltan Varga  <vargaz@gmail.com>
10904
10905         * reflection.c (encode_cattr_value): Fix yet another bug in the encoding of
10906         MONO_TYPE_OBJECT. Fixes #78462.
10907
10908 2006-05-18  Zoltan Varga  <vargaz@gmail.com>
10909
10910         * marshal.c (emit_marshal_vtype): Add support for UnmanagedType.LPStruct 
10911         and blittable types.
10912
10913 2006-05-17  Miguel de Icaza  <miguel@novell.com>
10914
10915         * class.c (mono_class_get_exception_for_failure): Implement parts
10916         of a TODO: if the loader error is set (instead of the class
10917         error), we return a Loader exception that can be properly thrown
10918         elsewhere.
10919
10920         This was exposed by some Winforms 2.0 code that I tried to run
10921         (Atsushi pointed me to it).
10922
10923 2006-05-17  Zoltan Varga  <vargaz@gmail.com>
10924
10925         * marshal.c (mono_marshal_emit_native_wrapper): Make the marshalling code more
10926         uniform by moving stuff from this function to the proper emit_marshal_XXX functions.
10927         
10928         * marshal.c (emit_marshal_vtype): Add limited support for 
10929         UnmanagedType.LPStruct. Fixes #78427.
10930
10931         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure): 
10932         Applied a patch from kangaroo to fix #77523.
10933
10934 2006-05-17  Martin Baulig  <martin@ximian.com>
10935
10936         * threads.c
10937         (debugger_thread_vtable): Moved into ../mini/debug-debugger.c.
10938         (debugger_thread_created): Removed.
10939         (debugger_thread_exited): Removed.
10940
10941 2006-05-15  Zoltan Varga  <vargaz@gmail.com>
10942
10943         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
10944
10945         * object-internals.h (MonoReflectionResource): Sync with managed version.
10946
10947 2006-05-12  Wade Berrier <wberrier@novell.com>
10948
10949         * threads.c: Define G_GSIZE_FORMAT for systems with glib < 2.6
10950
10951 2006-05-12  Zoltan Varga  <vargaz@gmail.com>
10952
10953         * class.c (mono_fnptr_class_get): Set class->image to corlib for now, since other
10954         functions try to allocate from the image mempool.
10955
10956 2006-05-12  Dick Porter  <dick@ximian.com>
10957
10958         * threads.c (mono_thread_attach): Fix usage of GetCurrentThread().
10959
10960 2006-05-12  Lluis Sanchez  <lluis@ximian.com>
10961
10962         * object.c: The FieldGetter and FieldSetter methods require the full
10963         name of the class, not only the name. Fixes bug #78277.
10964
10965 2006-05-11  Miguel de Icaza  <miguel@novell.com>
10966
10967         * loader.c (method_from_memberref): Do not pass the NULL klass to
10968         mono_loader_set_error_() methods.  Pass the non-NULL value
10969         (class). 
10970
10971 2006-05-11  Zoltan Varga  <vargaz@gmail.com>
10972
10973         * assembly.c (mono_assembly_load_from_full): Fix a bunch of warnings.
10974         (mono_assembly_close): Null out assembly->image->references after freeing it.
10975
10976         * image.c (mono_image_close): Free image->references.
10977         
10978         * reflection.c (mono_image_basic_init): Fix a small memory leak.
10979
10980 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
10981
10982         * marshal.c: In function mono_mb_add_local don't use the mb pointer 
10983         before checking if it's NULL (g_assert).
10984
10985 2006-05-10  Martin Baulig  <martin@ximian.com>
10986
10987         * metadata.c (mono_type_size): Kill the g_assert() in MONO_TYPE_GENERICINST;
10988         I thought I already killed that two months ago, but now it somehow reappeared.
10989
10990 2006-05-10  Martin Baulig  <martin@ximian.com>
10991
10992         * mono-debug.c (mono_debug_add_method): Allow instantiated generic methods.
10993
10994 2006-05-10  Zoltan Varga  <vargaz@gmail.com>
10995
10996         * reflection.c: Allocate memory for dynamically created methods in the image
10997         mempools.
10998
10999 2006-05-10  Sebastien Pouliot  <sebastien@ximian.com>
11000
11001         * appdomain.c: In ves_icall_System_AppDomain_[Get|Set]Data functions, 
11002         don't use the ad pointer before checking if it's NULL (g_assert).
11003
11004 2006-05-09  Zoltan Varga  <vargaz@gmail.com>
11005
11006         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Remove
11007         a redundant (and incorrect) addref. Hopefully fixes sn.exe on windows.
11008
11009         * marshal.c: Allocate all signatures from mempools.
11010
11011         * marshal.c: Allocate some more signatures from mempools.
11012
11013 2006-05-09  Miguel de Icaza  <miguel@novell.com>
11014
11015         * object.c (mono_load_remote_field): The code used to provide a
11016         temporary variable for returning results if the user did not
11017         provide a result pointer.  But our temporary variable was allocted
11018         on the satck.
11019
11020         Fix calling code to always pass a result area.   Coverity ID 103.
11021
11022 2006-05-06  Zoltan Varga  <vargaz@gmail.com>
11023
11024         * threads.c (ves_icall_System_Threading_Interlocked_Add_Int): Return the new
11025         value, not the old. Fixes #78312.
11026         (ves_icall_System_Threading_Interlocked_Add_Long): Ditto.
11027
11028         * class.c (mono_bounded_array_class_get): Allocate data from the image mempool.
11029         (mono_ptr_class_get): Ditto. Also change the cache from a global one to a 
11030         per-image cache.
11031
11032         * assembly.c (mono_assembly_close): Free image->references.
11033
11034         * assembly.c (mono_assembly_names_equal): Fix a warning.
11035         (mono_assemblies_cleanup): Cleanup more global data.
11036
11037         * metadata-internals.h (MonoImage): Add 'ptr_cache'.
11038
11039         * image.c (mono_image_close): Free up the contents of 'array_cache', free up
11040         ptr_cache and image->modules.
11041
11042         * image.c (mono_image_init): Allocate array_cache lazily.
11043         
11044 2006-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11045
11046         * assembly.c: use GetCurrentThreadId for the hash, as GetCurrentThread
11047         behavior was changed recently and has bad side effects.
11048
11049 2006-05-05  Zoltan Varga  <vargaz@gmail.com>
11050
11051         * assembly.c (mono_assembly_open_full): Add a missing mono_image_close ().
11052         
11053         * assembly.c (mono_assembly_close): Remove a debug printf.
11054
11055         * profiler.c (create_profiler): Use mono_aligned_addr_hash.
11056
11057         * metadata-internals.h image.c assembly.c: Change the reference counting scheme
11058         to also allow for temporary references between mono_image_open ()/close ().
11059
11060         * domain.c (get_runtimes_from_exe): Add a FIXME.        
11061
11062 2006-05-04  Zoltan Varga  <vargaz@gmail.com>
11063
11064         * marshal.c: Fix support for dynamic methods.
11065
11066         * appdomain.c (mono_runtime_cleanup): Call mono_marshal_cleanup ().
11067
11068         * marshal.c (mono_marshal_cleanup): New cleanup function.
11069
11070         * marshal.c: Rewrite the wrapper code to allocate most of its memory from the 
11071         image mempools.
11072
11073         * class.c (mono_class_init): Fix leaking class->nested_classes.
11074
11075         * metadata-internals.h (MonoImage): Add a couple of new wrapper caches.
11076
11077         * image.c (mono_image_init): Initialize the new cashes.
11078
11079         * image.c (mono_image_close): Destroy the new cashes.
11080
11081         * marshal.c: Get rid of most of the static caches in favor of per-image caches.
11082
11083         * mempool.c (mono_mempool_strdup): New helper function.
11084
11085         * class-internals.h: Add prototype for mono_loader_unlock ().
11086
11087         * domain.c (mono_jit_info_table_find): Fix a warning.
11088         (mono_debugger_check_runtime_version): Ditto.
11089
11090         * rawbuffer.h rawbuffer.c metadata-internals.h metadata.c class-internals.h 
11091         class.c loader.c image.h image.c assembly.h assembly.c: Add init () and cleanup ()
11092         functions to these modules.
11093
11094         * domain-internals.h domain (mono_cleanup): New internal method to cleanup most
11095         metadata modules.
11096         
11097         * marshal.c (mono_free_bstr): Fix a warning.
11098
11099         * assembly.c (mono_assembly_open_full): Fix another small leak.
11100
11101         * object.c: Fix some unload leaks in the remoting code.
11102
11103         * object-internals.h object-internal.c (mono_string_to_utf8_mp): New helper
11104         function.
11105
11106         * assembly.c (mono_assembly_close): Fix a leak when unloading dynamic assemblies.
11107
11108         * reflection.c: Fix some unload leaks in dynamic assemblies.
11109
11110 2006-05-02  Jonathan Chambers  <jonathan.chambers@ansys.com>
11111
11112         * marshal.c: Add BSTR support on Win32 (all changes under MIT X11)
11113         * marshal.h: Add BSTR support on Win32
11114         * icall.c: Add BSTR icalls
11115         * metadata.h: Add BSTR enums
11116
11117 2006-04-28  Miguel de Icaza  <miguel@novell.com>
11118
11119         Work to catch the crash from #76795 and turn it into an
11120         exception.   As I stubbed out pieces of the VisualBasic support,
11121         I found a number of places where the code was failing and I added
11122         checks to those places. 
11123         
11124         * metadata.c (do_mono_metadata_parse_generic_class): Make this
11125         function return a status code.  If we fail to parse the signature
11126         from mono_metadata_parse_generic_inst, return FALSE.
11127
11128         * loader.c (mono_get_method_from_token): If we fail to load the
11129         method (mono_class_get) return NULL.   
11130
11131         * (method_from_memberref): Return NULL if we are unable to parse
11132         the method signature
11133
11134         (mono_loader_error_prepare_exception): Since we now use the
11135         loader_error flag internally to stop processing, and obtaining
11136         exceptions that might be thrown will walk this code path the
11137         proper way of going from a MonoLoaderError into a
11138         MonoException was convoluted.   This new routine encapsulates the
11139         process of turning the error into an exception and *clearing* the
11140         error afterwards.
11141         
11142 2006-04-27  Miguel de Icaza  <miguel@novell.com>
11143
11144         Work to catch the crashes from 75075 (cope in Assembly.GetTypes
11145         with missing assemblies), and to cope with:
11146
11147                 * Missing fieldref from a non-existing assembly.
11148                 * Missing methodref from a non-existing assembly.
11149
11150         The first batch of work to address *some* of the issues from 76661.
11151         
11152         * object.c (mono_class_create_runtime_vtable): If we fail to
11153         initialize the class raise the exception here. 
11154
11155         * metadata.c (mono_class_get_overrides_full): If any methods fail
11156         to load return the failure to the caller.
11157
11158         * assembly.c: Use REFERENCE_MISSING instead of (gpointer) -1 for
11159         flagging assemblies that failed to load.   
11160
11161         Do not crash if we are unable to load the assembly.
11162
11163         (mono_assembly_close): Do nothing with REFERENCE_MISSING
11164         assemblies. 
11165
11166         * loader.c (mono_loader_set_error_type_load): Change the
11167         convention to always pass unallocated strings, so we make our own
11168         copies (I know our own code had duplicated strings before, but
11169         this keeps the normal conventions).
11170         (method_from_memberref): Call mono_loader_set_error_method_load
11171         for all possible failures of loading the class. 
11172         Remove assert, turn into a loader error.
11173
11174         (mono_loader_error_to_exception): Move this routine from mini
11175         (mini_loader_error_to_exception) there was no need to have that in
11176         mini. 
11177
11178         * class.c (mono_class_from_typeref): If we were not able to load
11179         the assembly with mono_assembly_load_reference, call the
11180         mono_loader_set_error_type_load to register the problem.
11181
11182         (mono_class_setup_fields): If we fail to load the type from
11183         mono_metadata_parse_type_full, call mono_class_set_failure and
11184         break from the loop.
11185
11186         If class->exception_type is set, we do not layout the fields as
11187         that might crash the runtime, and instead return (from breaking
11188         from the previous loop).
11189
11190         (mono_class_setup_vtable): This now returns a boolean indicating
11191         whether the table was properly setup.   The decision is driven by
11192         mono_class_get_overrides_full which might run into non-existing
11193         methods. 
11194         
11195         (mono_class_init): Returns TRUE on success or FALSE if there was a
11196         problem in loading the type (incorrect assemblies, missing
11197         assemblies, methods, etc).
11198
11199         When we call mono_class_setup_fields we also check for a potential
11200         error inside this call (either a class exception or a general
11201         loader exception).
11202
11203         (mono_class_create_from_typedef): If the parent fails to load
11204         (calling mono_class_get_full) return NULL.
11205         
11206         ** Important **
11207
11208         calls to mono_metadata_parse_type_full should be checked
11209         everywhere and set the mono_class_set_failure
11210         (MONO_EXCEPTION_TYPE_LOAD) if we are not able to get the type.
11211
11212         The current patch checks the places where my manually constructed
11213         tests show the errors are showing up, but we should do it
11214         everywhere. 
11215
11216         ** Important2 **
11217
11218         mono_class_init return values should be tested everywhere, like
11219         the previous case this is something that we should audit
11220         everywhere and not only on the cases exposed by the tests I
11221         created. 
11222
11223 2006-04-26  Miguel de Icaza  <miguel@novell.com>
11224
11225         * file-io.c (ves_icall_System_IO_MonoIO_Open): Remove `async'
11226         boolean parameter and instead pass the information on `options'
11227         parameter (FileOptions).
11228
11229         * icall.c: Register the new signature for MonoIO.Open.
11230
11231         * debug-helpers.c (dis_one): Trying to understand how coverity
11232         works.  Fix Run 5, item 78.
11233
11234 2006-04-26  Dick Porter  <dick@ximian.com>
11235
11236         * socket-io.c (hostent_to_IPHostEntry2): Explicitly check for NULL
11237         dereference.
11238
11239 2006-04-25  Martin Baulig  <martin@ximian.com>
11240
11241         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 56.
11242
11243         * threads.c (mono_thread_attach): Set `thread->stack_ptr' and call
11244         debugger_thread_created().
11245         (debugger_gc_push_all_stacks): Don't handle the main thread in any
11246         special way.
11247         (mono_debugger_init_threads): Removed the `main_thread_stack' arg.
11248         (mono_debugger_finalize_threads): New function; undo the effects
11249         of mono_debugger_init_threads().
11250         (mono_debugger_create_all_threads): Removed.
11251
11252 2006-04-24  Zoltan Varga  <vargaz@gmail.com>
11253
11254         * image.c (mono_image_close): Tidy up trace messages.
11255
11256         * assembly.c (mono_assembly_close): Ditto.
11257
11258         * assembly.c (mono_assembly_close): Clear out image->assembly so the image
11259         no longer references an already freed assembly. Fixes #78168.
11260
11261 2006-04-21  Dick Porter  <dick@ximian.com>
11262
11263         * threads.c (mono_thread_detach): Fix reference counting when
11264         detaching threads.
11265
11266 2006-04-21  Zoltan Varga  <vargaz@gmail.com>
11267
11268         * icall.c (ves_icall_System_Enum_ToObject): Improve exception messages. Fixes
11269         #78155.
11270
11271 2006-04-19  Zoltan Varga  <vargaz@gmail.com>
11272
11273         * marshal.c (mono_type_to_ldind): New helper function moved here from mini.c
11274         (mono_type_to_stind): Ditto.
11275
11276         * marshal.c: Use the new helper functions to simplify code.
11277
11278         * image.c (mono_image_close): Add some code for help debug assembly unloading
11279         problems.
11280
11281         * metadata.c (mono_metadata_parse_type_full): Allocate MonoType's from the
11282         image mempool.
11283
11284         * assembly.c (mono_assembly_open_full): Invoke the load hook when the
11285         assembly was already loaded in another appdomain. Fixes #78083.
11286
11287 2006-04-13  Zoltan Varga  <vargaz@gmail.com>
11288
11289         * assembly.c (mono_assembly_load_reference): Increase the refcount of the
11290         referenced assemblies.
11291         (mono_assembly_close): Decrease the refcount of the referenced assemblies.
11292
11293         * domain.c (mono_domain_free): Add a trace message.
11294
11295         * appdomain.c (add_assemblies_to_domain): Ditto.        
11296
11297         * metadata-internals.h: (_MonoAssembly): Modify the meaning of the ref_count
11298         field.  
11299
11300 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
11301
11302         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): Fix image reference counting.
11303
11304 2006-04-12  Martin Baulig  <martin@ximian.com>
11305
11306         * threads.c: Use `MONO_DEBUGGER_SUPPORTED' as the conditional, not
11307         `USE_INCLUDED_LIBGC'.   
11308
11309 2006-04-12  Zoltan Varga  <vargaz@gmail.com>
11310
11311         * image.c (canonicalize_path): Avoid calling strncpy on overlapping strings if
11312         the patch contains ../ and a small directory name later. Hopefully fixes
11313         #78035.
11314
11315 2006-04-10  Martin Baulig  <martin@ximian.com>
11316
11317         Clean up the debugger's thread-handling code.
11318
11319         The debugger's thread-handling code has been moved from
11320         ../mini/debug-debugger.c to threads.c.  We now iterate directly
11321         over the `threads' hash, keep track of exiting threads and also
11322         use proper locking.
11323
11324         We can now debug XSP and XSP based applications with the debugger.
11325
11326         * object-internals.h (MonoThread): Added `gpointer end_stack'.
11327
11328         * threads.h
11329         (MonoThreadCallbacks): Removed; this was only used by the debugger.
11330         (mono_install_thread_callbacks): Likewise.      
11331
11332         * threads.c (mono_thread_callbacks): Removed.
11333         (debugger_thread_created, debugger_thread_exited): New static functions.
11334         (start_wrapper): Call debugger_thread_created().
11335         (thread_cleanup): Call debugger_thread_exited().
11336         (mono_gc_stop_world, mono_gc_start_world): Removed; this was never used.
11337         (mono_debugger_init_threads): New public function.
11338         (debugger_thread_vtable): Moved here from debug-debugger.c; we now
11339         iterate directly over the `threads' hash and also use proper locking.
11340
11341         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped to 55.
11342
11343         * mono-debug-debugger.h
11344         (MonoDebuggerEvent): Added MONO_DEBUGGER_EVENT_THREAD_EXITED.
11345
11346 2006-04-10  Zoltan Varga  <vargaz@gmail.com>
11347
11348         * reflection.c (encode_cattr_value): Fix handling of parameter type=object, 
11349         argument type=array. Fixes #78057.
11350
11351 2006-04-10  Atsushi Enomoto  <atsushi@ximian.com>
11352
11353         * culture-info-table.h : regenerated. Fixed bug #69652.
11354
11355 2006-04-07  Zoltan Varga  <vargaz@gmail.com>
11356
11357         * loader.c metadata.c: Reapply a variant r59116.
11358         
11359         * loader.c metadata.c: Revert r59116 to see if it fixes the breakage.
11360
11361         * class.c (mono_class_setup_interface_offsets): New internal function.
11362
11363         * reflection.c (ensure_runtime_vtable): Setup interface offsets for dynamic
11364         interfaces too. Fixes #77398.
11365
11366         * reflection.c (encode_cattr_value): Add support for 
11367         parameter type=object, argument type=array.
11368         (load_cattr_value): Ditto. Fixes #77916.
11369
11370         * marshal.c (emit_object_to_ptr_conv): Add support for ARRAY_BYVALCHARARRAY.
11371         (emit_ptr_to_object_conv): Ditto. Fixes #77960.
11372
11373         * metadata.c (mono_type_to_unmanaged): Use ARRAY_BYVALCHARARRAY when converting
11374         a byval char array and CharSet is Ansi.
11375
11376         * metadata.h: Add new marshalling conversion ARRAY_BYVALCHARARRAY.
11377
11378 2006-04-06  Zoltan Varga  <vargaz@gmail.com>
11379
11380         * metadata.c: Add some locking comments.
11381         
11382         * metadata.c (mono_metadata_signature_alloc): Allocate signatures in the image
11383         mempool.
11384         (mono_metadata_free_method_signature): Don't free the signature itself.
11385
11386         * loader.c (mono_free_method): Don't free the signature in non-dynamic methods. 
11387
11388         * assembly.c (mono_assembly_open_full): Avoid the situation where two assemblies
11389         reference the same MonoImage.
11390         (mono_assembly_load_from_full): Add an assert.
11391
11392 2006-04-05  Zoltan Varga  <vargaz@gmail.com>
11393
11394         * image.c (mono_image_close): Don't put the image we are about to free into the
11395         loaded_images_guid_hash.
11396
11397         * marshal.c (mono_mb_emit_ptr): Refactor a common code sequence into this function
11398         to reduce code duplication.
11399
11400         * marshal.c: Register the native functions called by this module as icalls, to
11401         somewhat centralize the creation of MonoMethodSignature's.
11402
11403         * loader.c (mono_method_signature): Add a cache for method signatures.
11404
11405         * metadata.c (mono_metadata_get_param_attrs): New helper function to return
11406         the parameter attributes of a method.
11407         (mono_metadata_parse_method_signature_full): Refactored the computation of
11408         parameter attributes into a separate function. Also avoid one allocation in
11409         most cases.
11410
11411         * assembly.c (mono_assembly_close): Ditto.
11412
11413         * image.c (mono_image_close): Log trace messages with INFO level.
11414
11415         * metadata-internals.h (MonoImage): Add a new 'method_signature' cache.
11416
11417         * image.c reflection.c: Correct reference counting of image modules.
11418         
11419         * metadata.c (mono_metadata_interfaces_from_typedef_full): Allocate the result
11420         of this function from the image mempool.
11421         
11422         (mono_metadata_parse_type_full): Remove the mode != MONO_PARSE_PARAM restriction
11423         to allow more cached types to be used.
11424
11425         * mono-debug.c (mono_debug_add_method): Appled patch from
11426         David S. Miller  <davem@sunset.davemloft.net>: Access 
11427         minfo->lexical_blocks[] entry elements using read32().
11428
11429 2006-04-04  Zoltan Varga  <vargaz@gmail.com>
11430
11431         * loader.c (mono_free_method): No longer free the method header for non-dynamic
11432         methods as it is allocated from the mempool.
11433
11434         * metadata.c (mono_metadata_parse_mh_full): Allocate method headers from the
11435         image mempool.
11436
11437         * metadata-internals.h: Add comments describing the reference counting scheme
11438         used for MonoImage and MonoAssembly.
11439
11440         * image.c assembly.c reflection.c: Rework reference counting of images and 
11441         assemblies so they are freed when the runtime is shut down. Free some 
11442         additional memory structures when an image is unloaded.
11443         
11444 2006-04-03  Zoltan Varga  <vargaz@gmail.com>
11445
11446         * class.c loader.c reflection.c: Allocate more data structures in
11447         the image mempool.
11448
11449 2006-03-31  Miguel de Icaza  <miguel@novell.com>
11450
11451         * icall.c
11452         (ves_icall_System_Environment_InternalSetEnvironmentVariable): Fix
11453         build on pre glib 2.4 systems.
11454
11455 2006-03-31  Zoltan Varga  <vargaz@gmail.com>
11456
11457         * icall.c (ves_icall_System_Environment_InternalSetEnvironmentVariable): New icall.
11458
11459         * icall.c: Fix some warnings.
11460
11461 2006-03-29  Atsushi Enomoto  <atsushi@ximian.com>
11462
11463         * culture-info-table.h : regenerated.
11464
11465 Wed Mar 29 18:24:42 CEST 2006 Paolo Molaro <lupus@ximian.com>
11466
11467         * threads.c, object-internals.h, verify.c: changed the culture caching
11468         code to use a normal MonoArray for storage so the GC can keep track of
11469         them easily. Fixed bits of the cache logic, too and simplified the
11470         code.
11471
11472 Wed Mar 29 17:18:16 CEST 2006 Paolo Molaro <lupus@ximian.com>
11473
11474         * gc-internal.h, null-gc.c, boehm-gc.c, gc.c: enable the finalizer
11475         thread for non-Boehm GCs.
11476
11477 Wed Mar 29 17:10:05 CEST 2006 Paolo Molaro <lupus@ximian.com>
11478
11479         * domain.c, object.c, domain-internals.h: reduce the amount of memory
11480         needed to keep track of the data for static fields.
11481
11482 2006-03-29  Raja R Harinath  <rharinath@novell.com>
11483
11484         Fix #75172
11485         * icall.c (ves_icall_Type_GetMethodsByName): Don't use vtable_size
11486         for interface classes.  Use 'num_methods' instead.
11487         (ves_icall_Type_GetPropertiesByName): Likewise.  Setup vtable
11488         before using '->vtable_size' field.
11489
11490 Wed Mar 29 12:53:28 CEST 2006 Paolo Molaro <lupus@ximian.com>
11491
11492         * domain.c, object.c, domain-internals.h: proxy_vtable_hash
11493         doesn't contain managed pointers, so use a normal hashtable.
11494
11495 Mon Mar 27 11:15:00 CEST 2006 Paolo Molaro <lupus@ximian.com>
11496
11497         * reflection.c, class-internals.h, domain.c: fixed handling of types
11498         used as values for objects in custom attributes (bug #77915):
11499
11500 2006-03-24  Martin Baulig  <martin@ximian.com>
11501
11502         * class.c (mono_class_setup_fields): Added support for generic
11503         instances; fixes #77580.
11504
11505 2006-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11506
11507         * assembly.c: publickeytoken is case insensitive. Fixes bug #77898.
11508
11509 2006-03-24  Dick Porter  <dick@ximian.com>
11510
11511         * file-io.c (get_file_attributes): More stat macro breakage.
11512         Fixes bug 77759.
11513
11514 Fri Mar 24 15:26:00 CET 2006 Paolo Molaro <lupus@ximian.com>
11515
11516         * profiler.c: added the file=filename option in the default profiler
11517         to output the profile data to filename.
11518
11519 2006-03-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11520
11521         * icall.c: CodeBase returns '/' instead of '\\' on windows. Fixes
11522         bug #77877.
11523
11524 2006-03-22  Martin Baulig  <martin@ximian.com>
11525
11526         * reflection.c (fieldbuilder_to_mono_class_field): Don't store the
11527         allocated `MonoClassField *' in `fb->handle'.
11528
11529 Tue Mar 21 17:19:37 CET 2006 Paolo Molaro <lupus@ximian.com>
11530
11531         * class.c, image.c, metadata-internals.h: implemented new mechanism to
11532         allocate interface ID to save memory and allow better ID reuse on
11533         appdomain unload. setup_generic_vtable () removal from Martin.
11534
11535 Tue Mar 21 15:54:30 CET 2006 Paolo Molaro <lupus@ximian.com>
11536
11537         * object.h, appdomain.c, domain.c, exception.c, icall.c,
11538         locales.c, marshal.c, object.c, reflection.c, threadpool.c,
11539         threads.c: introduced MONO_OBJECT_SETREF() macro to be able to insert
11540         write barriers for reference stores with managed objects accessed with
11541         C structures in the runtime and in embedding programs.
11542
11543 2006-03-20  Raja R Harinath  <rharinath@novell.com>
11544
11545         * icall.c (ves_icall_Type_GetInterfaces): Avoid using
11546         'interface_id' and 'max_interface_id' fields of MonoClasses
11547         representing open generic types.
11548
11549 Fri Mar 17 18:06:06 CET 2006 Paolo Molaro <lupus@ximian.com>
11550
11551         * object.h, object.c, icall.c: added functions to deal with
11552         storing valuetypes that contain references in managed objects.
11553         * reflection.c, string-icalls.c, threads.c, marshal.c: small
11554         fixes and comments around uses of mono_array_addr ().
11555
11556 Thu Mar 16 17:16:45 CET 2006 Paolo Molaro <lupus@ximian.com>
11557
11558         * object.h, icall.c, monitor.c: object.GetHashCode ()
11559         implementation that supports the moving garbage collector.
11560
11561 Wed Mar 15 16:31:38 CET 2006 Paolo Molaro <lupus@ximian.com>
11562
11563         * icall.c, threads-types.h, threads.c: implemented finalizer for
11564         LocalDataStoreSlot.
11565
11566 2006-03-15  Zoltan Varga  <vargaz@gmail.com>
11567
11568         * metadata.c (mono_type_size): Add a fixme.
11569         (mono_type_stack_size): Ditto.
11570
11571         * object-internals.h (MonoReflectionAssemblyBuilder): Added 
11572         'type_forwarders' field.
11573
11574         * tabledefs.h (TYPE_ATTRIBUTE_FORWARDER): Added new (undocumented) type
11575         attribute from net 2.0.
11576
11577         * object.c (mono_vtable_get_static_field_data): Moved this to object.c
11578         from class.c.
11579
11580         * class.c (mono_class_setup_fields): Fix a warning.
11581         
11582         * class.c (mono_class_from_name): Add support for assemblyref entries
11583         in the EXPORTEDTYPE table.
11584
11585         * reflection.c: Add support for handling type forwarders under net 2.0.
11586
11587         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.       
11588         
11589 2006-03-14  Zoltan Varga  <vargaz@gmail.com>
11590
11591         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Avoid
11592         overwriting entries in ModuleBuild->types, also clean up the code
11593         a little. Fixes #77774.
11594
11595 Tue Mar 14 20:21:18 CET 2006 Paolo Molaro <lupus@ximian.com>
11596
11597         * domain.c, assembly.c, metadata-internals.h, class-internals.h:
11598         load friend assembly info when present.
11599
11600 2006-03-14  Raja R Harinath  <rharinath@novell.com>
11601
11602         Fix crasher on gtest-158.cs.
11603         * metadata.c (mono_metadata_parse_type_full): Avoid canonicalizing
11604         the return value if the MonoClass we want is yet in an
11605         inconsistent state.
11606         * class.c (mono_class_create_from_typedef): Add an comment
11607         explaining an order dependency between mono_class_setup_parent and
11608         mono_class_setup_mono_type.
11609
11610 Mon Mar 13 21:13:27 CET 2006 Paolo Molaro <lupus@ximian.com>
11611
11612         * class.c: documentation updates and events bug fix.
11613
11614 Mon Mar 13 17:28:07 CET 2006 Paolo Molaro <lupus@ximian.com>
11615
11616         * class.c: some cleanup, locking fixes.
11617
11618 Mon Mar 13 10:46:17 CET 2006 Paolo Molaro <lupus@ximian.com>
11619
11620         * class.c: fix the generics code to setup nested
11621         type info to the instantiated type (bug #77770).
11622
11623 Sun Mar 12 16:21:31 CET 2006 Paolo Molaro <lupus@ximian.com>
11624
11625         * marshal.c: fixed a few type correctness issues.
11626
11627 Sat Mar 11 20:14:44 CET 2006 Paolo Molaro <lupus@ximian.com>
11628
11629         * loader.c: the Set/Get/Addrtess array methods should be public.
11630
11631 2006-03-11  Zoltan Varga  <vargaz@gmail.com>
11632
11633         * icall.c (mono_register_jit_icall_wrapper): Fix a warning.
11634         
11635         * icall.c (mono_register_jit_icall_wrapper): Register the argument, not
11636         info->wrapper.
11637
11638 2006-03-10  Zoltan Varga  <vargaz@gmail.com>
11639
11640         * icall.c (mono_register_jit_icall): Allocate the structure using g_new0.
11641
11642         * class-internals.h (MonoJitICallInfo): Add 'trampoline' field used by the JIT.
11643
11644         * mempool.c (mono_mempool_alloc): Speed this up a bit.
11645         (mono_mempool_alloc0): Ditto.
11646
11647 2006-03-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11648
11649         * socket-io.c:
11650         (create_object_from_sockaddr): it was allocating 4 extra bytes
11651         for the AF_UNIX data. Fixes bug #77747.
11652
11653 2006-03-09  Zoltan Varga  <vargaz@gmail.com>
11654
11655         * icall.c (ves_icall_System_MonoMethodInfo_get_retval_marshal): New icall.
11656
11657 2006-03-09  Dick Porter  <dick@ximian.com>
11658
11659         * file-io.c (get_file_attributes): Use S_ISLNK not "& S_IFLNK".
11660         Fixes bug 76966 again.
11661
11662 2006-03-07  Peter Dennis Bartok  <pbartok@novell.com>
11663
11664         * verify.c (dtfinfo_fields): Updated to match new (serializable) field
11665         names from r57532
11666         * appdomain.c: Bumped corlib version to 48 (due to r57532)
11667
11668 2006-03-07  Martin Baulig  <martin@ximian.com>
11669
11670         * object.c
11671         (mono_field_get_value_object): Add support for MONO_TYPE_GENERICINST.
11672
11673 2006-03-07  Martin Baulig  <martin@ximian.com>
11674
11675         * class.c
11676         (mono_class_get_full): Don't inflate TYPEDEF entries; fixes the
11677         regression introduced in r56970; see gtest-252.cs.
11678
11679         * loader.c (mono_get_method_constrained): Correctly handle generic
11680         methods; see gtest-253.cs.
11681
11682 2006-03-04  Zoltan Varga  <vargaz@gmail.com>
11683
11684         * icall.c (ves_icall_type_Equals): Handle NULLs. Fixes #77700.
11685
11686 2006-03-04  Martin Baulig  <martin@ximian.com>
11687
11688         * icall.c (ves_icall_MonoGenericClass_GetParentType): Dynamically
11689         compute the parent type at runtime, just like we're already doing
11690         it for interfaces.
11691
11692         * reflection.c
11693         (mono_reflection_bind_generic_parameters): Don't compute the
11694         parent type anymore.
11695
11696         * class-internals.h (MonoDynamicGenericClass): Removed `parent'.
11697
11698 2006-03-04  Martin Baulig  <martin@ximian.com>
11699
11700         * mono-debug-debugger.h
11701         (mono_debugger_create_notification_function): Allocate memory at
11702         runtime and return a pointer to it.
11703
11704 2006-03-03  Zoltan Varga  <vargaz@gmail.com>
11705
11706         * assembly.c: Fix windows build.
11707         
11708         * assembly.c: Fix build.
11709
11710         * assembly.c: Move the contents of os/{unix,win32}/util.c to this file. 
11711
11712         * gc_wrapper.h: Move the contents of os/gc_wrapper.h to this file.
11713         
11714 2006-03-03  Dick Porter  <dick@ximian.com>
11715
11716         * process.c
11717         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
11718         Check parameters before dereferencing them.  Fixes Aaron's part of
11719         bug 77393.
11720
11721 2006-03-03  Raja R Harinath  <rharinath@novell.com>
11722
11723         Fix performance regression.
11724         * loader.c (find_method_in_class): Add 'from_class' argument.
11725         Rename 'klass' argument to 'in_class'.  The signature is compared
11726         against the method in 'in_class', and the corresponding method is
11727         returned from 'from_class'.
11728         (find_method): Walk both 'in_class' and 'from_class' in parallel.
11729         (method_from_memberref) [PARENT_TYPESPEC]: Use it to walk the
11730         type definition and generic instantiation in parallel.
11731         (mono_get_method_constrained): Update to changes.
11732
11733 Thu Mar 2 12:27:41 CET 2006 Paolo Molaro <lupus@ximian.com>
11734
11735         * threads.c: make sure the domain is correct, too when doing
11736         mono_thread_attach ().
11737
11738 2006-03-01  Zoltan Varga  <vargaz@gmail.com>
11739
11740         * class.c (mono_class_create_from_typedef): Mark classes using CharSet.Auto as unicode on
11741         windows. Fixes #77683.
11742
11743 Wed Mar 1 20:09:25 CET 2006 Paolo Molaro <lupus@ximian.com>
11744
11745         * object.h, *: introduced specific way to set elements of an array
11746         of references to be used as write barrier. Still need to audit the
11747         uses of mono_array_addr.
11748
11749 2006-03-01  Miguel de Icaza  <miguel@novell.com>
11750
11751         * object-internals.h: New field to cache the assmebly name, patch
11752         from Tambet Ingo (tambet@ximian.com)
11753
11754 Wed Mar 1 19:13:30 CET 2006 Paolo Molaro <lupus@ximian.com>
11755
11756         * decimal.h, class-internals.h, metadata-internals.h,
11757         file-io.h: mark a few function declarations as internal, to
11758         reduce the number of PLT entries.
11759
11760 2006-02-28 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11761
11762         * file-io.c: fix typo in warning message.
11763
11764 Tue Feb 28 17:43:20 CET 2006 Paolo Molaro <lupus@ximian.com>
11765
11766         * loader.c: on unix, lookup the "*A" version of a function
11767         if charset is auto as a second option before failing.
11768
11769 2006-02-28  Raja R Harinath  <rharinath@novell.com>
11770
11771         * class.h (mono_class_inflate_generic_method): Revert to two
11772         argument version.
11773         * class-internals.h (MonoMethodInflated): Remove 'inflated' field.
11774         (mono_class_inflate_generic_method_full): Add.
11775         * class.c (mono_class_inflate_generic_method_full): Rename from
11776         'mono_class_inflate_generic_method'.  Don't set 'inflated' field.
11777         (mono_class_inflate_generic_method): New.  Wrapper around ..._full.
11778         * loader.c, reflection.c: Update to changes.
11779
11780 Sat Feb 25 17:57:21 CET 2006 Paolo Molaro <lupus@ximian.com>
11781
11782         * icall.c: const fixes and small improvements.
11783
11784 2006-02-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11785
11786         * threadpool.c: for asynchronous connect(), enable the same workaround
11787         for BSD 6 as for the Mac. Fixes bug #77637.
11788
11789 2006-02-24  Zoltan Varga  <vargaz@gmail.com>
11790
11791         * marshal.c (mono_marshal_free_asany): Fix handling of blittable
11792         formatted classes. Fixes #77524.
11793
11794 2006-02-24  Raja R Harinath  <rharinath@novell.com>
11795
11796         * class.c (inflate_generic_type): Add a couple more
11797         micro-optimizations.
11798         (inflate_generic_context): Don't use the 'gmethod' from
11799         'inflate_with'.
11800         (mono_class_inflate_generic_method): If the method has generic
11801         parameters, but the passed-in context doesn't have a 'gmethod',
11802         create one.  Use the possibly simplified generic instantiation
11803         from the declaring class instead of the one passed in.
11804
11805 2006-02-24  Raja R Harinath  <harinath@gmail.com>
11806
11807         Make generic method signature and method header handling lazy.
11808         * class.c (mono_class_inflate_generic_signature): Move to loader.c.
11809         (inflate_generic_header): Likewise.
11810         (mono_class_inflate_generic_method): Rewrite.  Add a 'klass_hint'
11811         parameter to avoid inflating types.
11812         (mono_get_inflated_method): Empty out.
11813         * class.h (mono_class_inflate_generic_method): Update to changes.
11814         * loader.c (mono_get_method_from_token): Don't parse signature for
11815         generic methods, nor methods of generic classes.
11816         (mono_method_signature): Rename from 'mono_method_signature'.
11817         Inflate signature on demand.
11818         (mono_method_get_header): Inflate method header on demand.
11819         * reflection.c: Update to changes.
11820
11821 2006-02-23  Raja R Harinath  <rharinath@novell.com>
11822
11823         * metadata.c (mono_metadata_inflate_generic_inst): If the
11824         instantiation is closed, don't bother expanding it in the new
11825         context.
11826         * class.c (inflate_generic_class): If the generic instantiation
11827         doesn't change after inflation, return the argument itself.
11828         (inflate_generic_type) [MONO_TYPE_MVAR, MONO_TYPE_VAR]:
11829         Add bounds checks.
11830         (inflate_generic_context): If neither the generic class nor the
11831         generic method instantiations change, return the original context.
11832         * reflection.c (mono_method_get_object): Do
11833         'mono_get_inflated_method' before accessing the ->klass field.
11834         (inflate_mono_method): Don't create a MonoGenericMethod unless
11835         necessary.
11836         (inflate_method): Don't pass a constructed type as the declaring
11837         type of a methodbuilder.
11838
11839 Thu Feb 23 11:57:54 CET 2006 Paolo Molaro <lupus@ximian.com>
11840
11841         * object.c: fix memory overwrite.
11842
11843 2006-02-22  Dick Porter  <dick@ximian.com>
11844
11845         * threads.c: Don't use G_GNUC_PRETTY_FUNCTION in debug messages,
11846         it doesn't work any more.
11847         (mono_threads_request_thread_dump): Fix unused variable warnings.
11848
11849 Wed Feb 22 15:08:44 CET 2006 Paolo Molaro <lupus@ximian.com>
11850
11851         * metadata.h, metadata-internals.h, monodiet.c, debug-helpers.c,
11852         mono-debug.c, profiler.c: cleanup: move MonoMethodHeader out of
11853         the public header file.
11854
11855 2006-02-21  Zoltan Varga  <vargaz@gmail.com>
11856
11857         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Fix writing past memory. Fixes #77613.
11858
11859 Tue Feb 21 19:55:11 CET 2006 Paolo Molaro <lupus@ximian.com>
11860
11861         * class-internals.h, object.c: reduce the size of MonoVTable
11862         and store the interface_offsets array at negative offsets.
11863
11864 Tue Feb 21 19:53:26 CET 2006 Paolo Molaro <lupus@ximian.com>
11865
11866         * metadata.c: tweak table descriptors data structures to reduce
11867         size and runtime relocations.
11868
11869 Tue Feb 21 14:52:13 CET 2006 Paolo Molaro <lupus@ximian.com>
11870
11871         * marshal.c: fix some types and opcodes to be type-safe
11872         in marshaling wrappers.
11873
11874 2006-02-21  Ankit Jain  <jankit@novell.com>
11875
11876         * metadata.h (mono_metadata_decode_signed_value): Add declaration.
11877
11878 2006-02-21  Raja R Harinath  <rharinath@novell.com>
11879
11880         * metadata.c (get_constraints): Relax debugging checks for monodis.
11881
11882 2006-02-21  Ankit Jain  <jankit@novell.com>
11883
11884         * metadata.c (mono_metadata_load_generic_params): Move the code
11885         checking for ambiguous generic params from here to mono/dis/get.c
11886         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Remove.
11887
11888 2006-02-21  Raja R Harinath  <harinath@gmail.com>
11889
11890         Fix assertion triggered when compiling nemerle.
11891         * class.c (mono_get_shared_generic_inst): Rename from
11892         get_shared_inst and make non-static.
11893         * loader.c (mono_get_shared_generic_method): New.  Used to create
11894         the MonoGenericContext-equivalent of a MonoGenericContainer.
11895         (mono_get_method_from_token): Initialize the 'context' field of
11896         the created MonoGenericContainer.
11897         * reflection.c (reflection_methodbuilder_to_mono_method): Likewise.
11898         * metadata.c (get_constraints): Add sanity check.
11899         * class-internals.h: Add new internal methods.
11900
11901         * reflection.c (verify_safe_for_managed_space): New sanity check.
11902         Currently checks that owner-less generic parameters aren't allowed
11903         in managed space.
11904         (mono_type_get_object): Use it.
11905         * icall.c (ves_icall_MonoType_GetGenericArguments): Remove checks
11906         that are now in mono_type_get_object.
11907         (ves_icall_MonoMethod_GetGenericArguments): Likewise.
11908
11909 2006-02-19  Raja R Harinath  <harinath@gmail.com>
11910
11911         * metadata.c (mono_type_create_from_typespec): Rename from
11912         mono_type_create_from_typespec_full.  Remove MonoGenericContainer*
11913         argument and caching of types in the generic container.
11914         (unwrap_arrays, find_generic_param): Remove.
11915         * metadata-internals.h: Update.
11916         * class-internals.h (_MonoGenericContainer): Remove 'types' field.
11917
11918 2006-02-18  Zoltan Varga  <vargaz@gmail.com>
11919
11920         * class.c (mono_class_get_exception_for_failure): Fix a warning.
11921
11922         * marshal.c (mono_marshal_emit_native_wrapper): Handle FNPTR args and
11923         return values. Fixes #77581.
11924
11925         * class.c (mono_fnptr_class_get): Switch name and name_space.
11926
11927         * marshal.c (mono_marshal_asany): Fix marshalling of blittable formatted
11928         classes and add support for [In, Out] attributes.
11929         (mono_marshal_free_asany): Ditto. Fixes #77524.
11930
11931 2006-02-18  Raja R Harinath  <harinath@gmail.com>
11932
11933         * class.c (mono_class_from_generic_parameter): Make more robust to
11934         incomplete MonoGenericContainers from monodis.
11935
11936 Fri Feb 17 16:10:34 CET 2006 Paolo Molaro <lupus@ximian.com>
11937
11938         * class-internals.h: added some more exception types.
11939         * class.c, metadata.c: added a few checks to handle missing
11940         types.
11941
11942 2006-02-17  Raja R Harinath  <rharinath@novell.com>
11943
11944         Use owner-less generic-params some more.
11945         * class.c (my_mono_class_from_generic_parameter): Remove.
11946         (mono_class_from_generic_parameter): Handle null image,
11947         param->name and param->owner.
11948         (mono_class_from_mono_type): Update.
11949         (mono_class_create_from_typespec): Remove 'container' parameter.
11950         If that parameter is non-null, the result is always inflated by
11951         'mono_class_get_full' anyway.
11952         (mono_class_get): Rename from _mono_class_get.  Remove 'container'
11953         parameter.
11954         (mono_class_get_full): Update.
11955
11956         * class.c (inflate_generic_type) [GENERICINST]: If the generic
11957         instance is not open, don't bother inflating.
11958         (mono_class_setup_fields): Hoist some loop-invariants.  Don't
11959         parse metadata for inflated classes.
11960         (_mono_class_get): Change GenericContext* parameter to
11961         GenericContainer*.
11962         (mono_class_create_from_typespec): Likewise.  Simplify, and
11963         implement trivially.  All the cases are handled in
11964         mono_class_from_mono_type.  Don't inflate returned class.
11965         (mono_class_get_full): Delegate GENERICINST optimization to
11966         inflate_generic_type.
11967         (mono_ldtoken) [TOKEN_TYPE_SPEC]: Use mono_class_get_full() here too.
11968
11969 2006-02-16  Dick Porter  <dick@ximian.com>
11970
11971         * socket-io.c (create_object_from_sockaddr): Fix typo.
11972         (create_sockaddr_from_object): Check array lengths before
11973         potentially accessing items off the end.
11974         (ves_icall_System_Net_Sockets_Socket_Receive_internal)
11975         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal)
11976         (ves_icall_System_Net_Sockets_Socket_Send_internal)
11977         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Fix buffer
11978         length checks to avoid wraparound overflows.
11979         (ves_icall_System_Net_Sockets_Socket_Select_internal): Check the
11980         contents of the array of sockets
11981         (hostent_to_IPHostEntry2)
11982         (addrinfo_to_IPHostEntry): IPv6 printed addresses can be 48 bytes.
11983         Check return value of inet_ntop ().
11984         (addrinfo_to_IPHostEntry): Fix typo
11985
11986 2006-02-16  Raja R Harinath  <rharinath@novell.com>
11987
11988         Type metadata parsing doesn't use generic-instantiation information.
11989         * metadata.c (mono_metadata_parse_array_full): Change
11990         MonoGenericContext* parameter to MonoGenericContainer*.
11991         (mono_metadata_parse_type_full): Likewise.
11992         (mono_type_create_from_typespec_full): Likewise.
11993         (mono_metadata_parse_mh_full): Likewise.
11994         (mono_metadata_parse_generic_inst): Likewise.
11995         (do_mono_metadata_parse_generic_class): Likewise.
11996         (do_mono_metadata_parse_type): Likewise.
11997         * metadata-internals.h: Update to changes.
11998         * class.c (mono_class_find_enum_basetype): Likewise.
11999         (mono_class_setup_fields): Likewise.
12000         (mono_class_create_from_typespec): Likewise.
12001         * loader.c (method_from_methodspec): Likewise.
12002         (mono_get_method_from_token): Likewise.
12003         (mono_method_get_header): Likewise.
12004
12005 Thu Feb 16 15:42:13 CET 2006 Paolo Molaro <lupus@ximian.com>
12006
12007         * marshal.c: handle additional GENERICINST case (patch from
12008         Thong Nguyen <tum@veridicus.com>).
12009         Fix a few cases where LDIND_I/STIND_I was used for references.
12010
12011 2006-02-16  Raja R Harinath  <rharinath@novell.com>
12012
12013         * reflection.c (mono_reflection_get_token): Remove unused variable.
12014
12015 2006-02-16  Martin Baulig  <martin@ximian.com>
12016
12017         * reflection.c (mono_reflection_get_token): Add support for fields
12018         in instantiated generic types.
12019
12020         * icall.c
12021         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): Removed.
12022
12023 2006-02-15  Martin Baulig  <martin@ximian.com>
12024
12025         * icall.c
12026         (ves_icall_MonoMethod_get_HasGenericParameters): Removed.
12027         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): Removed.
12028         (ves_icall_MonoMethod_get_IsGenericMethod): New icall.
12029         (ves_icall_MonoMethod_get_IsGenericMethodDefinition): New icall.
12030
12031 Wed Feb 15 16:19:24 CET 2006 Paolo Molaro <lupus@ximian.com>
12032
12033         * class.c, metadata.c, metadata.h, object.c, icall.c,
12034         marshal.c: changed mono_type_get_underlying_type () to do
12035         the sensible thing and introduced mono_type_generic_inst_is_valuetype().
12036         Fixed handling of instantiated generic valuetypes (bug #75479).
12037
12038 2006-02-15  Raja R Harinath  <rharinath@novell.com>
12039
12040         * metadata.c (mono_metadata_decode_signed_value): Simplify.
12041         Delegate to mono_metadata_decode_value, and work on the returned value.
12042
12043         * icall.c (ves_icall_MonoType_GetGenericArguments):
12044         Add consistency check here too.
12045         
12046 2006-02-15  Ankit Jain  <jankit@novell.com>
12047
12048         * metadata.c (mono_metadata_decode_signed_value): Use gint* instead of
12049         char/short etc.
12050
12051 2006-02-15  Ankit Jain  <jankit@novell.com>
12052
12053         * metadata.c (mono_metadata_decode_signed_value): New function to decode
12054         signed values, used only for representing lower bounds of arrays.
12055         (mono_metadata_parse_array_full): Use new
12056         mono_metadata_decode_signed_value to decode lower bounds.
12057
12058 2006-02-14  Martin Baulig  <martin@ximian.com>
12059
12060         * reflection.c
12061         (mono_reflection_get_token): Support "MonoGenericMethod" and
12062         "MonoGenericCMethod" and allow generic instances / methods.
12063
12064 2006-02-11  Zoltan Varga  <vargaz@gmail.com>
12065
12066         * console-io.c (ves_icall_System_ConsoleDriver_GetTtySize): New icall
12067         to obtain the terminal size using an ioctl.
12068
12069         * object.c (mono_nullable_init): Revert this as nullable reference
12070         types are not valid.
12071         (mono_nullable_box): Ditto.
12072
12073 2006-02-09  Dick Porter  <dick@ximian.com>
12074
12075         * threads.c (mono_thread_detach): Drop a reference to the thread
12076         we're detaching.
12077
12078 2006-02-09  Zoltan Varga  <vargaz@gmail.com>
12079
12080         * object.c (mono_nullable_init): Handle nullable reference types.
12081         (mono_nullable_box): Ditto. Fixes #77446.
12082
12083 2006-02-07  Martin Baulig  <martin@ximian.com>
12084
12085         * icall.c (ves_icall_MonoMethod_get_IsGenericMethodDefinition): Removed.
12086
12087 2006-02-07  Ankit Jain  <jankit@novell.com>
12088
12089         * socket-io.h (MonoSocketFlags): New. Copy of System.Net.Sockets.SocketFlags
12090         * socket-io.c (convert_socketflags): New. Convert SocketFlags to native ones.
12091         (ves_icall_System_Net_Sockets_Socket_Receive_internal): Convert flags using convert_socketflags.
12092         (ves_icall_System_Net_Sockets_Socket_ReceiveFrom_internal): Likewise.
12093         (ves_icall_System_Net_Sockets_Socket_Send_internal): Likewise.
12094         (ves_icall_System_Net_Sockets_Socket_SendTo_internal): Likewise.
12095
12096 2006-02-02  Zoltan Varga  <vargaz@gmail.com>
12097
12098         * class.c (mono_class_create_generic): Set type_token as well.
12099
12100         * object.c (mono_runtime_invoke_array): Fix handling of byref vtypes to be
12101         compatible with MS.
12102
12103 2006-02-02  Martin Baulig  <martin@ximian.com>
12104
12105         * threads.c, gc.c: Removed the `WITH_INCLUDED_LIBGC' section; it
12106         has never been used so far.
12107
12108 2006-02-02  Martin Baulig  <martin@ximian.com>
12109
12110         * mono-debug-debugger.h: Changed comment at the top of this file;
12111         the header is not installed, but it's safe to #include it from
12112         within the JIT.
12113
12114         * mono-debug.c: Don't #define _IN_THE_MONO_DEBUGGER.
12115         * mono-debug-debugger.c, debug-mono-symfile.c: Likewise.
12116
12117 2006-02-02  Martin Baulig  <martin@ximian.com>
12118
12119         * mono-debug.h
12120         (MonoSymbolTable): Removed the `metadata_info' field.
12121
12122         * mono-debug.c
12123         (mono_debug_init_1): Always set `mono_symbol_table->corlib'.
12124
12125         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
12126         (mono_debugger_add_builtin_types): Removed.
12127         (MonoDebuggerInfo): Moved into ../mini/debug-debugger.h.
12128         (mono_debugger_create_notification_function): We now operate on a
12129         pre-allocated area; take a `gpointer' and return `void'.
12130
12131         * mono-debug-debugger.c
12132         (MonoDebuggerMetadataInfo): Moved into ../mini/debug-debugger.h.
12133         (mono_debugger_add_builtin_types): Removed.
12134
12135 2006-02-02  Martin Baulig  <martin@ximian.com>
12136
12137         * threads.c (mono_debugger_create_all_threads): New public method.
12138
12139 Wed Feb 1 18:22:34 CET 2006 Paolo Molaro <lupus@ximian.com>
12140
12141         * gc-internal.h, boehm-gc.c, null-gc.c: back out the patch, since it
12142         breaks on several platforms.
12143
12144 2006-02-01  Sebastien Pouliot  <sebastien@ximian.com>
12145
12146         * assembly.c: the VS.NET build doesn't supply default values for
12147         MONO_ASSEMBLIES and MONO_CFG_DIR.
12148
12149 2006-02-01  Zoltan Varga  <vargaz@gmail.com>
12150
12151         * gc-internal.h boehm-gc.c null-gc.c (mono_gc_unregister_thread): New
12152         helper function.
12153
12154         * threads.c (mono_thread_detach): Call mono_gc_unregister_thread ().
12155
12156         * loader.c (method_from_memberref): Fix a warning.
12157
12158         * metadata.c (mono_metadata_load_generic_params): Fix a warning.
12159
12160         * marshal.c (emit_struct_conv): Fix marshalling of embedded structs
12161         with explicit layout. Fixes #77433.
12162
12163 2006-01-31  Zoltan Varga  <vargaz@gmail.com>
12164
12165         * icall.c (ves_icall_Type_GetInterfaceMapData): Make sure 
12166         max_interface_id is initialized before using it. Fixes #77398.
12167         (ves_icall_Type_GetInterfaces): Ditto.
12168
12169 2006-01-30  Raja R Harinath  <rharinath@novell.com>
12170
12171         * metadata.c (mono_metadata_parse_method_signature_full): Don't
12172         allocate memory for parameter attributes when parsing memberref
12173         signatures.
12174         * loader.c (mono_loader_set_error_method_load): Don't warn.
12175         (method_from_memberref): Ensure MissingMethodException gets thrown
12176         if method is not found.  Make warning more informative.
12177
12178 2006-01-29  Raja R Harinath  <harinath@gmail.com>
12179
12180         Fix #77397
12181         * icall.c (ves_icall_MonoType_get_IsGenericParameter): Don't
12182         return true if is byref.
12183         (ves_icall_TypeBuilder_get_IsGenericParameter): Likewise.
12184         (ves_icall_MonoType_get_DeclaringType): Return NULL on byref classes.
12185         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
12186
12187 2006-01-27  Raja R Harinath  <rharinath@novell.com>
12188
12189         Fix tests/find-method.2.il
12190         * loader.c (find_method, find_method_in_class): Remove is_inflated
12191         argument.  Revert 2006-01-18 change.
12192         (method_from_memberref) [MONO_MEMBERREF_PARENT_TYPESPEC]: If type
12193         is generic, search for method in its generic definition.
12194         * class.c (mono_class_setup_vtable_general): Print generic
12195         arguments of generic types in debugging printf.
12196
12197 2006-01-26  Zoltan Varga  <vargaz@gmail.com>
12198
12199         * object-internals.h (MonoThread): Add 'thread_dump_requested' field.
12200
12201         * threads.c (mono_threads_request_thread_dump): New helper function.
12202
12203 2006-01-25  Raja R Harinath  <rharinath@novell.com>
12204
12205         * metadata.c (mono_type_create_from_typespec_full): Fix caching of types.
12206
12207 2006-01-25  Ankit Jain  <jankit@novell.com>
12208
12209         * metadata-internals.h (mono_generic_params_with_ambiguous_names): Add declaration and
12210         move definition to ..
12211         * metadata.c (mono_generic_params_with_ambiguous_names): .. here.
12212         
12213 2006-01-25  Ankit Jain  <jankit@novell.com>
12214             Raja R Harinath  <rharinath@novell.com>
12215
12216         * metadata-internals.h (mono_generic_params_with_ambiguous_names): New.
12217         * metadata.c (mono_metadata_load_generic_params): Fill mono_generic_params_with_ambiguous_names
12218         as necessary.
12219
12220 2006-01-25  Martin Baulig  <martin@ximian.com>
12221
12222         * mono-debug-debugger.h: Moved `MonoDebuggerManager' and
12223         `MonoDebuggerThread' into debug-debugger.c.
12224
12225 Tue Jan 24 18:53:35 CET 2006 Paolo Molaro <lupus@ximian.com>
12226
12227         * profiler.c: fix printing of data.
12228
12229 2006-01-24  Atsushi Enomoto  <atsushi@ximian.com>
12230
12231         * object.c, marshal.c : Fixed runtime part of bug #77315. Reject
12232           invalid surrogate in UTF7/UTF8 bytes and don't return NULL.
12233
12234 Tue Jan 24 09:56:16 CET 2006 Paolo Molaro <lupus@ximian.com>
12235
12236         * object.c: fix deadlock related to string interning.
12237
12238 2006-01-23  Martin Baulig  <martin@ximian.com>
12239
12240         * mono-debug-debugger.h (MonoDebuggerIOLayer): Removed.
12241
12242         * mono-debug-debugger.c (mono_debugger_io_layer): Removed.
12243
12244 2006-01-23  Martin Baulig  <martin@ximian.com>
12245
12246         * mono-debug.h: Moved the prototypes of some functions which are
12247         used by the JIT here from mono-debug-debugger.h.
12248
12249 2006-01-21  Martin Baulig  <martin@ximian.com>
12250
12251         * Makefile.am: Don't install mono-debug-debugger.h.
12252
12253 2006-01-21  Martin Baulig  <martin@ximian.com>
12254
12255         * mono-debug-debugger.h: Enforce the private status of this header
12256         file and removed unneccessary #include's in metadata/*.c and mini/*.c.
12257         Moved some stuff from mono-debugger-jit-wrapper.h here.
12258
12259 2006-01-20  Raja R Harinath  <rharinath@novell.com>
12260
12261         * class.c (mono_class_from_typeref): Add a sanity test to help
12262         catch lack of assembly load/search hooks.
12263
12264 2006-01-19  Zoltan Varga  <vargaz@gmail.com>
12265
12266         * marshal.c (emit_struct_conv): Relax the fields with same offset
12267         check even more. Fixes #77230.
12268
12269 2006-01-18  Martin Baulig  <martin@ximian.com>
12270
12271         * loader.c (find_method_in_class): Added `gboolean is_inflated'
12272         argument; if false, we compare the uninstantiated signatures.
12273         (method_from_memberref): Compare the uninstantiated signatures;
12274         fixes #76417.
12275
12276 2006-01-18  Robert Jordan  <robertj@gmx.net>
12277
12278         * boehm-gc.c, null-gc.c (mono_gc_weak_link_remove):
12279         Clear the weak link. Fixes bug #77170.
12280
12281         * gc.c (mono_gchandle_free):
12282         Reflect *-gc.c changes (tiny optimization).
12283
12284 2006-01-18  Zoltan Varga  <vargaz@gmail.com>
12285
12286         * metadata.c (mono_metadata_signature_dup): Applied patch from
12287         Aras Pranckevicius (aras@otee.dk). Fix crash when compiled with MSVC.
12288         Fixes #77288.
12289
12290 2006-01-17  Zoltan Varga  <vargaz@gmail.com>
12291
12292         * marshal.c (emit_struct_conv): Allow fields with the same offset when
12293         marshalling from native to managed code. Fixes #77230.
12294
12295 2006-01-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12296
12297         * threadpool.c: fix problem (Mac only) when more than one asynchronous
12298         connect. Fixes bug #77020.
12299
12300 Mon Jan 16 19:20:43 CET 2006 Paolo Molaro <lupus@ximian.com>
12301
12302         * class.c: fixed id assignement for nested interfaces (bug #77275).
12303         Added also better info for --print-vtable debugging.
12304
12305 2006-01-12  Martin Baulig  <martin@ximian.com>
12306
12307         * icall.c (ves_icall_MonoGenericClass_GetInterfaces): Inflate the
12308         interfaces on-the-fly; fixes #76625.
12309
12310         * class-internals.h
12311         (MonoDynamicGenericClass): Removed `ifaces' and `count_ifaces'; we
12312         don't need that anymore.
12313
12314 2006-01-12  Miguel de Icaza  <miguel@novell.com>
12315
12316         * socket-io.c
12317         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
12318         To avoid initing the nested_classes when not needed I turned the
12319         PeerCredData as a toplevel internal class, as it has to be shared
12320         anyways. 
12321
12322         Fixes the CASA issue.
12323
12324 2006-01-11  Ben Maurer  <bmaurer@andrew.cmu.edu>
12325
12326         * domain.c: Accessors for MonoJitInfo
12327
12328         * profiler-private.h: Add jitinfo to the end jit hook
12329
12330         * profiler.[ch]: Define new hooks, called after jitting which give
12331         the MonoJitInfo that was compiled
12332
12333 2006-01-10  Martin Baulig  <martin@ximian.com>
12334
12335         * class.c (mono_class_setup_events): Add support for generic
12336         classes; fixes #76440.
12337
12338 2006-01-06  Raja R Harinath  <rharinath@novell.com>
12339
12340         Fix #77160.
12341         * icall.c (ves_icall_InternalInvoke): Use mono_get_inflated_method
12342         on passed-in method.
12343
12344 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
12345
12346         * object.c (mono_runtime_invoke_array): Add Nullable support.
12347
12348         * icall.c (ves_icall_System_Activator_CreateInstanceInternal): Ditto.
12349
12350 2006-01-03  Sebastien Pouliot  <sebastien@ximian.com>
12351
12352         * file-io.c: Don't consider sockets as directory and avoid an endless
12353         loop. Fix bug #76966.
12354
12355 2006-01-03  Zoltan Varga  <vargaz@gmail.com>
12356
12357         * object.c (mono_nullable_init): New helper function.
12358         (mono_nullable_box): Ditto.
12359
12360         * marshal.c (mono_marshal_get_runtime_invoke): Handle Nullables.
12361
12362         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle Nullables.
12363
12364         * icall.c (ves_icall_MonoField_GetValueInternal): Handle Nullables.
12365         
12366 2006-01-02  Zoltan Varga  <vargaz@gmail.com>
12367
12368         * class.c (mono_class_is_assignable_from): Make T assignable to 
12369         Nullable<T>.
12370
12371 2005-12-23  Sebastien Pouliot  <sebastien@ximian.com>
12372
12373         * appdomain.c: Bump corlib version to 46.
12374         * icalls.c: Renamed CurrentTimeZone to CurrentSystemTimeZone (for
12375         serialization purpose) and changed ves_icall_System_Reflection_
12376         Assembly_get_code_base signature to accept a boolean (to escape, or 
12377         not, the assembly code base).
12378
12379 2005-12-23  Dick Porter  <dick@ximian.com>
12380
12381         * icall.c: 
12382         * threads-types.h: 
12383         * threads.c: Added OpenMutex, OpenSemaphore and OpenEvent icalls.
12384         CreateEvent icall now returns "created" boolean parameter.
12385
12386 2005-12-22  Zoltan Varga  <vargaz@gmail.com>
12387
12388         * marshal.c (mono_mb_emit_restore_result): Add generics support. Fixes
12389         #76967.
12390
12391         * reflection.c (mono_custom_attrs_construct_by_type): Handle the case 
12392         when attr_klass is an interface. Fixes #77045.
12393
12394 2005-12-20  Zoltan Varga  <vargaz@gmail.com>
12395
12396         * marshal.c (emit_struct_conv): Fix previous patch.
12397         
12398         * marshal.c (emit_struct_conv): Add a check for fields with the same
12399         offset.
12400
12401 2005-12-20  Raja R Harinath  <rharinath@novell.com>
12402
12403         Fix regression in Mono.C5.
12404         * class.c (mono_class_create_generic): If 'klass' is an interface
12405         set up the interface offsets.
12406         (mono_class_is_assignable_from): Don't throw away generic arguments.
12407
12408 2005-12-19  Raja R Harinath  <rharinath@novell.com>
12409
12410         * icall.c (ves_icall_System_MonoType_getFullName): Return NULL for
12411         type parameters.
12412
12413 2005-12-15  Raja R Harinath  <rharinath@novell.com>
12414
12415         * metadata.c (mono_metadata_parse_method_signature_full): Remove a
12416         dead store.
12417         (do_mono_metadata_parse_generic_class): Don't pass the current
12418         generic context when parsing the type being instantiated: it
12419         cannot use it, anyway.
12420
12421         * loader.c (method_from_memberref): Don't inflate a signature if
12422         it doesn't contain any type parameters.
12423
12424 2005-12-15  Zoltan Varga  <vargaz@gmail.com>
12425
12426         * class.c (mono_class_setup_vtable): Call mono_reflection_get_dynamic_overrides () to get the overrides in dynamic assemblies.
12427
12428 2005-12-14  Martin Baulig  <martin@ximian.com>
12429
12430         * class.c
12431         (mono_type_get_name_recurse): Don't return null for type
12432         parameters and open generic classes.
12433         (mono_class_setup_methods): Don't exclude generic instances.
12434         (mono_get_unique_iid): Use different IDs for different
12435         instantiations of the same generic type.
12436         (mono_class_setup_vtable): Only use setup_generic_vtable() for
12437         open generic instances; create a normal vtable for closed generic
12438         instances.
12439         (mono_class_setup_vtable_general): We're now also called for
12440         closed generic instances.
12441
12442         * reflection.c
12443         (mono_reflection_bind_generic_parameters): Correctly use
12444         mono_metadata_lookup_generic_inst() everywhere.
12445
12446 2005-12-14  Zoltan Varga  <vargaz@gmail.com>
12447
12448         * object.c (mono_class_create_runtime_vtable): Call 
12449         mono_class_setup_vtable ().
12450
12451         * reflection.c (mono_reflection_get_dynamic_overrides): New helper
12452         function.
12453         (ensure_runtime_vtable): Initialize the generic vtable lazily. Fixes
12454         #76959.
12455
12456         * loader.c (mono_loader_set_error_type_load): Print the type load
12457         warnings to the console so they are more visible to the user.
12458         (mono_loader_set_error_method_load): Ditto.
12459
12460         * reflection.c (ensure_runtime_vtable): Revert the last change as it
12461         is still broken.
12462         
12463         * reflection.c (ensure_runtime_vtable): Fix build.
12464
12465         * reflection.c (ensure_runtime_vtable): Disable an optimization which
12466         doesn't work in all cases.
12467
12468 2005-12-13  Zoltan Varga  <vargaz@gmail.com>
12469
12470         * object.c (mono_array_new_full): Treat a single dimensional array
12471         with 0 lower bounds as an szarray. Fixes #76973.
12472
12473         * reflection.c (custom_attr_visible): Really fix this.
12474
12475 2005-12-12  Zoltan Varga  <vargaz@gmail.com>
12476
12477         * reflection.c (custom_attr_visible): Allow nested public attributes
12478         as well.
12479
12480         * class.c (mono_class_setup_vtable_general): Add missing != -1 to an
12481         interface check.
12482
12483 2005-12-12  Raja R Harinath  <harinath@gmail.com>
12484
12485         * class.c (set_generic_param_owner): Delete.
12486         (mono_class_create_from_typedef): Don't set ->owner field of
12487         generic parameters to "param containers" of enclosing classes.
12488         * reflection.c (mono_reflection_initialize_generic_parameter):
12489         Likewise.
12490
12491 2005-12-11  Zoltan Varga  <vargaz@gmail.com>
12492
12493         * reflection.c (custom_attr_visible): Fix build.
12494
12495 2005-12-10  Zoltan Varga  <vargaz@gmail.com>
12496
12497         * reflection.c (mono_custom_attrs_from_builders): Avoid returning
12498         private attributes.
12499         
12500         * reflection.c (reflection_methodbuilder_to_mono_method): Fix
12501         handling of null parameter defaults.
12502
12503 2005-12-09  Raja R Harinath  <rharinath@novell.com>
12504
12505         * class.c (mono_class_from_generic_parameter): Don't set
12506         klass->generic_container.
12507         (my_mono_class_from_generic_parameter): Likewise.
12508
12509 2005-12-07  Zoltan Varga  <vargaz@gmail.com>
12510
12511         * reflection.c (load_public_key): Fix a warning.
12512         (method_encode_code): Fix unaligned accesses.
12513
12514 2005-12-07  Martin Baulig  <martin@ximian.com>
12515
12516         * object-internals.h (MonoReflectionGenericParam): Added `cattrs'.
12517
12518         * reflection.c
12519         (write_generic_param_entry): Encode our custom attrs.
12520
12521         * appdomain.c (MONO_CORLIB_VERSION): Bump to 45.
12522
12523 2005-12-07  Martin Baulig  <martin@ximian.com>
12524
12525         * reflection.c (encode_new_constraint): Removed; we don't use the
12526         `NewConstraintAttribute' anymore.
12527
12528 2005-12-06  Zoltan Varga  <vargaz@gmail.com>
12529
12530         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): Do
12531         not fire a TypeResolve event when Assembly.GetType () is called.
12532
12533 2005-12-05  Ben Maurer  <bmaurer@ximian.com>
12534
12535         Beginning of support for nullable types in the runtime. Parts of
12536         this patch are from Martin.
12537
12538         * appdomain.c (MONO_CORLIB_VERSION): Bump
12539
12540         * domain.c (mono_init_internal): get the nullable type
12541
12542         * class.c (mono_class_is_nullable): New method
12543         (mono_class_get_nullable_param): New mehod
12544         (mono_class_create_generic): In types T? set cast_class to T
12545
12546         * class-internals.h (MonoDefaults): new nullable default class
12547         (mono_class_get_nullable_param, mono_class_get_nullable_param):
12548         new methods.
12549
12550 2005-12-05  Raja R Harinath  <rharinath@novell.com>
12551
12552         * metadata.c (select_container): New.  Refactor code to select the
12553         appropriate GenericContainer given the type of generic parameter
12554         we are looking for.
12555         (mono_metadata_parse_generic_param): Take a MonoGenericContainer,
12556         not a MonoGenericContext.  Use select_container.  Update parameters.
12557         (do_mono_metadata_parse_type): Combine the code for MONO_TYPE_VAR
12558         and MONO_TYPE_MVAR.
12559         (unwrap_arrays): Remove duplicate tests.
12560         (find_generic_param): Rename from 'has_same_context'.  Now walks a
12561         generic instantiated class to find any arguments that are generic
12562         parameters.
12563         (mono_type_create_from_typespec_full): Use find_generic_param to
12564         avoid evicting some generic instantiations from the typespec
12565         cache.
12566
12567 Mon Dec 5 15:07:42 GMT 2005 Paolo Molaro <lupus@ximian.com>
12568
12569         * reflection.c: fixed writing of doubles on ARM FPA.
12570
12571 2005-12-02  Robert Jordan  <robertj@gmx.net>
12572
12573         * icall.c: Fixed EventInfo.ReflectedType (#76829).
12574
12575 2005-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12576
12577         * filewatcher.c: try loading libgamin-1.so.0 before libfam, since at
12578         least on SUSE 10 they are not the same (on debian, they are just the
12579         same thing).
12580
12581 2005-12-01  Raja R Harinath  <rharinath@novell.com>
12582
12583         * icall.c (ves_icall_MonoType_get_DeclaringType): Implement
12584         DeclaringType for VARs and MVARs.
12585         * class.c (set_generic_param_owner): Fix initialization of owner
12586         fields.
12587
12588 Wed Nov 30 15:48:22 CET 2005 Paolo Molaro <lupus@ximian.com>
12589
12590         * icall.c: fixed Enum.ToObject() to correctly convert the values.
12591
12592 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12593
12594         * threadpool.c: workaround for a bug that shows up on the Mac:
12595         select()+connect() on a blocking socket is not like it should
12596         be, so we proceed to connect() in that case, wasting the I/O
12597         threadpool thread until connect succeedes. Fixes bug #75436.
12598
12599 2005-11-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12600
12601         * threadpool.c: fix typo when setting file descriptor states.
12602
12603 2005-11-28  Raja R Harinath  <rharinath@novell.com>
12604
12605         * class-internals.h (MonoGenericContainer.is_signature): Remove.        
12606         * metadata.c (mono_metadata_parse_method_signature_full): Don't
12607         create a temporary signature container.
12608         (mono_metadata_parse_generic_param): Update to changes.
12609         (mono_type_create_from_typespec_full): Update to changes.
12610         * loader.c (method_from_memberref): Don't use a
12611         MonoGenericContainer while parsing a memberref signature.
12612         (method_from_methodspec): Remove dead-store of the 'container'
12613         variable.  It's overwritten before use.
12614
12615         * metadata.c (mono_type_create_from_typespec_full): Make debugging
12616         checks tighter.
12617         (mono_metadata_parse_generic_param): Likewise.
12618         * loader.c (find_method_in_class): Does not need a
12619         MonoGenericContainer.  Use 'mono_method_signature' rather than
12620         'mono_method_signature_full'.
12621         (find_method, mono_get_method_constrained, method_from_memberref):
12622         Update to changes.
12623
12624         * metadata.c (mono_type_create_from_typespec_full): Ensure that
12625         owner-less generic-parameters are never evicted from the typespec
12626         cache.
12627
12628         * loader.c (method_from_memberref): Don't use the current context
12629         when parsing signatures.
12630         (method_from_methodspec, mono_get_method_from_token): Update to changes.
12631
12632         * metadata.c (do_mono_metadata_parse_generic_class): Avoid
12633         side-effects in g_assert.
12634         * loader.c (mono_get_method_from_token): Resolve klass earlier so
12635         that we don't potentially lose information.
12636
12637 2005-11-26  Dick Porter  <dick@ximian.com>
12638
12639         * icall.c:
12640         * threads.c: icalls to implement basic (ie, not named)
12641         System.Threading.Semaphore.
12642
12643 2005-11-24  Dick Porter  <dick@ximian.com>
12644
12645         * process.c
12646         (ves_icall_System_Diagnostics_Process_ShellExecuteEx_internal):
12647         Use GetProcessId() if it's available.
12648
12649 2005-11-23  Zoltan Varga  <vargaz@gmail.com>
12650
12651         * icall.c threads-types.h threads.c: Add Exchange<T> icall.
12652
12653 2005-11-23  Raja R Harinath  <rharinath@novell.com>
12654             Ankit Jain  <jankit@novell.com>
12655
12656         * loader.c (mono_get_method_from_token): Initialize 'method' field
12657         of all generic parameters before parsing the signature.  Remove
12658         code that "fixed"-up MVAR references.
12659
12660 2005-11-23  Ankit Jain  <jankit@novell.com>
12661
12662         * metadata.c (mono_metadata_has_generic_params):
12663         (mono_metadata_load_generic_param_constraints):
12664         (mono_metadata_load_generic_params): Move duplicate code ...
12665         (mono_metadata_get_generic_param_row): ... here. Returns the
12666         first row-id in GenericParam table for a given owner (token).
12667         * metadata-internals.h (mono_metadata_get_generic_param_row): Add
12668         prototype.
12669
12670 2005-11-23  Raja R Harinath  <rharinath@novell.com>
12671             Ankit Jain  <jankit@novell.com>
12672
12673         * metadata.c (mono_metadata_class_equal): Pass signature_only when
12674         comparing VARs too.
12675         * icall.c (ves_icall_MonoType_get_DeclaringMethod): Look at 
12676         type->data.generic_param only if the type is an MVAR.
12677         (ves_icall_MonoMethod_GetGenericArguments): Ensure that we don't
12678         leak owner-less VARs and MVARs into managed space.
12679
12680 2005-11-21  Martin Baulig  <martin@ximian.com>
12681
12682         * class-internals.h
12683         (MonoMethod): Moved the `generic_container' here from
12684         `MonoMethodNormal' since we now also need it for
12685         `MonoMethodPInvoke';
12686         (MonoMethodNormal): Moved the `generic_container' to `MonoMethod'.
12687         (MonoMethodInflated): Replaced the `MonoMethodNormal nmethod' with
12688         an union containing both `MonoMethodNormal' and
12689         `MonoMethodPInvoke'.
12690
12691         * loader.c
12692         (mono_get_method_from_token): Allow implementing generic methods
12693         as interncalls.
12694
12695         * threads.c
12696         (ves_icall_System_Threading_Interlocked_CompareExchange_T): New
12697         icall.
12698
12699 2005-11-17  Dick Porter  <dick@ximian.com>
12700
12701         * icall.c: 
12702         * process.h: 
12703         * process.c: Split the Process Start_internal icall into
12704         ShellExecuteEx_internal and CreateProcess_internal, which are
12705         called depending on whether UseShellExecute is true.  Fixes bug
12706         76670.
12707
12708         * appdomain.c (MONO_CORLIB_VERSION): Incremented
12709
12710 2005-11-17  Zoltan Varga  <vargaz@gmail.com>
12711
12712         * marshal.c (emit_ptr_to_object_conv): Get rid of the 'usize' and
12713         'msize' parameters, use the information in 'mspec' instead.
12714         (emit_object_to_ptr_conv): Ditto.
12715
12716         * marshal.c (emit_struct_conv): Handle explicit layout structs with
12717         fields out of order. Fixes #76733.
12718
12719 2005-11-17  Ankit Jain  <jankit@novell.com>
12720
12721         * metadata.c (mono_type_create_from_typespec_full): Remove unnecessary g_assert.
12722
12723 2005-11-16  Atsushi Enomoto  <atsushi@ximian.com>
12724
12725         * icall.c : renamed MakeGenericMethod -> MakeGenericMethod_impl for
12726           bug #76575.
12727
12728 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
12729
12730         * object.c (mono_class_compute_gc_descriptor): Disable typed allocation
12731         for types with non-auto layout. Fixes #76717.
12732
12733 2005-11-16  Ankit Jain  <jankit@novell.com>
12734
12735         * class.c (my_mono_class_from_generic_parameter): param->owner can be null.
12736         * metadata.c (mono_metadata_parse_generic_param): Create a dummy MonoGenericParam 
12737         if generic_context is null.
12738           (mono_metadata_generic_param_equal): param->owner can be null.
12739           (mono_type_create_from_typespec_full): Don't cache the MonoType if param->owner is
12740         null.
12741
12742 2005-11-16  Zoltan Varga  <vargaz@gmail.com>
12743
12744         * reflection.c (create_dynamic_mono_image): Set md_version_minor to
12745         the correct value.
12746
12747 2005-11-15  Martin Baulig  <martin@ximian.com>
12748
12749         * object.c (set_value): Use mono_class_from_mono_type() instead of
12750         the hack for generic instances; fixes #76136.
12751
12752 2005-11-15  Zoltan Varga  <vargaz@gmail.com>
12753
12754         * metadata-internals.h (_MonoImage): Add 'md_version_major/minor'
12755         fields.
12756
12757         * image.c (load_metadata_ptrs): Initialize the new fields.
12758
12759         * reflection.c (create_dynamic_mono_image): Ditto.
12760
12761         * reflection.c (build_compressed_metadata): Use the new fields.
12762
12763         * icall.c (ves_icall_System_Reflection_Module_get_MDStreamVersion): New
12764         icall.
12765
12766         * icall.c (mono_assembly_icalls): Remove obsolete get_MetadataToken
12767         icall.
12768         
12769 2005-11-15  Ankit Jain  <jankit@novell.com>
12770             Raja R Harinath  <harinath@gmail.com>
12771
12772         * class-internals.h (_MonoGenericContainer.types): New. Cache for MonoTypes.
12773         * metadata.c (mono_type_create_from_typespec_full): Use MonoType from the
12774         new per-generic_container cache if the cached MonoType's context matches
12775         the current context.
12776           (has_same_context): New. Check if the VARs or MVARs in a GENERIC_INST refer
12777         to the expected context.
12778           (unwrap_arrays): New. Get the element MonoType for an ARRAY/SZARRAY.
12779
12780 2005-11-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12781
12782         * appdomain.c: Update MONO_CORLIB_VERSION to 42, since
12783         we changed the signature of an icall.
12784         * icall.c: Modify to mono_double_ParseImpl return true/false 
12785         depending on the success, instead of throwing the exception. This will
12786         help us in Double.TryParse methods.
12787         
12788 2005-11-14  Zoltan Varga  <vargaz@gmail.com>
12789
12790         * marshal.c (emit_marshal_object): Throw an exception when
12791         marshalling 'object' instead of crashing. Fixes #76696.
12792
12793 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
12794
12795         * class-internals.h: Add prototype for mono_type_get_full_name ().
12796
12797 2005-11-11  Dick Porter  <dick@ximian.com>
12798
12799         * threads.c (mono_thread_manage): Make sure the main thread has
12800         abandoned all its mutexes when cleaning up.  Fixes bug 74680.
12801
12802 2005-11-11  Zoltan Varga  <vargaz@gmail.com>
12803
12804         * loader.c (mono_loader_set_error_type_load): Log a warning to the
12805         console about the missing type.
12806         (mono_loader_set_error_method_load): Ditto.
12807
12808 2005-11-09  Miguel de Icaza  <miguel@novell.com>
12809
12810         * mono-config.c (mono_get_config_dir): Set the system defaults if
12811         none is specified.
12812
12813         * assembly.c (mono_set_dirs): New API entry point to set the
12814         assembly and the config directory in one call
12815
12816 2005-11-09  Zoltan Varga  <vargaz@gmail.com>
12817
12818         * marshal.c (mono_ftnptr_to_delegate): Throw a NotSupportedException if
12819         the ftnptr was created from a delegate in a domain other than the
12820         current domain. Fixes #75377.
12821
12822         * exception.h exception.c: Add mono_get_exception_not_supported ().
12823
12824 2005-11-08  Martin Baulig  <martin@ximian.com>
12825
12826         * mono-debug.h (MONO_DEBUGGER_VERSION): Bump to 53.
12827
12828 2005-11-07  Sebastien Pouliot  <sebastien@ximian.com>
12829
12830         * security-manager.h: Added definitions to deal with strongname key 
12831         pairs bigger (and smaller) than 1024 bits.
12832         * reflection.c: Remove hardcoded strongname size (128 bytes) and 
12833         adjust wrt the public key length being used.
12834
12835 2005-11-03  Atsushi Enomoto  <atsushi@ximian.com>
12836
12837         * marshal.c, icall.c : reverted sig->pinvoke changes which broke
12838           Windows build (r51396-51397).
12839
12840 2005-11-03  Martin Baulig  <martin@ximian.com>
12841
12842         * class.c (mono_class_setup_vtable_general): Also add generic
12843         methods to the vtable; fixes #76581.
12844
12845 2005-11-01  Miguel de Icaza  <miguel@novell.com>
12846
12847         * string-icalls.c (ves_icall_System_String_ctor_encoding): Make
12848         sure that we lookup GetString method from the System.Text.Encoding
12849         class, not the derived class or we get an empty method.
12850
12851         Fixed class #76612.
12852
12853 2005-10-25  Miguel de Icaza  <miguel@novell.com>
12854
12855         * assembly.c (mono_assemblies_init): Do not set the Mono root dir
12856         if it has been previously set (embedders). 
12857
12858         Make mono_set_rootdir available also on Unix.
12859
12860 005-10-24  Robert Jordan  <robertj@gmx.net>
12861
12862         * assembly.c: fixed MONO_ASSEMBLIES to be NULL on cygwin as well.
12863
12864 2005-10-30  Zoltan Varga  <vargaz@freemail.hu>
12865
12866         * marshal.c icall.c: Clean up the usage of sig->pinvoke flag. Now
12867         only calls which are made to native code use this flag.
12868
12869         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): Remove the check for FieldBuilders as it is now done in managed code.
12870
12871 2005-10-29  Zoltan Varga  <vargaz@freemail.hu>
12872
12873         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal):
12874         Add support for FieldBuilders.
12875
12876 2005-10-29  Martin Baulig  <martin@ximian.com>
12877
12878         * mono-debug.c
12879         (mono_debug_using_mono_debugger): New public method; returns
12880         whether we're running inside the debugger.
12881
12882 2005-10-27  Zoltan Varga  <vargaz@gmail.com>
12883
12884         * reflection.c (mono_reflection_get_custom_attrs_info): Add support
12885         for Method/Constructor/FieldBuilders.
12886
12887 2005-10-26  Zoltan Varga  <vargaz@gmail.com>
12888
12889         * reflection.c (module_add_cattrs): Save custom attributes for global methods
12890         and fields as well.
12891
12892 2005-10-26  Martin Baulig  <martin@ximian.com>
12893
12894         * mono-debug-debugger.c
12895         (MonoDebuggerMetadataInfo): Added `klass_parent_offset'.
12896
12897 2005-10-24  Raja R Harinath  <harinath@gmail.com>
12898
12899         * icall.c (base64_to_byte_array): Don't pass an out-of-range
12900         integer to isspace.
12901
12902 2005-10-21  Zoltan Varga  <vargaz@gmail.com>
12903
12904         * marshal.c (emit_marshal_vtype): Correctly handle [In,Out] modifiers
12905         when passing valuetypes byref. Fixes #76502.
12906
12907 2005-10-19  Jackson Harper  <jackson@ximian.com>
12908
12909         * profiler.c: Don't put a . in front of types that are not in a
12910         namespace.
12911
12912 2005-10-18  Zoltan Varga  <vargaz@gmail.com>
12913
12914         * icall.c (ves_icall_Type_GetField): Applied patch from Robert Jordan (robertj@gmx.net). Fixes #75515.
12915
12916 2005-10-15  Zoltan Varga  <vargaz@freemail.hu>
12917
12918         * marshal.c: Add generics support to the ldfld/stfld wrappers. Fixes
12919         #76436.
12920         (mono_marshal_get_ldflda_wrapper): Fix a warning.
12921
12922 2005-10-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
12923
12924         * assembly.c metadata-internals.h icall.c: Define an additional
12925         parameter for mono_assembly_name_parse_full, so we can avoid creating
12926         S.R.AssemblyName.Version when no version info wasn't passed.
12927         
12928 2005-10-09  Miguel de Icaza  <miguel@novell.com>
12929
12930         * class.c (mono_type_get_full_name): Reimplement method that was
12931         removed. 
12932
12933         * image.c: Some docs
12934
12935 2005-10-10  Zoltan Varga  <vargaz@gmail.com>
12936
12937         * profiler.c (output_newobj_profile): Fix printing of Total memory
12938         on x86.
12939
12940 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12941
12942         * profiler.c: Add support for allocations > 2GB. Fixes #74886.
12943
12944 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
12945
12946         * threads.c: remove debug output.
12947
12948 2005-10-08  Zoltan Varga  <vargaz@freemail.hu>
12949
12950         * threads.c (mono_thread_manage): Fix crashes if more than 64
12951         threads need to be aborted. Hopefully fixes #75899.
12952
12953         * assembly.c (mono_stringify_assembly_name): New helper function.
12954
12955         * class.c: Use mono_stringify_assembly_name instead of the similar
12956         static function.
12957
12958         * assembly.h assembly.c: Add support for calling a postload search 
12959         hook if an assembly cannot be loaded.
12960
12961         * appdomain.c: Register new search hooks which call the AssemblyResolve
12962         events in AppDomain. Fixes #75231
12963
12964 2005-10-07  Martin Baulig  <martin@ximian.com>
12965
12966         * mono-debug.c (mono_debug_add_method): Create a wrapper entry for
12967         methods without debug info.
12968
12969 2005-10-07  Zoltan Varga  <vargaz@gmail.com>
12970
12971         * class-internals.h debug-helpers.c marshal.h marshal.c: Add ldflda
12972         wrappers.
12973
12974 2005-10-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
12975
12976         * file-io.c: now that we return symlinks, use lstat and, when the file
12977         is a symbolic link, stat, to get the file attributes. Also avoid the
12978         conversion to/from utf16/external.
12979
12980 2005-10-06  Zoltan Varga  <vargaz@gmail.com>
12981
12982         * class.c (mono_class_layout_fields): Compute klass->has_references
12983         correctly if an embedded valuetype is not yet initialized. Fixes
12984         #76331.
12985
12986 2005-10-04  Martin Baulig  <martin@ximian.com>
12987
12988         * metadata.c
12989         (mono_metadata_load_generic_param_constraints): New public
12990         function; splitted the constraints loading out from
12991         mono_metadata_load_generic_params().
12992
12993         * class.c (mono_class_create_from_typedef): Call
12994         mono_metadata_load_generic_param_constraints() after setting up
12995         the type and creating our parent; fixes #75329.
12996
12997 2005-10-04  Martin Baulig  <martin@ximian.com>
12998
12999         * icall.c (ves_icall_MonoGenericClass_GetParentType): Allow
13000         non-dynamic parent classes.
13001
13002 2005-10-04  Atsushi Enomoto  <atsushi@ximian.com>
13003
13004         * file-io.c : win32 build fix (ETXTBSY seems not found).
13005
13006 2005-10-04  Martin Baulig  <martin@ximian.com>
13007
13008         * reflection.c
13009         (mono_image_get_methodspec_token): Make the cache actually work;
13010         fixes #75974.
13011
13012 2005-10-04  Martin Baulig  <martin@ximian.com>
13013
13014         * class.c (mono_class_name_from_token): Removed the unneccessary
13015         `MonoGenericContext *' argument.
13016
13017 2005-10-04  Martin Baulig  <martin@ximian.com>
13018
13019         * loader.c
13020         (method_from_methodspec): Make the caching work again; fixes the
13021         performance regression from #76262.
13022
13023 2005-10-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13024
13025         * file-io.c:
13026         * file-io.h:
13027         * icall.c: replace FindFirst/FindNext/FindClose calls with a new
13028         GetFileSystemEntries that performs the same work but without going
13029         into io-layer, locking, etc.
13030
13031 2005-09-30  Zoltan Varga  <vargaz@gmail.com>
13032
13033         * threads.c (ves_icall_System_Threading_Thread_Abort): Handle 
13034         ThreadState_Stopped as well. Fixes #76047.
13035
13036 2005-09-29  Martin Baulig  <martin@ximian.com>
13037
13038         * class.c
13039         (inflate_generic_context): If the new context has a `gmethod', set
13040         its `container' that that gmethod's `container'.
13041
13042         * metadata.c
13043         (mono_metadata_parse_generic_param): Simplify things;
13044         `generic_container = generic_context->container;' is just fine.
13045
13046         * loader.c (method_from_methodspec): Code cleanups.
13047
13048 Wed Sep 28 17:06:01 CEST 2005 Paolo Molaro <lupus@ximian.com>
13049
13050         * decimal.c: fix warning (and let gcc generate correct
13051         code on ARM with optimizations).
13052
13053 2005-09-28  Martin Baulig  <martin@ximian.com>
13054
13055         * loader.c
13056         (method_from_memberref): Added `MonoGenericContext *class_context'
13057         argument; this is used when parsing a MONO_MEMBERREF_PARENT_TYPESPEC.
13058         (method_from_methodspec): If we're a memberref, use the enclosing
13059         context when parsing its parent.  Fixes #76262; see gtest-206.cs.
13060
13061 2005-09-28  Martin Baulig  <martin@ximian.com>
13062
13063         * object.c (mono_runtime_invoke_array): Added support for
13064         MONO_TYPE_GENERICINST; fixes #75917.
13065
13066 2005-09-27  Martin Baulig  <martin@ximian.com>
13067
13068         * reflection.c (encode_type): For `MONO_TYPE_CLASS/VALUETYPE', use
13069         `k->byval_arg.type' to determine the actual type.
13070
13071         * loader.c (method_from_methodspec): Removed some hacks.
13072
13073 2005-09-27  Ben Maurer  <bmaurer@ximian.com>
13074
13075         * class-internals.h (mono_field_is_deleted): Do the test for
13076         rtspecialname before we check the actual name of the field. This
13077         prevents us from dereferencing a pointer into the string table,
13078         saving us from accessing a few pages
13079
13080         * *.c: Replace the use of {Enter,Leave}CriticalSection with
13081         macros. This will allow a deadlock debugger to easily be plugged
13082         in.
13083
13084 2005-09-27  Martin Baulig  <martin@ximian.com>
13085
13086         * loader.c (method_from_methodspec): Create a "signature"
13087         MonoGenericContainer and use mono_get_method_full().  Fixes #75584.
13088
13089 2005-09-27  Martin Baulig  <martin@ximian.com>
13090
13091         * class.c
13092         (inflate_generic_class): Correctly set the new context's
13093         container.
13094
13095         * loader.c
13096         (find_method, find_method_in_class): Take a `MonoGenericContainer *'
13097         instead of a `MonoGenericContext *'.
13098         (mono_method_signature_full): Take a `MonoGenericContainer *'
13099         instead of a `MonoGenericContext *'.
13100
13101         * metadata.c
13102         (mono_metadata_parse_signature_full): Take a `MonoGenericContainer *'
13103         instead of a `MonoGenericContext *'.
13104         (mono_metadata_parse_method_signature_full): Likewise.
13105
13106 2005-09-26  Martin Baulig  <martin@ximian.com>
13107
13108         * class.c
13109         (mono_class_from_generic_parameter): Set `klass->generic_container'
13110         (mono_class_from_generic_parameter): Likewise.
13111         (mono_bounded_array_class_get): We inherit the generic container
13112         from the element class.
13113
13114         * loader.c
13115         (find_method, find_method_in_class): Take a `MonoGenericContext *'
13116         argument rather than computing it here.
13117         (method_from_memberref): Correctly set the generic context before
13118         parsing the signature.  Fixes #75681.
13119
13120 2005-09-26  Zoltan Varga  <vargaz@gmail.com>
13121
13122         * object.c (mono_class_has_special_static_fields): Fix warnings.
13123
13124 2005-09-26  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13125
13126         * assembly.c: Add parse_public_key function, to
13127         par the public keys. Also added mono_assembly_name_parse_full,
13128         to define it the parsed key should be freed or not.
13129         * icall.c: Added ves_icall_System_Reflection_AssemblyName_ParseName,
13130         to parse a long format assembly name.
13131         * metadata-internals.h: Keep mono_assembly_name_parse_full as
13132         private, since calling it to preserve the key requires
13133         freeing it manually.
13134         
13135 2005-09-26  Atsushi Enomoto  <atsushi@ximian.com>
13136
13137         * locales.c : removed HAVE_ICU part.
13138
13139 2005-09-24  Zoltan Varga  <vargaz@freemail.hu>
13140
13141         * object.c (mono_class_create_runtime_vtable): Avoid calling 
13142         field_is_special_static if the klass has no special static fields.
13143
13144         * class-internals.h (MonoClass): Add 'no_special_static_fields' flag.
13145         (MonoCachedClassInfo): Likewise.
13146
13147         * object.c (mono_class_has_special_static_fields): New helper function.
13148
13149 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
13150
13151         * class.c (mono_class_create_from_typedef): Don't call 
13152         interfaces_from_typedef_full for enums.
13153         (mono_class_create_from_typedef): Compute the base types of enums directly
13154         without calling mono_class_setup_fields ().
13155         (mono_class_find_enum_basetype): New helper function.
13156
13157         * reflection.c (mono_image_build_metadata): Emit type names+namespaces at
13158         one place inside the string heap.
13159         
13160 Fri Sep 23 19:37:46 CEST 2005 Paolo Molaro <lupus@ximian.com>
13161
13162         * class.c: locking fixes, code cleanups, some docs added.
13163         Allocate some data structures in the image mempool.
13164
13165 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
13166
13167         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
13168         the example code.
13169         
13170 Fri Sep 23 18:27:02 CEST 2005 Paolo Molaro <lupus@ximian.com>
13171
13172         * class-internals.h, class.c, reflection.c: reduce memory taken by
13173         MonoClass.
13174
13175 Fri Sep 23 17:56:21 CEST 2005 Paolo Molaro <lupus@ximian.com>
13176
13177         * metadata.c, metadata.h, loader.h: documentation updates, code and
13178         API cleanups.
13179
13180 2005-09-23  Zoltan Varga  <vargaz@gmail.com>
13181
13182         * rawbuffer.c: Remove unneccessary set_n_pagefaults () routine and update
13183         the example code.
13184
13185         * rawbuffer.h rawbuffer.c: Add code and APIs to help determine the number of
13186         page faults caused by the runtime while reading metadata.
13187
13188 2005-09-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13189
13190         * socket-io.c: the field names were changed 3 months ago and no one
13191         realized until bug #76077 got filed!
13192
13193 2005-09-20  Martin Baulig  <martin@ximian.com>
13194
13195         * icall.c (assembly_icalls): Removed some unused debugger icalls.
13196
13197 2005-09-20  Martin Baulig  <martin@ximian.com>
13198
13199         * mono-debug.c (mono_debug_add_type): Ignore array types and don't
13200         write the rank into the class entry.
13201
13202 2005-09-20  Martin Baulig  <martin@ximian.com>
13203
13204         * mono-debug-debugger.c (MonoDebuggerMetadataInfo): Added some stuff.
13205
13206 2005-09-19  Zoltan Varga  <vargaz@gmail.com>
13207
13208         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13209
13210         * icall.c (custom_attrs_defined_internal): New icall.
13211
13212         * reflection.c (mono_reflection_get_custom_attrs_by_type): New helper
13213         function.
13214         (mono_custom_attrs_construct_by_type): New helper function.
13215
13216 2005-09-17  Zoltan Varga  <vargaz@freemail.hu>
13217
13218         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): Null
13219         terminate the resulting string. Fixes #76123.
13220
13221 2005-09-16  Martin Baulig  <martin@ximian.com>
13222
13223         * mono-debug.c
13224         (mono_debug_add_method): Ignore inflated methods for the moment.
13225
13226 2005-09-14  Martin Baulig  <martin@ximian.com>
13227
13228         * debug-mono-symfile.h (MONO_SYMBOL_FILE_VERSION): Bump version to 39.
13229
13230 2005-09-13  Zoltan Varga  <vargaz@gmail.com>
13231
13232         * metadata.c (mono_class_get_overrides_full): Modify signature to explicitly
13233         return a success/failure indication.
13234         (mono_metadata_interfaces_from_typedef_full): Ditto.
13235         (get_constraints): Ditto.
13236
13237 2005-09-12  Zoltan Varga  <vargaz@gmail.com>
13238
13239         * marshal.c (emit_marshal_array): Fix handling of null arrays.
13240         
13241         * marshal.c (emit_marshal_array): Add support for returning string
13242         arrays from delegates. Fixes #76063.
13243
13244         * marshal.c: Use the emit_ldloc/stloc macros where possible.
13245
13246 2005-09-11  Zoltan Varga  <vargaz@gmail.com>
13247
13248         * threads.c (ves_icall_System_Threading_Thread_MemoryBarrier): New
13249         icall.
13250
13251 2005-09-09  Zoltan Varga  <vargaz@gmail.com>
13252
13253         * reflection.c icall.c: Fix after mono_get_exception_type_load
13254         signature change.
13255
13256         * assembly.c (mono_assembly_get_assemblyref): New helper function.
13257         (mono_assembly_load_reference): Use the new helper.
13258
13259         * class-internals.h (MonoLoaderError): New structure containing 
13260         information about type loading errors.
13261
13262         * class-internals.h loader.c: Add APIs to store per-thread loader
13263         error information.
13264
13265         * loader.c class.c: Set the loader error if needed.
13266
13267         * exception.h exception.c: Add functions to throw MissingMethod/MissingFieldExceptions.
13268
13269 Thu Sep 8 18:54:07 BST 2005 Paolo Molaro <lupus@ximian.com>
13270
13271         * decimal.c: fixed to handle the broken ARM fp format.
13272
13273 Wed Sep 7 22:17:58 BST 2005 Paolo Molaro <lupus@ximian.com>
13274
13275         * icall.c: on ARM use the libc strtod(), since bsd_strtod() seems
13276         broken.
13277
13278 2005-09-06  Martin Baulig  <martin@ximian.com>
13279
13280         * domain.c (supported_runtimes): Added v2.0.50727.
13281
13282 Tue Sep 6 11:40:24 CEST 2005 Paolo Molaro <lupus@ximian.com>
13283
13284         * culture-info.h: reduce the size of some structures.
13285
13286 2005-09-05  Martin Baulig  <martin@ximian.com>
13287
13288         Reflect latest API changes in the August CTP.
13289
13290         * icall.c
13291         ("Type.BindGenericParameters"): Renamed to "MakeGenericType".
13292         ("MonoType.HasGenericArguments"): Removed.
13293         ("MonoMethod.BindGenericParameters"): Renamed to
13294         "MakeGenericMethod".
13295         ("MethodBuilder.BindGenericParameters"): Renamed to
13296         "MakeGenericMethod".    
13297
13298 2005-09-05  Martin Baulig  <martin@ximian.com>
13299
13300         * mono-debug-debugger.c: Moved the debugger icalls into icall.c.
13301
13302 2005-09-05  Martin Baulig  <martin@ximian.com>
13303
13304         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13305
13306         * icall.c (ves_icall_Type_get_IsGenericType): Return true also if
13307         generic_container is non-NULL.
13308
13309 2005-09-05  Martin Baulig  <martin@ximian.com>
13310
13311         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13312
13313         * object.c (set_value): In MONO_TYPE_VALUETYPE, add generics support.
13314
13315 2005-08-29  Michal Moskal  <malekith@nemerle.org>
13316
13317         * reflection.c (encode_locals,
13318         mono_reflection_sighelper_get_signature_local): Increase buffer sizes
13319         for large generic types.
13320
13321 2005-09-05  Martin Baulig  <martin@ximian.com>
13322
13323         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13324
13325         * class.c (mono_dup_array_type): New public method.
13326         (mono_metadata_signature_deep_dup): New public method.
13327         (dup_type): Correctly duplicate array and function types.
13328
13329 2005-09-05  Martin Baulig  <martin@ximian.com>
13330
13331         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13332
13333         * reflection.c (get_default_param_value_blobs): Handle generic types
13334         and generic methods.
13335
13336 2005-09-02  Sebastien Pouliot  <sebastien@ximian.com>
13337
13338         * class.c: Fixed error reporting (method/class were inversed) for 
13339         inheritance demands.
13340         * security-manager.c|h: Added the AppDomain when calling the managed
13341         System.Security.SecurityManager.InheritanceDemand method.
13342
13343 2005-09-01  Raja R Harinath  <rharinath@novell.com>
13344
13345         * reflection.c (encode_marshal_blob): 'marshaltype' and
13346         'marshaltyperef' are alternate sources for the custom marshaler
13347         name.
13348
13349 Wed Aug 31 17:39:54 CEST 2005 Paolo Molaro <lupus@ximian.com>
13350
13351         * class.c: fix creation of array classes with rank == 1
13352         (patch by Ankit Jain <jankit@novell.com>).
13353
13354 Wed Aug 31 17:35:19 CEST 2005 Paolo Molaro <lupus@ximian.com>
13355
13356         * object.c: fix check for creating the bound data for arrays vs
13357         szarrays.
13358
13359 2005-08-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13360
13361         * object.c: configuration file name is now based on the executable name,
13362         not the image name. Fixes bug #75931.
13363
13364 2005-08-29  Zoltan Varga  <vargaz@gmail.com>
13365
13366         * marshal.c (emit_thread_interrupt_checkpoint_call): Load the
13367         flag using LDIND_U4 since it leads to smaller and faster code on ia64.
13368
13369 2005-08-25  Zoltan Varga  <vargaz@gmail.com>
13370
13371         * rand.c: Use wincrypt.h instead of WinCrypt.h.
13372
13373 2005-08-24  Ankit Jain  <jankit@novell.com>
13374             Raja R Harinath  <rharinath@novell.com>
13375
13376         * class.c (mono_class_from_typeref): Don't call mono_class_init as we might've been
13377           called by it recursively.
13378           (mono_class_init): Remove special case in pending_init handling, since it's
13379           superseded by the fix to mono_class_from_typeref.
13380
13381 2005-08-22  Zoltan Varga  <vargaz@freemail.hu>
13382
13383         * threads.c (ves_icall_System_Threading_Thread_Thread_internal): Remove the 
13384         BROKEN_THREAD_START stuff.
13385
13386 2005-08-21  Zoltan Varga  <vargaz@freemail.hu>
13387
13388         * class-internals.h object.c: Add a new kind of trampoline called a delegate 
13389         trampoline.
13390
13391         * domain-internals.h domain.c: Add a has for delegate trampolines to MonoDomain.
13392         
13393         * object.c (mono_delegate_ctor): Replace the original function address with
13394         a delegate trampoline.
13395
13396 2005-08-21 Gert Driesen <drieseng@users.sourceforge.net>
13397
13398         * icall.c: add boolean argument to base64_to_byte_array and 
13399         InternalFromBase64String to control whether a whitespace-only string
13400         is allowed (or should casue a FormatException to be thrown). We need
13401         this as the behavior has changed between MS.NET 1.x and 2.0, and we
13402         to match the MS behaviour in both profiles.
13403         * appdomain.c: Bump corlib version.
13404
13405 2005-08-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13406
13407         This patch implements a big portion of publisher policy
13408         support, used to bind assembly versions and redirect
13409         one assembly from version A to version B.
13410
13411         * assembly.c:
13412         New GSList loaded_assembly_bindings, for storing the cached
13413         assembly bindings.
13414         (assembly_binding_maps_name): New static function for checking if a 
13415         assembly binding information maps an assembly name.
13416         (mono_assembly_binding_info_free): New function for freeing
13417         assembly binding information resources.
13418         (get_publisher_policy_info): New static function for retrieving 
13419         assembly binding information from a MonoImage.
13420         (compare_versions): New static function for comparing an assembly
13421         binding information data and the version of an assembly name.
13422         (check_policy_versions): New static function for checking if an
13423         assembly binding info mapping an assembly name is valid for it.
13424         (mono_assembly_load_publisher_policy): New static function for
13425         loading the 'policy.major.minor.MyAssembly' image for an assembly
13426         with an assembly name 'aname'.
13427         (mono_assembly_bind_version): New static function for updating
13428         assembly redirection.
13429         (mono_assembly_apply_binding): New static function for applying
13430         assembly binding.
13431         (search_binding_loaded): New static function for searching 
13432         loaded assembly binding infos in the cache domain.
13433         (mono_assembly_load_full): Don't apply assembly binding for
13434         reflection only assemblies.
13435
13436         * metadata-internals.h: Add MonoAssemblyBindingInfo,
13437         which contains information about assembly binding. Also
13438         declare signature for mono_config_parse_publisher_policy ()
13439         function, used to retrieve pub policy info.
13440         
13441         * mono-config.c:
13442         (publisher_policy_start): New static function used to parse publisher 
13443         policy config files.
13444         (publisher_policy_parser): New static MonoParseHandler containing 
13445         the functions used when parsing config files.
13446         (mono_config_parse_publisher_policy): New function for parsing
13447         publisher policy files.
13448         
13449 2005-08-20  Zoltan Varga  <vargaz@freemail.hu>
13450
13451         * object.c (mono_delegate_ctor): Add support for IA64 function descriptors.
13452
13453         * marshal.c (mono_delegate_free_ftnptr): Ditto.
13454
13455         * object.c (mono_get_addr_from_ftnptr): New helper function.
13456
13457         * object.h (mono_array_addr): Fix unaligned access warnings on IA64.
13458
13459         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
13460
13461 2005-08-19  Dick Porter  <dick@ximian.com>
13462
13463         * threads.c, threads.h, appdomain.c, appdomain.h,
13464         profiler-private.h, monitor.c, object.c, object-internals.h,
13465         profiler.c, mono-debug-debugger.h, profiler.h: Use a gsize to
13466         store the thread ID, so it can hold a 64 bit value if needed.
13467
13468 2005-08-19  Zoltan Varga  <vargaz@freemail.hu>
13469
13470         * reflection.c (mono_reflection_create_dynamic_method): Store the
13471         handle class into the method references as well so ldtoken works in
13472         dynamic methods.
13473
13474         * icall.c (ves_icall_MonoField_GetValueInternal): Add support for generic
13475         types.
13476
13477 2005-08-19  Ankit Jain <jankit@novell.com>
13478
13479         Fix #75847.
13480         * marshal.c (mono_marshal_get_ptr_to_struct): Build method signature 
13481           here rather than using the method signature of a arbitrary function
13482           named 'System.Runtime.InteropServices.Marshal::PtrToStructure' with 
13483           two arguments.
13484           Hack done with Harinath.
13485
13486 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13487
13488         * threadpool.c: disable printing stack traces when we get a exception
13489         in a threadpool thread. I need to do more testing to figure out which
13490         cases actually print this. Fixes bug #75828.
13491
13492 2005-08-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13493
13494         * icall.c: there might be ignored whitespace after the last '='. This
13495         fixes length computation and bug #75840.
13496
13497 2005-08-18  Zoltan Varga  <vargaz@freemail.hu>
13498
13499         * assembly.c (mono_assembly_load_full): Consider .exe extension as
13500         well. Fixes #75809.
13501
13502         * reflection.c (create_custom_attr): Fix unmanaged memory leak. Fixes
13503         #75784.
13504         
13505         * reflection.c (create_custom_attr_data): Ditto.
13506
13507 2005-08-17  Atsushi Enomoto  <atsushi@ximian.com>
13508
13509         * locales.c, culture-info.h : removed RegionLCIDMap.
13510         * culture-info-tables.h : regenerated.
13511
13512 2005-08-16  Martin Baulig  <martin@ximian.com>
13513
13514         * class.c (mono_type_get_name_recurse): Small fix.
13515
13516 2005-08-16  Atsushi Enomoto  <atsushi@ximian.com>
13517
13518         * locales.c : indentation fixie.
13519
13520 2005-08-15  Atsushi Enomoto  <atsushi@ximian.com>
13521
13522         * object-internals.h,
13523           locales.h,
13524           locales.c,
13525           culture-info.h,
13526           icall.c : added RegionInfo table support.
13527         * culture-info-table.h : regenerated for region support.
13528
13529 2005-08-14  Kamil Skalski  <nazgul@nemerle.org>
13530
13531         * reflection.c (resolve_object): handle all kinds of MonoMethod
13532         including generic ones
13533
13534 2005-08-12  Ankit Jain <jankit@novell.com>
13535
13536         * get.c (dis_stringify_variant_type): New. Stringify MonoMarshalVariant.
13537           (dis_stringify_marshal_spec): Add new case for MONO_NATIVE_SAFEARRAY. 
13538
13539 2005-09-12  Lluis Sanchez  <lluis@ximian.com>
13540
13541         * process.c: Don't close a thread handle when it's NULL. This is a
13542         workaround for bug #75733.
13543
13544 2005-08-11  Zoltan Varga  <vargaz@freemail.hu>
13545
13546         * marshal.c (mono_marshal_get_string_encoding): Fix handling of CharSet.Auto. Fixes #75769.
13547
13548 2005-08-10  Zoltan Varga  <vargaz@freemail.hu>
13549
13550         * icall.c (ves_icall_Type_get_IsGenericType): New icall.
13551
13552 2005-08-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13553
13554         * threadpool.c: if a work item in the thread pool has a callback that
13555         catches a exception, don't propagate it after invoking the callback.
13556         Fixes bug #75336.
13557
13558 2005-08-08  Zoltan Varga  <vargaz@freemail.hu>
13559
13560         * class.c (class_compute_field_layout): Rename this to mono_class_setup_fields.
13561
13562         * class-internals.h (MonoCachedClassInfo): Add some new fields.
13563
13564         * class.c (mono_class_init): Load field info lazily in the AOT case.    
13565
13566         * reflection.c (mono_image_load_module): Fix error checking. Fixes #75660.
13567
13568 2005-08-03  Ankit Jain  <jankit@novell.com>
13569
13570         Fix #75683.
13571         * loader.c (mono_method_signature_full): Use MONO_CALL_DEFAULT if
13572           PInvoke calling convention is 0.
13573
13574 2005-08-02  Zoltan Varga  <vargaz@freemail.hu>
13575
13576         * socket-io.c (convert_sockopt_level_and_name): Applied patch from 
13577         Julien Puydt (julien.puydt@laposte.net). Add check for IPV6_PKTINFO.
13578
13579 Mon Aug 1 16:52:12 CEST 2005 Paolo Molaro <lupus@ximian.com>
13580
13581         * gc-internal.h, threads.c, null-gc.c, boehm-gc.c: added interface
13582         to handle threads not started by the GC (patch by Michael Meeks
13583         <michael.meeks@novell.com>).
13584
13585 2005-07-31  Kamil Skalski  <nazgul@omega.pl>
13586
13587         * reflection.c: Make buffer used in emitting types larger for some
13588         big generic types (patch by Michal Moskal).
13589
13590 2005-07-30  Zoltan Varga  <vargaz@freemail.hu>
13591
13592         * mono-debug.c: Fix some (not all) alignment problems.
13593
13594 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13595
13596         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw):
13597         Invoke mono_image_load_from_data_full passing the refonly
13598         parameter.
13599
13600         * assembly.c
13601         (mono_assembly_open_from_bundle): Add the refonly argument, 
13602         in order to pass it to other methods it calls to.
13603         (do_mono_assembly_open): Add the refonly argument, in order 
13604         to pass it to other methods it calls to.
13605         (mono_assembly_open_full): Invoke do_mono_assembly_open passing
13606         the refonly parameter to it.
13607
13608         * image.c: Add loaded_images_refonly_hash and
13609         loaded_images_refonly_guid_hash to cache the reflection
13610         only loaded images.
13611         (mono_images_init): Initialize the hash tables used for
13612         caching the reflection only images.
13613         (load_modules): Invoke mono_image_open_full passing the refonly
13614         parameter to load the modules the correct way.
13615         (build_guid_table): Add the refonly argument, to re-build the 
13616         correct hash table.
13617         (do_mono_image_open): Added the refonly argument, in order to
13618         define it for the loaded image.
13619         (mono_image_loaded_full): New function, which receives an
13620         additional parameter to look for the image in the refonly or
13621         non-refonly section.
13622         (mono_image_loaded): Updated, using mono_image_loaded_full.
13623         (mono_image_loaded_by_guid_full): The same case that happens
13624         with mono_image_loaded_full.
13625         (mono_image_loaded_by_guid): Likewise.
13626         (register_image): Use the ref_only variable inside MonoImage
13627         to decide in which hash table store the current image.
13628         (mono_image_open_from_data_full): Rename
13629         mono_image_open_from_data to mono_image_open_from_data_full,
13630         adding the refonly argument, to define the ref_only variable 
13631         inside MonoImage.
13632         (mono_image_open_from_data): Return 
13633         mono_image_open_from_data_full.
13634         (mono_image_open_full): Rename mono_image_open to
13635         mono_image_open_full, receiving the new refonly argument,
13636         to pass it to inner methods.
13637         (mono_pe_file_open): Update this function, to open
13638         a MonoImage as a non-refonly image.
13639         (mono_image_close): Use the refonly variable inside
13640         MonoImage to remove the image from the correct caches.
13641
13642         * image.h: Add the signatures of mono_image_open_full,
13643         mono_image_open_from_data_full, mono_image_loaded_full,
13644         mono_image_loaded_by_guid_full.
13645
13646         * metadata-internals.h: Add the ref_only field to 
13647         MonoImage.
13648         
13649 2005-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
13650
13651         * icall.c (ves_icall_System_Reflection_GetReferencedAssemblies):
13652         Fix the last behavior, which used to load the assemblies and
13653         extract MonoReflectionAssemblyName information, instead of
13654         extract it from the metadata tables. Needed for Reflection
13655         Only assemblies.
13656         
13657 2005-07-29  Martin Baulig  <martin@ximian.com>
13658
13659         * mono-debug-debugger.c
13660         (mono_debugger_lock, mono_debugger_unlock): g_assert() if we're
13661         not initialized.
13662
13663         * mono-debug.c
13664         (mono_debug_address_from_il_offset): Check whether we have
13665         debugging support before attempting to take the lock.
13666         (mono_debug_source_location_from_address): Likewise.
13667         (mono_debug_source_location_from_il_offset): Likewise.
13668         (mono_debug_il_offset_from_address): Likewise.
13669         (mono_debug_address_from_il_offset): Likewise.
13670
13671 2005-07-29  Zoltan Varga  <vargaz@freemail.hu>
13672
13673         * class.c (mono_class_from_name_case): Add support for dynamic images.
13674         Fixes #75650.
13675
13676         * object.c (mono_class_compute_gc_descriptor): Add a workaround
13677         for #75479.
13678
13679 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
13680         
13681         * reflection.c (mono_method_get_object): Fix warning.
13682
13683 2005-07-28  Martin Baulig  <martin@ximian.com>
13684
13685         * mono-debug.c
13686         (mono_debug_add_wrapper): Also write the wrapper type.
13687
13688 2005-07-28  Zoltan Varga  <vargaz@freemail.hu>
13689
13690         * class-internals.h (MonoCachedClassInfo): Add has_nested_classes field.
13691         
13692         * class.c (mono_class_init): Avoid reading nested classes if the AOT
13693         data indicates the class has none.
13694
13695 2005-07-26  Ben Maurer  <bmaurer@ximian.com>
13696
13697         * mono-debug.c, debug-mono-symfile.c: Replace the use of the
13698         loader lock with the debugger lock. Prevents deadlocks for beagle.
13699
13700         Beagle can now run on an smp box for a weekend without any
13701         issues. Woohoo!
13702
13703 2005-07-26  Zoltan Varga  <vargaz@freemail.hu>
13704
13705         * class.c (mono_bounded_array_class_get): Avoid crash if eclass is
13706         in a module. Fixes #75629.
13707
13708 2005-07-26  Martin Baulig  <martin@ximian.com>
13709
13710         * mono-debug.c (mono_debug_add_wrapper): New static method.
13711         (mono_debug_add_method): Call mono_debug_add_wrapper() if we're an
13712         interncall or a wrapper.
13713
13714         * mono-debug.h (MonoDebugWrapperData): New public typedef.
13715         (MonoDebugDataItemType): Added `MONO_DEBUG_DATA_ITEM_WRAPPER'.
13716         (MONO_DEBUGGER_VERSION): Bump to 51.
13717
13718         * mono-debug-debugger.c
13719         (mono_debugger_add_type): Removed this empty function.
13720         (mono_debugger_add_method): Likewise.
13721
13722 2005-07-22  Zoltan Varga  <vargaz@freemail.hu>
13723
13724         * icall.c (ves_icall_Type_GetMethodsByName): Call setup_vtable () 
13725         before accessing method->slot.
13726
13727 2005-07-21  Jb Evain  <jbevain@gmail.com>
13728
13729         * reflection.c (method_encode_clauses/class): Handle filters clauses.
13730         Fixes #75010.
13731
13732 2005-07-21  Zoltan Varga  <vargaz@freemail.hu>
13733
13734         * marshal.c (emit_marshal_custom): Implement byref marshalling. Fixes
13735         #75587.
13736
13737 2005-07-20  Zoltan Varga  <vargaz@freemail.hu>
13738
13739         * image.h image.c: Add mono_image_get_guid () API function.
13740
13741 2005-07-19  Ben Maurer  <bmaurer@ximian.com>
13742
13743         There were issues when multiple threads tried to load
13744         assemblies. A deadlock was created between assemblies_mutex and
13745         mono_domain_assemblies_lock. This fixes the issue by making the
13746         assembly ref counting be lock free. See bug 75586.
13747         
13748         * image.c (mono_image_close): The add ref function here was using
13749         Interlocked operations while the unref was using a mutex and a
13750         --. I don't think this was ever a bug that would be exposed in a
13751         non-pendantic way (ie, by an embedder doing a ref on one thread
13752         and an unref on another), but for the sake of correctness, this is
13753         now Interlocked.
13754
13755         * assembly.c (mono_assembly_addref): Use InterlockedIncrement
13756         (mono_assembly_load_reference): Call mono_assembly_addref rather
13757         than touching the refcount ourselves.
13758         (mono_assembly_close): Use InterlockedDecrement to unref the
13759         assembly. Don't acquire the lock unless it is actually needed.
13760
13761 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
13762
13763         * class.c (mono_class_layout_fields): Fix calculation of has_references
13764         for generic types.
13765
13766 2005-07-12  Martin Baulig  <martin@ximian.com>
13767
13768         Applying a patch from Michal Moskal <malekith@nemerle.org>.
13769
13770         * metadata.c
13771         (mono_type_hash): Provide better hashing for generic instances.
13772         (mono_generic_inst_hash): Improve hashing.
13773         (mono_generic_class_hash): Likewise.
13774
13775         * reflection.c (mymono_metadata_type_hash): Improve hashing for
13776         generic instances.
13777
13778 2005-07-12  Martin Baulig  <martin@ximian.com>
13779
13780         * reflection.c (mono_reflection_create_runtime_class): Remove the
13781         hack for generic type definitions and non-`Run' assemblies.
13782         (mono_reflection_bind_generic_parameters): Also use
13783         `klass->wastypebuilder' to check for TypeBuilders.
13784
13785 2005-07-12  Zoltan Varga  <vargaz@freemail.hu>
13786
13787         * class.c (mono_class_layout_fields): Fix calculation of has_references
13788         for generic types.
13789
13790         * class.c (inflate_generic_class): Fix a leak.
13791         (mono_class_init): Fix calculation of gchimpl and has_finalize fields
13792         for generic types.
13793
13794 2005-07-11  Martin Baulig  <martin@ximian.com>
13795
13796         * icall.c (ves_icall_Type_BindGenericParameters): Don't crash here
13797         on error.
13798
13799 2005-07-11  Martin Baulig  <martin@ximian.com>
13800
13801         * loader.c (find_method): Also lookup in
13802         `mono_defaults.object_class' if we're an interfaces; fixes #75460.
13803
13804 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13805
13806         * appdomain.c (mono_domain_unload): Don't free the error message
13807         before passing it to mono_get_exception_...
13808
13809         * reflection.c (CACHE_OBJECT): Fix the race introduced by the previous patch.
13810         
13811 Thu Jul 7 19:59:31 CEST 2005 Paolo Molaro <lupus@ximian.com>
13812
13813         * threads.c: try to better guess an available RT signal (bug #75387).
13814
13815 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13816
13817         * reflection.c (CACHE_OBJECT): Don't hold the domain lock between CHECK_OBJECT
13818         and CACHE_OBJECT.
13819
13820 2005-07-07  Martin Baulig  <martin@ximian.com>
13821
13822         * class.c (mono_type_get_name_full): Return NULL for
13823         MONO_TYPE_NAME_FORMAT_FULL_NAME if we have any generic parameters;
13824         fixes #75408.
13825
13826 2005-07-07  Zoltan Varga  <vargaz@freemail.hu>
13827
13828         * threads.c (mono_threads_abort_appdomain_threads): Wait for threads to
13829         exit the appdomain as well being aborted.
13830
13831         * threadpool.c: Create all threadpool threads inside the root appdomain, and
13832         change back to the root domain after calling managed code. This enables
13833         appdomains using threadpools to be unloaded.
13834
13835 2005-07-07  Martin Baulig  <martin@ximian.com>
13836
13837         * class-internals.h
13838         (MonoInflatedGenericClass): Moved the `MonoType *parent' field
13839         into `MonoDynamicGenericClass' since we only need it for dynamic
13840         types.
13841
13842         * reflection.c (mono_class_bind_generic_parameters): We don't need
13843         to compute the `parent' here.
13844
13845 2005-07-07  Atsushi Enomoto  <atsushi@ximian.com>
13846
13847         * culture-info-table.h : regenerated.
13848
13849 2005-07-06  Martin Baulig  <martin@ximian.com>
13850
13851         * icall.c
13852         (ves_icall_FieldInfo_SetValueInternal): Add MONO_TYPE_GENERICINST.
13853
13854         * object.c (set_value): Add MONO_TYPE_GENERICINST; fixes #75299.
13855
13856 2005-07-06  Martin Baulig  <martin@ximian.com>
13857
13858         * metadata.c (mono_metadata_class_equal): Add MONO_TYPE_SZARRAY if
13859         we're doing a signature-only comparision; fixes #74945.
13860
13861 2005-07-06  Martin Baulig  <martin@ximian.com>
13862
13863         * class-internals.h (MonoGenericClass): Moved some things out into
13864         a new `MonoInflatedGenericClass' type.  
13865         (MonoInflatedGenericClass): New type; the `klass' of a
13866         `MonoGenericClass' is now computed lazyly in
13867         mono_get_inflated_generic_class().      
13868
13869         * class.c (mono_get_inflated_generic_class): New public function.
13870         (mono_class_inflate_generic_method): Removed the unused
13871         `MonoClass *' argument.
13872         (setup_generic_vtable): Don't call mono_get_inflated_method() on
13873         all the methods.
13874         (mono_class_create_generic): Make this static and merge it with
13875         mono_class_create_generic_2(); we're now called automatically from
13876         mono_get_inflated_generic_class().
13877
13878         * loader.c (mono_method_signature): Call
13879         mono_get_inflated_method() here.
13880
13881 2005-07-06  Zoltan Varga  <vargaz@freemail.hu>
13882
13883         * object.c (mono_class_create_runtime_vtable): Allow MONO_TYPE_FNPTR as
13884         type of fields with RVA.
13885
13886         * class.c (mono_class_from_generic_parameter): Avoid calling mono_class_init ()
13887         for this pseudo class.
13888         (my_mono_class_from_generic_parameter): Likewise.
13889         (mono_class_init): Allow interfaces to have cctors.
13890
13891 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
13892
13893         * domain-internals.h domain.c: Add functionality to create MonoJitInfo structures
13894         lazily for AOT methods.
13895
13896 2005-07-05  Martin Baulig  <martin@ximian.com>
13897
13898         * loader.c (mono_lookup_pinvoke_call): g_ascii_strcasecmp()
13899         returns FALSE for a successful match, not TRUE.
13900
13901 2005-07-05  Zoltan Varga  <vargaz@freemail.hu>
13902
13903         * loader.c (mono_method_get_index): Optimize this a bit.
13904
13905 2005-07-04  Martin Baulig  <martin@ximian.com>
13906
13907         * class.c
13908         (class_compute_field_layout): Move the check for generic type
13909         definitions into mono_class_layout_fields().  Fixes #74684.
13910         (mono_class_from_generic_parameter): Correctly compute
13911         `klass->parent'; fixes #75457.
13912
13913         * reflection.c (register_assembly, register_module): Make sure
13914         `domain->rejobject_hash' is already created.
13915
13916 2005-07-02  Martin Baulig  <martin@ximian.com>
13917
13918         * class-internals.h
13919         (MonoGenericClass): Move `count_ifaces' and `ifaces' into
13920         `MonoDynamicGenericClass'.      
13921
13922 2005-07-01  Lluis Sanchez  <lluis@ximian.com>
13923
13924         * icall.c: In ves_icall_InternalExecute() dont't assert if the value
13925         returned by a field getter is null, since null is a valid value.
13926
13927 2005-07-01  Martin Baulig  <martin@ximian.com>
13928
13929         * reflection.c (mono_reflection_generic_class_initialize): Update
13930         the `dgclass->fields [i].parent' to the correct class.
13931         (mono_image_get_fieldref_token): Use the declaring type, not the
13932         reflected type.
13933
13934 2005-07-01  Martin Baulig  <martin@ximian.com>
13935
13936         * loader.c (find_method): Also look in the interfaces; fixes #75429.
13937
13938 2005-06-30  Ben Maurer  <bmaurer@ximian.com>
13939
13940         * threads.c (thread_cleanup): assert that thread != NULL
13941         (wait_for_tids_or_state_change): We were using the wrong variable
13942         when accessing wait->threads. `i' was always out of the bounds of
13943         the array.
13944
13945 2005-06-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13946
13947         * loader.c: map user32 and kernel32 to libMonoSupportW
13948
13949 2005-06-28  Zoltan Varga  <vargaz@freemail.hu>
13950
13951         * appdomain.c (unload_thread_main): Mark this as WINAPI.
13952
13953 2005-06-28  Martin Baulig  <martin@ximian.com>
13954
13955         * loader.c (method_from_methodspec): Fix #75334.
13956
13957 2005-06-28  Martin Baulig  <martin@ximian.com>
13958
13959         Fix #74953 - Arrays now implement the generic IList<T> interface
13960         on the 2.0 platform.
13961
13962         * class-internals.h (MonoDefaults): Added `generic_array_class'.
13963
13964         * reflection.c (mono_class_bind_generic_parameters): New public
13965         function; similar to mono_reflection_bind_generic_parameters(),
13966         but operates on a `MonoType *' and not on a `MonoReflectionType *'.
13967
13968         * domain.c (mono_init_internal): Try to initialize.
13969         `mono_defaults.generic_array_class' here; this'll only succeed if
13970         we're using the 2.0 corlib.
13971
13972         * icall.c
13973         (ves_icall_System_Array_InternalArray_GetGenericValueImpl): Added
13974         interncall for "System.Array/InternalArray`1:GetGenericValueImpl".
13975         (mono_lookup_internal_call): Added support for nested classes.
13976
13977         * loader.c
13978         (mono_get_method_from_token): Set `result->signature->pinvoke' if
13979         we're an interncall and have generic arguments.
13980
13981         * class.c
13982         (mono_class_inflate_generic_methods): Allow interncalls and PInvoke.
13983         (mono_bounded_array_class_get): If we're on the 2.0 corlib, use an
13984         instance of System.Array.InternalArray<T> for arrays, so they
13985         implement the generic IList<T> interface.
13986
13987 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
13988
13989         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel
13990         (chastamar@yahoo.com). Fixes #75374.    
13991
13992 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
13993
13994         * culture-info-table.h: regenerated.
13995
13996 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
13997
13998         * icall.c: handle spaces correctly for base64 strings.
13999
14000 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
14001
14002         * *.c: Kill some warnings.
14003
14004 2005-06-23  Duncan Mak  <duncan@novell.com>
14005
14006         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
14007         that this builds on Solaris 10 (x86).
14008
14009 2005-06-23  Martin Baulig  <martin@ximian.com>
14010
14011         * class.c
14012         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
14013         generic type definitions.
14014
14015 2005-06-23  Martin Baulig  <martin@ximian.com>
14016
14017         Fix #75331.
14018
14019         * metadata.c (mono_class_get_overrides): Renamed to
14020         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
14021         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
14022         pass it to mono_get_method_full().
14023
14024 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
14025
14026         * reflection.c (mono_reflection_create_runtime_class): take the
14027         mono_domain_lock in this method. Prevents deadlocks
14028
14029 2005-06-22  Martin Baulig  <martin@ximian.com>
14030
14031         * loader.c (method_from_methodspec): Fix #75330.
14032
14033 2005-06-22  Martin Baulig  <martin@ximian.com>
14034
14035         * reflection.c (type_get_qualified_name): Use
14036         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
14037         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
14038         argument; use it if we don't have an assembly name.
14039
14040 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
14041
14042         * object.c: In mono_message_init, set "copy out" flag for in
14043         parameters with the [Out] flag.
14044
14045 2005-06-21  Martin Baulig  <martin@ximian.com>
14046
14047         * class.c
14048         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
14049         and MONO_TYPE_PTR.
14050
14051 2005-06-21  Martin Baulig  <martin@ximian.com>
14052
14053         * class.c (mono_class_init): Don't initialize `class->fields' for
14054         generic instances since they're initialized again in
14055         compute_field_layout(). 
14056         (compute_field_layout): Set the field's `generic_info' here; fix
14057         #75320. 
14058
14059 2005-06-21  Martin Baulig  <martin@ximian.com>
14060
14061         * class-internals.h
14062         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
14063
14064         * metadata.c (mono_metadata_generic_method_equal): Also
14065         distinguish the `generic_class'; fixes #75334.
14066
14067 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14068
14069         * domain.c:
14070         * appdomain.c:
14071         * domain-internals.h:
14072         * reflection.c: 'domain_assemblies' field is now protected by its own
14073         lock. Don't call into managed code to run the AssemblyLoad event if we
14074         now there are no registered delegates for it.
14075
14076 2005-06-20  Martin Baulig  <martin@ximian.com>
14077
14078         * class.c (mono_class_is_assignable_from): Use a custom version of
14079         mono_class_has_parent() to make things work for generic instances;
14080         fix #75300.
14081
14082 2005-06-20  Martin Baulig  <martin@ximian.com>
14083
14084         * loader.c (method_from_methodspec): Apply a patch from
14085         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
14086
14087 2005-06-20  Martin Baulig  <martin@ximian.com>
14088
14089         * class.c (mono_class_init): Reverted Zoltan's last change; it
14090         breaks generics.
14091
14092 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
14093
14094         * threads.c (wait_for_tids_or_state_change): Add missing locking.
14095
14096 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14097
14098         * socket-io.c: fix the index in the socket array for writable/error
14099         sockets. Fixes bug #75306.
14100
14101 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
14102
14103         * class.c (mono_class_init): Allow interfaces to have static ctors.
14104
14105 2005-06-17  Martin Baulig  <martin@ximian.com>
14106
14107         * loader.c (method_from_methodspec): Use `context->container' when
14108         parsing the `gmethod->inst'.
14109
14110 2005-06-17  Martin Baulig  <martin@ximian.com>
14111
14112         * class.c (mono_type_get_name_recurse): Don't add the assembly
14113         name for type arguments.
14114
14115 2005-06-15  Martin Baulig  <martin@ximian.com>
14116
14117         * reflection.c (mono_image_get_inflated_method_token): Encode
14118         correct klass; fixes #75260.
14119
14120 2005-06-13 Michal Moskal <malekith@nemerle.org>
14121
14122         * icall.c: Make GetCorrespondingMethod/Constructor take
14123         MonoReflectionMethod method not MonoMethod. Removed
14124         MonoType.GetCorrespondingField, and make
14125         MonoGenericType.GetCorrespondingField take name not
14126         MonoClassField.
14127
14128 2005-06-13  Michal Moskal <malekith@nemerle.org>
14129
14130         * reflection.c (field_encode_signature, encode_locals):
14131          Make sizes of buffers for types larger (for big generic types).
14132          (create_generic_typespec,
14133          mono_reflection_sighelper_get_signature_local,
14134          mono_reflection_sighelper_get_signature_field):
14135          Add asserts for too small buffers.
14136
14137 2005-06-15  Martin Baulig  <martin@ximian.com>
14138
14139         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
14140         if our parent is not a dynamic type.
14141
14142 2005-06-15  Martin Baulig  <martin@ximian.com>
14143
14144         * class-internals.h (MonoTypeNameFormat): New enum.
14145
14146         * class.c
14147         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
14148         (mono_type_get_full_name): Removed.
14149         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
14150         argument instead of the boolean's.
14151
14152         * icall.c (ves_icall_System_MonoType_getFullName):
14153         Added `gboolean assembly_qualified'.    
14154
14155         * reflection.h
14156         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
14157
14158         * reflection.c (mono_reflection_parse_type): Parse the new type
14159         name format.
14160
14161 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14162
14163         * icall.c: no need to convert from utf16 to utf8 and then back again
14164         after the call to GetLogicalDrives.
14165
14166 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14167
14168         * icall.c: frombase64. Fix problems exposed by new tests.
14169
14170 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14171
14172         * icall.c: added internal calls for converting char [] and strings in
14173         base64 into byte [].
14174
14175 2005-06-10  Martin Baulig  <martin@ximian.com>
14176
14177         * class.c (mono_class_create_generic_2): Read the nested classes
14178         from the metadata rather than from `gklass->nested_classes' since
14179         `gklass' might not be initialized yet.
14180
14181 2005-06-09  Duncan Mak  <duncan@novell.com>
14182
14183         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
14184         all public headers. Fixes #74919.
14185
14186 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
14187
14188         * domain.c: The key for proxy_vtable_hash is now a pointer
14189         array. Added new GHashFunc and GCompareFunc functions for this.
14190
14191         * class.h: The list of interfaces in MonoRemoteClass is known in
14192         advance and can't grow (we create a new MonoRemoteClass if needed),
14193         so now the interface array can be allocated together with
14194         MonoRemoteClass.
14195         
14196         * object.c: Added a new method create_remote_class_key.
14197         Fixed mono_remote_class so it does not depend on
14198         mono_upgrade_remote_class.
14199         Removed extend_interface_array.
14200         Added new method clone_remote_class(), which makes a copy of a remote
14201         class and adds a new interface or class to it.
14202         mono_upgrade_remote_class() now creates a new remote class (or gets
14203         it from the cache) if an vtable upgrade is needed. In this way
14204         we make sure that other objects sharing the same remote class
14205         don't get the new vtable with unwanted interfaces.
14206         
14207         * object-internals.h:
14208         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
14209         
14210         * marshal.c: Track changes in mono_upgrade_remote_class().
14211
14212 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
14213         * icall.c: Add runtime methods for obtaining members of inflated
14214         class, which were created from supplied non-inflated members. It
14215         is used in internal Get{Method,Constructor,Field} methods in
14216         System.Type
14217
14218 2005-06-09  Martin Baulig  <martin@ximian.com>
14219
14220         * reflection.c
14221         (mono_reflection_bind_generic_method_parameters): Fix #75169.
14222
14223 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14224         * reflection.c (mono_image_basic_init): Define
14225         Version in MonoDynamicAssembly. 
14226         
14227 2005-06-08  Martin Baulig  <martin@ximian.com>
14228
14229         Fix #75136.
14230
14231         * loader.c
14232         (mono_method_signature_full): New public method; takes a
14233         `MonoGenericContext *'.
14234         (find_method): Use mono_method_signature_full() and pass the
14235         klass'es context to it.
14236
14237         * class.c (mono_class_is_inflated_method): Use
14238         mono_method_signature_full() and pass the context to it.
14239
14240 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
14241
14242         * object.c: add proper locking in mono_remote_class_vtable(),
14243         fixes possible memory corruption.
14244
14245 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
14246
14247         * marshal.c (mono_remoting_marshal_init): set
14248         initialized after initialization.
14249
14250 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
14251
14252         * locales.c : hush.
14253
14254 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
14255
14256         * object.c (extend_interface_array): fix really silly
14257         memory corrupting / comparison bug.
14258
14259 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14260
14261         * reflection.c: Functions added to support the creation
14262         of CustomAttributeData, which includes Attribute data
14263         used by ReflectionOnly methods.
14264
14265         * reflection.h:  mono_reflection_get_custom_attrs_data and
14266          mono_custom_attrs_data_construct added (functions exposed).
14267
14268          * icall.c: Added mono_reflection_get_custom_attrs_data
14269          as icall.
14270         
14271 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
14272
14273         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
14274         lupus's request.
14275
14276 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
14277
14278         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
14279
14280         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
14281         dynamic DllImportAttribute.
14282
14283         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
14284         dynamic DllImportAttribute.
14285
14286         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
14287         Fixes #75162.
14288
14289 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14290
14291         * threads.c: avoid segfault when an unstarted thread is aborted.
14292
14293 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
14294
14295         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
14296         Returns the name and version of the runtime for reporting.
14297
14298 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14299
14300         * appdomain.c: bump corlib version.
14301         * object-internals.h: new field in MonoReflectionAssembly.
14302
14303 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14304
14305         * object-internals.h: Carlos forgot to add this field.
14306
14307 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
14308
14309         * icall.c: Added create_version to create instances
14310         of Version of MonoReflectionAssemblyName. This change helps
14311         the AssemblyName tests to keep running fine.
14312         
14313 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
14314   
14315         * object.c (mono_method_return_message_restore): A somehow less
14316         intrusive fix for #75138.
14317
14318 2005-06-03  Raja R Harinath  <rharinath@novell.com>
14319
14320         * object.c (mono_method_return_message_restore): Fix computation
14321         of expected number of out args.
14322
14323 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
14324
14325         * reflection.c (mono_image_get_method_info): Fix the case when the
14326         charset is empty.
14327
14328 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
14329
14330         * object.c: Added missing null check in
14331           mono_method_return_message_restore.
14332
14333 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
14334
14335         * reflection.c (mono_image_get_method_info): Handle the case when
14336         dllentry is empty.
14337
14338 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
14339
14340         * object.c: When creating the vtable for a proxy, take into account
14341         all inherited interfaces, not only the ones registered in
14342         iclass->interfaces. This fixs bug #74996.
14343         Also, in mono_method_return_message_restore, verify that the array
14344         of out args has the expected lengh.
14345
14346 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14347
14348         * socket-io.c: update the timeout in Poll when the call is interrupte.
14349
14350 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14351
14352         * socket-io.c: support abort/suspend in Select_internal after last
14353         change.
14354
14355 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14356
14357         * threadpool.c: remove warning.
14358
14359 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14360
14361         * icall.c:
14362         * socket-io.[ch]: Select_internal uses poll() now when available, thus
14363         removing the 1024 limit from select(). Runtime part of the fix for
14364         bug #71203.
14365
14366 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14367
14368         * socket-io.c: when resolving the addresses for the same
14369         host returned by gethostname(), get the local IPs from the interface
14370         list. Loopback addresses are discarded if the are interfaces up with
14371         non-loopback ones. Fixes bug #63265.
14372
14373 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
14374
14375         * appdomain.c, verify.c, object-internals.h, reflection.c:
14376         bumped corlib number to 36, and added new extra_flags field
14377         to ReflectionMethodBuilder and friends.  Fixes #75060.
14378
14379 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
14380
14381         * gc.c: register a new weak link only if the object is non-null
14382         (fixes bug#75047).
14383
14384 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14385
14386         * culture-info.h : short time pattern too.
14387
14388 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
14389
14390         * culture-info.h : expand long time pattern string length.
14391
14392 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14393
14394         * culture-info-table.h : update (more French date format; #72788).
14395
14396 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
14397
14398         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
14399         the method is static. Fixes #75029.
14400
14401 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
14402
14403         * reflection.c: Update the table_idx field of method builders after
14404         saving the module, since it can change. This is a workaround for
14405         bug #74914. 
14406
14407 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
14408
14409         * culture-info-table.h : update (additional French date format).
14410
14411 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
14412
14413         * icall.c (ves_icall_type_Equals): Revert last change.
14414         
14415         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
14416
14417         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
14418
14419 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
14420
14421         * class-internals.h: Added executioncontext_class field to 
14422         MonoDefaults structure.
14423         * domain.c: Cache System.Threading.ExecutionContext class in 
14424         mono_defaults.
14425         * object.c: Capture the ExecutionContext for asynchroneous calls in
14426          mono_async_result_new.
14427         * object-internals.h: Added execution_context and original_context 
14428         fields to MonoAsyncResult. Added execution_context to MonoThread.
14429         * security-manager.c|.h: Added mono_get_context_capture_method to 
14430         return the capture method (if required by the security manager or by
14431         the framework version used).
14432         * threadpool.c: Apply capture (if present) ExecutionContext in 
14433         mono_async_invoke and revert to original context after it completes.
14434
14435 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
14436
14437         * culture-info-table.h : updated (real hacky solution for zh-CHT).
14438
14439 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
14440
14441         * culture-info-table.h : zh-CHT related workaround.
14442
14443 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
14444
14445         * marshal.c (emit_marshal_custom): Add some error checking and call the
14446         methods in the ICustomMarshaler interface. Fixes #74875.
14447         
14448         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
14449         native->managed wrappers.
14450
14451 2005-05-12  Martin Baulig  <martin@ximian.com>
14452
14453         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
14454         here and use the loader lock.
14455
14456         * mono-debug.c: Properly lock when the debugger is not attached.
14457         (mono_debug_init): Release the initial lock if we're not running
14458         in the debugger.
14459
14460 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
14461
14462         * marshal.c (emit_marshal_custom): Pass through NULL values without
14463         calling the custom marshalling routines.
14464
14465         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
14466         conversion in structures. Fixes #74882.
14467
14468 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
14469
14470         * culture-info-table.h : zh-* cultures were missing.
14471
14472 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
14473
14474         * threads.c: Added a new event background_change_event which is signaled
14475         when a thread changes its background mode.
14476         Moved here several checks previously done in managed code. The checks
14477         require the thread lock, and using the thread lock in managed code
14478         can result in deadlocks.
14479         Merged Start_internal and Thread_internal into a single method. Now 
14480         Thread_internal does all work of creating and starting a thread.
14481         Added icalls for setting and getting the state of the object. Moved from
14482         managed code to avoid locking there.
14483         Added wait_for_tids_or_state_change() which is called instad of
14484         wait_for_tids when waiting for non-backround threads to end. This method
14485         will return if one of the threads ends or the background_change_event
14486         is signaled.
14487         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
14488         the background mode. This method signals the background_change_event
14489         event.
14490         * icall.c:
14491         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
14492         removed Start_internal.
14493         
14494 2005-05-11  Martin Baulig  <martin@ximian.com>
14495
14496         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
14497         to order of some fields to get proper alignment on 64-bit machines.
14498
14499 2005-05-11  Martin Baulig  <martin@ximian.com>
14500
14501         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
14502         changes as they're broken and completely fuck up the debugger.
14503
14504         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
14505
14506 2005-05-10  Martin Baulig  <martin@ximian.com>
14507
14508         * reflection.c (mono_reflection_generic_class_initialize): Don't
14509         call mono_class_setup_parent() here.
14510
14511 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14512
14513         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
14514         send/receive timeout use an integer in milliseconds. We were using a
14515         struct timeval.
14516
14517 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14518
14519         * locales.c:
14520         (internal_get_cultures): reserve the first slot of the array for the
14521         InvariantCulture, which will be filled in managed code.
14522
14523 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
14524
14525         * reflection.c (mono_image_fill_module_table): Initialize the
14526         GENERATION field as well.
14527
14528 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14529
14530         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
14531         Monitor.Enter on the object.
14532
14533 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
14534
14535         * threads.c: Enable the wait for running threads when exiting.
14536         * icall.c: Suspend all threads before exiting.
14537
14538 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
14539
14540         * assembly.c (mono_assembly_load_reference): Fix warning.
14541
14542 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14543
14544         * threadpool.c: changed the default number of threads per cpu. From now
14545         on, the default will be 20 + (5 * number of cpus) instead of 50.
14546
14547 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
14548
14549         * loader.c (mono_method_get_signature_full): Add locking here.
14550
14551 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
14552
14553         * appdomain.c: Moved methods for parsing and freeing assembly
14554         names to assembly.c.
14555         * assembly.c, domain-internals.h: Created public methods for parsing
14556         assembly names. Fixed mono_assembly_load_with_partial_name:
14557         it now finds the best match, taking into account the version,
14558         token and culture specified in the partial name. Also return
14559         the latest version if no version information is specified.
14560
14561 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
14562
14563         * threadpool.c: replace check for SocketAsyncCall class.
14564
14565 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14566
14567         * threadpool-internals.h:
14568         * Makefile.am: added threadpool-internals.h
14569
14570         * threadpool.c: call mono_unhandled_exception on exceptions not handled
14571         that happen in threadpool threads (tested on MS).
14572         (mono_thread_pool_remove_socket): new function that dispatch any pending
14573         AIO call on a socket that is closing. By now only epoll really needs it,
14574         as select/poll wake up when the socket closes.
14575
14576
14577         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
14578
14579 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
14580
14581         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
14582
14583 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
14584
14585         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
14586
14587 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
14588
14589         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
14590         has an abort request, convert it into a suspend request.
14591
14592 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
14593
14594         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
14595         warning for the usage of `UnmanagedFunctionPointerAttribute' which
14596         is not supported yet.
14597
14598 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14599
14600         * image.c: register assemblies loaded from data (bundles) in the loaded
14601         assemblies hash. Fixes bug #74772.
14602
14603 2005-04-29  Martin Baulig  <martin@ximian.com>
14604
14605         * class.c (mono_type_get_name_recurse): Update to the new naming
14606         schema from the latest .NET 2.x beta2.
14607         (mono_class_setup_vtable_general): If we're a generic instance,
14608         copy the vtable from our generic type definition and inflate all
14609         the methods in it.
14610
14611         * loader.c (find_method): Update to the new naming schema from the
14612         latest .NET 2.x beta2.
14613
14614 2005-04-29  Raja R Harinath  <harinath@gmail.com>
14615
14616         * class.c (mono_class_init): Add a mono_loader_unlock to the
14617         #74734 fix.
14618
14619 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
14620
14621         * icall.c (ves_icall_System_Environment_Exit): Remove the 
14622         suspend_all_other_threads () call for the time being, since it can hang.
14623
14624         * threads.c (mono_thread_manage): Similarly, disable the waiting for
14625         the background threads to exit, since it can also hang.
14626
14627         * class.c (mono_class_init): Applied patch from Ankit Jain 
14628         (radical@gmail.com). Avoid pending init errors when a field refers
14629         to a nested class using a typeref. Fixes #74734.
14630
14631         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
14632         this for dynamic modules.
14633
14634 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14635
14636         * threads.c: don't wait for threads that are in the process of aborting
14637         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
14638         and waiting for background threads to finish. This makes xsp and
14639         mod-mono-server exit without random length delays and/or hangs.
14640
14641 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14642
14643         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
14644
14645 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
14646
14647         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
14648         dynamic types to prevent infinite loops. Fixes #74727.
14649
14650         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
14651         ..._is_assignable_to.
14652
14653 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
14654
14655         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
14656
14657 2005-04-25  Martin Baulig  <martin@ximian.com>
14658
14659         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
14660
14661         * domain.c
14662         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
14663
14664         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
14665
14666         * reflection.c (build_compressed_metadata): Set metadata header
14667         version to 2.0.
14668
14669 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
14670
14671         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
14672         number into an integral and a decimal part. Fixes #70473.
14673
14674         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
14675
14676 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
14677
14678         * culture-info-table.h : reflected the latest locale-builder output.
14679
14680 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14681
14682         * threadpool.c: check for SuspendRequested too when deciding if
14683         mono_thread_interruption_checkpoint should be called.
14684
14685 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14686
14687         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
14688         * threads.c: remove interruption_mutex and use Interlocked instead. When
14689         suspending all the threads, wait for all the suspended events at once.
14690         If we're shutting down and get an APC that is going to be queued,
14691         call mono_thread_execute_interruption immediately, as the thread might
14692         be sleeping on a pthread condition or mutex.
14693
14694         * icall.c: call mono_runtime_set_shutting_down before suspending the
14695         threads.
14696
14697         Fixes bug #74693. And now xsp is happier when exiting.
14698
14699 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
14700
14701         * loader.c (mono_stack_walk): Fix #74690.
14702
14703 2005-04-22  Martin Baulig  <martin@ximian.com>
14704
14705         * mono-debug.h (MonoDebugMethodJitInfo): Added
14706         `MonoDebugMethodJitInfo *jit'.
14707
14708         * mono-debug.c (mono_debug_read_method): Cache the
14709         MonoDebugMethodJitInfo in `address->jit'.
14710         (mono_debug_free_method_jit_info): New public method.
14711
14712 2005-04-22  Martin Baulig  <martin@ximian.com>
14713
14714         * class.c (mono_class_is_assignable_from): Disallow
14715         type parameter -> interface.
14716
14717 2005-04-21  Dick Porter  <dick@ximian.com>
14718
14719         * threads.c (mono_thread_create): Turn an assertion into an error.
14720
14721 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
14722
14723         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
14724         
14725         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
14726         Fix some gcc 4.0 warnings.
14727
14728 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
14729
14730         * file-io.c: fix alt dir separator char on unix systems
14731         and cleanup (fixes bug #71214).
14732
14733 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
14734
14735         * marshal.c: Use CALLVIRT instead of CALL when dispatching
14736         a call to a remote domain, since the method may be an
14737         interface method in the client domain. This fixes bug #74192.
14738
14739 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14740
14741         * threadpool.c: recv/send are now performed before going back to managed
14742         code to save one transition.
14743
14744 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14745
14746         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
14747
14748         * metadata/threadpool.c: removed hack to workaround the bug above.
14749
14750         Fixes bug #74618.
14751
14752 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
14753
14754         * reflection.c reflection.h: Fix handling of parameter defaults in
14755         dynamic methods. Also fixes handling of parameter attributes.
14756         Fixes #74609.
14757
14758         * mono-debug.c (mono_debug_close_image): Fix warning.
14759
14760 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14761
14762         * socket-io.h: replaced old unused field with new 'blocking'.
14763         * threadpool.c: restore socket blocking state on windows(tm).
14764
14765 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
14766
14767         * icall.c: don't return the codebase in the AssemblyName[] returned by
14768         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
14769         * object-internals.h: Removed FIXME (fields were presents) and fixed
14770         versioncompat declaration.
14771
14772 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14773
14774         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
14775         not closed, so don't cleanup when it happens.
14776
14777 2005-04-13  Chris Toshok  <toshok@ximian.com>
14778
14779         * mono-debug-debugger.h: change prototype for
14780         mono_debugger_lookup_type.
14781
14782         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
14783         this function, although it should probably be named
14784         mono_debugger_init_type.
14785
14786 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14787
14788         * threadpool.c: fix non-AIO case.
14789
14790 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
14791
14792         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
14793         the built-in profiler to measure just JIT compilation times.
14794
14795 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14796
14797         * threadpool.c: the epollfd might be closed by another thread at
14798         any time, so ignore EBADF at treat it as a "we're closing" sign.
14799
14800 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14801
14802         * threadpool.c: release the semaphores with a count equals to the number
14803         of working threads in both IO and regular pools. Fixed typo that messed
14804         up the count of IO pool threads. Don't initialize the pipe handles if
14805         we're using epoll.
14806
14807 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14808
14809         * threadpool.c: some systems don't like a NULL when deleting the socket
14810         from epoll.
14811
14812 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14813
14814         * threadpool.c: fix semaphore allocation.
14815
14816 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14817
14818         * threadpool.c: added epoll() based implementation for asynchronous IO
14819         that is used instead of the default poll() when available.
14820         It can be disabled by setting MONO_DISABLE_AIO.
14821
14822 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14823
14824         * threadpool.c: windows needs 'closesocket' and instead of returning
14825         0 when the stream is closed while in select, it returns -1. Fixes bug
14826         #74573.
14827
14828 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
14829
14830         * class.c (class_compute_field_layout): Fix the regression caused by
14831         the previous try.
14832
14833 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14834
14835         * threadpool.c: separate pool for socket async. IO.
14836         * threadpool.h: mono_max_worker_threads is not a global any more.
14837
14838 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
14839
14840         * class.c (class_compute_field_layout): Fix #74549.
14841
14842 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14843
14844         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
14845         use 2 connected sockets instead.
14846
14847 2005-04-08  Miguel de Icaza  <miguel@novell.com>
14848
14849         * mono-config.c: Add new entry point for mkbundle
14850         mono_config_parse_memory. 
14851
14852 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14853
14854         * threadpool.c: removed another unused function.
14855
14856 2005-04-08  Ankit Jain  <radical@corewars.org>
14857
14858         * reflection.c (get_default_param_value_blobs): Add 'types'
14859         parameter to get the types encoded in the constant table.
14860         (mono_param_get_objects): Use the type from the constant table,
14861         not the type of the parameter, when creating default values.
14862         Handle null default values correctly.
14863
14864 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14865
14866         * file-io.c:
14867         * file-io.h:
14868         * threadpool.c:
14869         * threadpool.h:
14870         * icall.c:
14871         * socket-io.c: removed dead code for async IO.
14872
14873 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14874
14875         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
14876
14877         * threadpool.c: intercept socket async. calls and pass them to a thread
14878         that is polling and dispatching the job items to the threadpool as
14879         socket become ready. Fixes bugs #71217, #71933.
14880
14881         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
14882         between char and short/ushort arrays.
14883
14884         * socket-io.c: remove dead code.
14885
14886 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
14887
14888         * locales.c,
14889           icall.c : removed InternalToUpper_Comp() and
14890           InternalToLower_Comp().
14891
14892 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
14893
14894         * char-conversions.h : The tables were incorrectly generated. Should
14895           be generated against invariant culture.
14896
14897 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
14898
14899         * object.c (mono_runtime_invoke_array): Fix return value when 
14900         passing pre-created valuetype objects to ctors.
14901
14902         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
14903         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
14904         Fixes #74338.
14905
14906 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
14907
14908         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
14909         only used with --security and hides the wrong corlib version error.
14910
14911 2005-03-30  Joshua Tauberer  <tauberer@for.net>
14912
14913         * class.c: Changed mono_class_name_from_token so that types
14914         outside of a namespace don't have an initial period.  Improved
14915         the g_warning message used in _mono_class_get when loading
14916         fails.
14917         * assembly.c: In mono_assembly_load_reference, when an assembly
14918         can't be found, "No such file or directory" is misleading and
14919         unhelpful because a few paths were checked for the presence of
14920         the assembly.  When that happens (ENOENT), display a nicer
14921         message indicating the directories that were searched.  In all
14922         cases, the warning is made easier to read for non-hackers.
14923
14924 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
14925
14926         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
14927         project/solution.
14928         * appdomain.h|domain.c: Removed inline from functions.
14929         * appdomain.c: Reduced warnings when compiling on windows.
14930         * icall.c: Fixed output_debug declaration to gunichar2*.
14931         * mono-config.c: Reduced warnings when compiling on windows.
14932         * rand.c: Added missing "windows.h". Added missing return value.
14933         * rawbuffer.c: Added missing winsock2.h for windows.
14934         * sysmath.h: Added mono-compiler.h header to allow/ease 
14935         compilation with non-GCC compilers.
14936         * threads.c: Fixed declarations to compile with VS.NET C compiler.
14937         Removed cast warnings.
14938
14939         Adapted from the work of J Lothian (for VC6).
14940
14941 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
14942
14943         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
14944         from default_path.
14945
14946 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
14947
14948         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
14949         the 2.0 profile.
14950
14951 2005-03-27  Raja R Harinath  <harinath@gmail.com>
14952
14953         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
14954         has to be in $(exec_prefix).  $(prefix) is for arch-independent
14955         stuff, and it would probably use $(prefix)/share rather than
14956         $(prefix)/lib.
14957
14958 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
14959
14960         * console-io.c: added 2 includes that might be missing.
14961
14962 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
14963
14964         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
14965         profile.
14966
14967         * reflection.c (create_custom_attr): Allocate the params array using
14968         alloca so it gets GC tracking.
14969
14970 2005-03-23  Chris Toshok  <toshok@ximian.com>
14971
14972         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
14973         out some spew.
14974
14975 2005-03-24  Raja R Harinath  <rharinath@novell.com>
14976
14977         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
14978         changes to pick up any changes in prefix, etc.
14979
14980 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14981
14982         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
14983         
14984         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
14985         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
14986
14987 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
14988
14989         * class-internals.h object-internals.h class.c reflection.c: Extend the
14990         mono_lookup_dynamic_token () function to return the class of the
14991         token as well. 
14992
14993         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
14994         well. Fixes #73848.
14995
14996 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
14997
14998         * security-manager.c: Skip inheritance checks for intra-corlib
14999         class inheritance and method overrides. This skips a lot of checks
15000         and (anyway) permissions cannot work until corlib is loaded.
15001
15002 2005-03-23  Martin Baulig  <martin@ximian.com>
15003
15004         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
15005         MONO_TYPE_GENERICINST.  
15006
15007 2005-03-23  Martin Baulig  <martin@ximian.com>
15008
15009         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
15010
15011 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
15012
15013         * class.c: added locking comments to some functions.
15014         Cache the interface offsets arrays (saves about 20 KB
15015         of runtime memory in a typical app).
15016         Reduce the time overhead in mono_class_setup_supertypes ().
15017
15018 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
15019
15020         * icall.c: speedup and fix leaks in GetMethodsByName and
15021         GetPropertiesByName.
15022
15023 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15024
15025         * reflection.c: some locking fixes.
15026
15027 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15028
15029         * metadata.c: added missing break in case statement.
15030
15031 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
15032
15033         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
15034         typedbyref return values. Fixes #73941.
15035
15036 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
15037
15038         * security-manager.c|h: Added demandunmanaged method and 
15039         suppressunmanagedcodesecurity class to MonoSecurityManager.
15040         Renamed aptc class to allowpartiallytrustedcallers.
15041
15042 2005-03-17  Martin Baulig  <martin@ximian.com>
15043
15044         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
15045
15046 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15047
15048         * file-io.c: disabled file async. IO using aio_*. It uses the
15049         threadpool now. Workaround for bug #73718.
15050
15051 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15052
15053         * assembly.h, mono-config.c: added code to deal with bundled configs
15054         for bundled assemblies.
15055
15056 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
15057
15058         * *.c, private.h: cleanup, removing old private.h header file.
15059
15060 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
15061
15062         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
15063         and throw_on_unmappable_char attributes.
15064
15065 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
15066
15067         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
15068         _ProcessName_internal.
15069
15070 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
15071
15072         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
15073         #73631.
15074
15075         * icall.c threads.c threads-types.h: Remove slothash icalls as they
15076         are no longer used.
15077
15078 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
15079
15080         * object.c (compute_class_bitmap): Add support for generics. Fixes
15081         #73527.
15082
15083 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
15084
15085         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
15086
15087 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15088
15089         * filewatcher.c: commented out the code for windows watcher, as we don't
15090         use it (we use the managed implementation instead).
15091
15092 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
15093
15094         * object-internals.h (MonoThread): Remove 'unused1' field.
15095
15096         * appdomain.c: Bump corlib version.
15097
15098         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
15099
15100         * reflection.c (mono_reflection_create_runtime_class): Remove the
15101         AssemblyBuilder.Save optimization since it causes too many problems.
15102
15103 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
15104
15105         * exception.c|h: Added mono_get_exception_reflection_type_load to
15106         create a ReflectionTypeLoadException object.
15107         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
15108         to return NULL is a InheritanceDemand fails during reflection. Updated
15109         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
15110         ReflectionTypeLoadException if an InheritanceDemand fails during 
15111         reflection. Added icall mapping for GetLinkDemandSecurity.
15112         * security-manager.c|h: Added ves_icall_System_Security_
15113         SecurityManager_GetLinkDemandSecurity internal call to return the
15114         class and methods permissions set for a LinkDemand. Removed unused
15115         fields in MonoSecurityManager.
15116
15117 2005-03-10  Martin Baulig  <martin@ximian.com>
15118
15119         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
15120         it's a generic instance.
15121
15122 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
15123
15124         * reflection.c (mono_get_object_from_blob): Applied patch from
15125         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
15126
15127         * class.c (mono_class_is_assignable_from): Another try at fixing 
15128         #73469 without breaking anything.
15129
15130 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
15131
15132         * class.c: (mono_class_is_assignable_from): Revert the last changes
15133         since they don't work with generics.
15134         
15135         * class.c (mono_class_is_assignable_from): Fix build bustage.
15136
15137         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
15138         the managed IsAssignableFrom method. Fixes #73469.
15139
15140         * reflection.c (mono_reflection_call_is_assignable_from): New helper
15141         function.
15142
15143 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
15144
15145         * object.c (mono_load_remote_field_new): Fix returning uninitialized
15146         memory when the remoting callback does not sets the out arguments.
15147         Fixes #73007.
15148
15149         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
15150         by mistake.
15151
15152         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
15153
15154         * object-internals.h (MonoStackFrame): Sync with managed object layout.
15155
15156         * appdomain.c: Bump corlib version.
15157
15158 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
15159
15160         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
15161         function.
15162
15163         * threads.c (mono_thread_attach): Detect threads which are not started
15164         by the GC pthread wrappers.
15165
15166 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
15167
15168         * icall.c: Added new icall for RNG.
15169         * rand.c|h: Added new icall to open the RNG. This allows to share a 
15170         single handle on Linux to access /dev/urandom and fix #73183.
15171
15172 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
15173
15174         * object.c: setting the new vtable in a transparent proxy object must
15175         not change the GC descriptor.
15176
15177 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15178
15179         * object.c: fixed compilation without GCJ support.
15180         * reflection.c: for runtime-created types ensure klass->has_references
15181         is correct (bug #73215).
15182
15183 2005-03-02  Martin Baulig  <martin@ximian.com>
15184
15185         * class.c (mono_class_is_assignable_from): Make this work if
15186         `oklass' is a generic instance; fixes #72831.
15187
15188 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
15189
15190         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
15191         with hasthis set.
15192         
15193         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
15194
15195         * marshal.c: Reorganize native->managed marshalling code to also use
15196         the emit_marshal_... functions.
15197
15198 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
15199
15200         * object.c: typed allocs have issues with bitmap sizes > 30,
15201         so check for max_set >= 30.
15202
15203 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
15204
15205         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
15206         managed code. Fixes #73012.
15207
15208         * metadata.h (MonoMarshalSpec): Add elem_mult field.
15209
15210         * metadata.c reflection.c: Load/Emit elem_mult as well.
15211         
15212         * metadata.h (MonoMarshalSpec): Add comment.
15213
15214         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
15215
15216         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
15217         num_elem to -1 if not given.
15218
15219         * object-internals.h (MonoReflectionMarshal): Add has_size field.
15220
15221         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
15222         given values.
15223
15224 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
15225
15226         * null-gc.c (mono_gc_free_fixed): Was not compilable.
15227
15228 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
15229
15230         * reflection.c (encode_marshal_blob): Encode param_num field as well.
15231
15232         * object-internals.h (MonoReflectionMarshal): Add param_num field.
15233
15234 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
15235
15236         * object.c: generalized the reference bitmap creation
15237         and added hooks for the new GC.
15238         * class-internals.c: removed the gc_bitmap field from MonoClass.
15239
15240 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
15241
15242         * domain.c: help the compiler to produce better code
15243         in mono_jit_info_table_find ().
15244
15245 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
15246
15247         * object.c: make all allocations look typed.
15248
15249 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
15250
15251         * socket-io.c: load Mono.Posix if it's not loaded already
15252         (fixes bug#73033).
15253
15254 2005-02-24  Martin Baulig  <martin@ximian.com>
15255
15256         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
15257         * reflection.c (dup_type): Likewise.
15258
15259 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
15260
15261         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
15262         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
15263
15264 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
15265
15266         * domain.c, threads.c, object-internals.h: make the critical thread
15267         local vars use the fast access mode (even when we're compiled in
15268         a lib). Provide accessors to be used by the jit during codegen.
15269
15270 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
15271
15272         * appdomain.c: Changed hook functios behavior to include
15273         support for the reflection only assemblies. Some icalls were changed
15274         to support the mentioned assemblies too. Signatures of static methods
15275         try_assembly_resolve and real_load now have an additional parameter:
15276         refonly.
15277
15278         * assembly.c: General changes to mono_assembly_ methods to support
15279         reflection only api. Functions mono_assembly_open, mono_assembly_load,
15280         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
15281         suffix, to support an additional gbool parameter to specify whether
15282         the assembli is reflection only or not. Created some new hook functions 
15283         to add support for reflection only assemblies. Signatures of static 
15284         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
15285         have now an additional parameter: refonly.
15286
15287         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
15288         indicating whether the assembly is reflection only or not.
15289
15290         * exception.c: Add mono_get_exception_invalid_operation.
15291
15292         * icall.c: Throw an InvalidOperationException when trying to invoke
15293         a property/method/event, or trying to set/get the value of a field.
15294         Also add an icall to retrieve the ref_only flag to the
15295         MonoReflectionAssembly.
15296
15297 2005-02-23  Chris Toshok  <toshok@ximian.com>
15298
15299         Part of fix for #72827.
15300         * mono-debug.c (mono_debug_add_method): add lexical block data to
15301         the info we write.  Kind of a hack at the moment - we copy the
15302         lexical block info from the MonoDebugMethodInfo to the
15303         MonoDebugMethodJitInfo here, before writing it.
15304         (mono_debug_read_method): read the lexical block info.
15305
15306         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
15307
15308         * debug-mono-symfile.h: add lexical block support.
15309
15310         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
15311         support.
15312
15313 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
15314
15315         * loader.c (mono_lookup_pinvoke_call): Fix warning.
15316
15317         * object.c (mono_runtime_free_method): Call mono_free_method () and
15318         put the TODOs there.
15319
15320         * loader.c (mono_free_method): Free up most memory allocated for 
15321         dynamic methods.
15322
15323 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
15324
15325         * reflection.c: properly flag a Type argument to a
15326         named custom attr value (bug #72248).
15327
15328 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
15329
15330         * reflection.c: reduce code duplication in named custom
15331         attribute encoding.
15332
15333 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
15334
15335         * reflection.c: properly encode custom attrs of type object
15336         (bug #72649).
15337
15338 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
15339
15340         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
15341
15342 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
15343
15344         * socket-io.c: load System.dll if it's not loaded already
15345         (bug #72850 and #70477).
15346
15347 2005-02-21  Martin Baulig  <martin@ximian.com>
15348
15349         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
15350         generic instances.
15351
15352 2005-02-21  Martin Baulig  <martin@ximian.com>
15353
15354         * reflection.c (mono_image_build_metadata): We also need to
15355         "fixup" the MethodImpl table after we computed the final method
15356         indices.  Call fixup_methodimpl() to do that.
15357         (fixup_methodimpl): New private method.
15358
15359 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
15360
15361         * assembly.c: special case mscorlib.dll (bug#72536),
15362         patch from Carlos Alberto Cortez.
15363
15364 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
15365
15366         * threads-types.h threads.c: Fix build bustage.
15367
15368         * threads.c: Use a union for long<->double conversions.
15369
15370         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
15371         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
15372
15373         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
15374         containing the checkpoint call with NOT_TAKEN.
15375         
15376         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
15377         checkpoint before pushing the arguments, so they won't have to be
15378         spilled to stack.
15379
15380 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15381
15382         * domain.c, assembly.c, domain-internals.h: make some data
15383         const and relocation-free.
15384
15385 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
15386
15387         * object.c, appdomain.c, class-internals.h: introduce the
15388         MonoClassRuntimeInfo structure to hold the info needed to
15389         use a class at runtime. Made mono_class_vtable() lock-free
15390         for all the appdomains.
15391
15392 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
15393
15394         * metadata-internals.h, image.c: introduce a per-image mempool to
15395         be used for memory that has the same lifetime as the image.
15396
15397 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
15398
15399         * domain.c: In mono_init_internal(), instead of selecting the first
15400         runtime version supported by an executable, get a list of all
15401         supported versions and select the one for which an mscorlib exists
15402         (since even if the runtime supports a given version, it doesn't mean
15403         that the framework for that version is installed).
15404         Modified get_runtimes_from_exe to support this behavior.
15405         In supported_runtimes, added information about additional system
15406         assembly versions.
15407         
15408         * assembly.c: Added support for more than one system assembly version
15409         per runtime version. Updated the assembly list.
15410         In mono_assembly_remap_version, removed the initial version check,
15411         since we don't know to which version we need to compare until we
15412         get the version set on which the assembly is based.
15413         Moved the code for loading corlib into the new method
15414         mono_assembly_load_corlib(), so it can be used by the initialization
15415         code.
15416         
15417         * domain-internals.h: Updated data structures and added declaration
15418         for mono_assembly_load_corlib.
15419
15420 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
15421
15422         * reflection.c (resolve_object): Fix the creation of the signature in 
15423         the SignatureHelper case.
15424
15425         * assembly.c (mono_assembly_remap_version): Fix binary search.
15426         
15427 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
15428  
15429         * class.c: Added inheritance check when a method is overloaded (from a
15430         virtual method or when implementing an interface) and when a class is
15431         inherited. Added functions to set a failure for a class and to 
15432         retreive the exception from a failure.
15433         * class-internals.h: Added fields to MonoClass to keep the exception
15434         information status for inheritance (or other exceptions) to be thrown
15435         later (i.e. not at load time).
15436         * object.c: Throw the inheritance SecurityException when a type is to 
15437         be created with either class or method inheritance violations.
15438         * reflection.c|h: Fix when getting declsec from a class. Removed 
15439         unrequired code for class. Improved sanity in parameter naming.
15440         * security-manager.c|h: Added functions to check for class and method
15441         inheritance.
15442
15443 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
15444
15445         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
15446         and has_finalize in dynamic types as well.
15447
15448 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
15449
15450         * culture-info-table.h : fixed currency format for en-GB (and so on).
15451
15452 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
15453
15454         * gc.c: ensure the GC handles never have 0 as a value.
15455
15456 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
15457
15458         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
15459         a pointer to a struct to unmanaged code. Fixes #72625.
15460
15461 2005-02-16  Martin Baulig  <martin@ximian.com>
15462
15463         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
15464
15465 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
15466
15467         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
15468
15469 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
15470
15471         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
15472
15473         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
15474         UnmanagedFunctionPointerAttribute, use it for determining calling convention
15475         etc. Fixes #71471.
15476
15477         * reflection.c (mono_custom_attrs_get_attr): New helper function.
15478
15479         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
15480
15481 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
15482
15483         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
15484         changes to make the current context a field in MonoThread.
15485
15486 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
15487
15488         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
15489         the last change.
15490         
15491         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
15492         extracted from mono_marshal_get_native_wrapper.
15493
15494         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
15495         to create wrappers around native functions.
15496
15497         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
15498         delegates for arbitrary function pointers. Fixes #71472.
15499
15500 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
15501
15502         * threads.c: cleaned up the code a little.
15503
15504 2005-02-15  Martin Baulig  <martin@ximian.com>
15505
15506         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
15507         the data table.
15508
15509         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
15510         allocate larger chunks if needed.
15511
15512 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
15513
15514         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
15515         in by mistake.
15516
15517 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
15518
15519         * domain.c: keep the domains in an array and ensure the domain ids
15520         are kept small, so they can be used as indexes to domain-specific data
15521         with a small memory overhead.
15522
15523 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
15524
15525         * icall.c: Handle byref types in Type icalls. Fixes #72544.
15526
15527 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
15528
15529         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
15530
15531 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
15532
15533         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
15534
15535         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
15536         values.
15537
15538         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
15539         
15540 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
15541
15542         * domain-internals.h: add the hashtable here.
15543
15544         * class-internals.h: Remove `info' from MonoMethod
15545
15546         * domain.c: Add a new hashtable, jit_trampoline_hash
15547
15548 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
15549
15550         * object.c: don't set the value of static fields
15551         (fixes bug#72494).
15552
15553 2005-02-11  Martin Baulig  <martin@ximian.com>
15554
15555         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
15556         (mono_debug_add_method): Silently ignore the method if it's too big.
15557         (mono_debug_add_type): Likewise.
15558
15559 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
15560
15561         * threads.c, appdomain.c: remove #ifdefs from the code.
15562
15563 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
15564
15565         * metadata-internals.h: Added flags to MonoAssembly to cache the most
15566         common security informations. This allows us to stay in unmanaged code
15567         when doing LinkDemand and it's special cases (except for the first 
15568         time for initialization). The flags a very much used with --security.
15569         * reflection.c|h: Added code to get declarative security attributes 
15570         for LinkDemand and InheritanceDemand. This required to refactor the
15571         existing code for Demand.
15572         * security-manager.c|h: Added new method fields for the special cases
15573         of LinkDemand.
15574
15575 2005-02-10  Martin Baulig  <martin@ximian.com>
15576
15577         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
15578         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
15579
15580 2005-02-10  Martin Baulig  <martin@ximian.com>
15581
15582         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
15583         debugging code; this is almost a complete rewrite.
15584
15585         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
15586
15587 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
15588
15589         * domain.c, object.h: expose mono_string_equal () and 
15590         mono_string_hash ().
15591         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
15592         it's implemented in managed code.
15593
15594 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15595
15596         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
15597         lo leak objects between appdomains.
15598
15599 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15600
15601         * assembly.c: old compilers compilation fix from 
15602         robertj@gmx.net (Robert Jordan).
15603
15604 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
15605
15606         * class-internals.h: Little reminder for the future.
15607
15608         * debug-helpers.c: Fix up wrapper_type_names
15609
15610 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15611
15612         * image.c, metadata-internals.h: when loading an image from a file,
15613         mmap all of it and use the same codepaths as when using a
15614         in-memory image: the code is simpler and we use less memory
15615         (both writable and readonly).
15616
15617 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
15618
15619         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
15620         API to alloc runtime data structures that need to be tracked by the
15621         GC and contain pointers.
15622         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
15623         make the code more readable and eventually use a different GC.
15624
15625 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
15626
15627         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
15628         for out arguments.
15629         
15630 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
15631
15632         * object.c: In release_type_locks(), don't release the cctor lock
15633         if it has already been released. This fixes a crash in the
15634         thread5 test.
15635
15636 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
15637
15638         * gc.c, marshal.c, icall.c: register a delegate for finalization
15639         only when the native function pointer has been allocated for it.
15640
15641 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
15642
15643         * object.c: cleaned up some code, allocate objects that are
15644         pointer free with the atomic malloc variant. Allocate memory
15645         for static data from the mempool if it's pointer-free.
15646         Allocate the bounds array at the end of the array data, when needed.
15647         * object-internals.h, object.h: move a private function in a private
15648         header.
15649         * class.c: handle missing case in tracking references in fields.
15650
15651 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
15652
15653         * class.c, class-internals.h: keep track if a type has
15654         reference fields in either the instance or static fields.
15655
15656 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
15657
15658         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
15659         and renamed to MonoRuntimeInfo. Added fields to store the expected
15660         framework assembly version. Changed mono_get_framework_version and
15661         mono_get_runtime_version for a single mono_get_runtime_info method.
15662         
15663         * assembly.c: Added method to remap system assembly versions to the
15664         current executing runtime version. Removed old mapping code.
15665         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
15666         
15667         * icall.c, reflection.c: Track api changes.
15668
15669 2005-02-06  Miguel de Icaza  <miguel@novell.com>
15670
15671         * loader.c (method_from_memberref): Improve error reporting,
15672         produce the class name instead of the typeref/typedef index. 
15673
15674 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
15675
15676         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
15677
15678 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
15679
15680         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
15681         stdcall and charset name mangling.  Reorganize the code and add
15682         some tracing stuff.
15683
15684 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
15685
15686         * monodiet.c: More iters!
15687
15688         * marshal.c: Iter usage.
15689
15690         * icall.c: Iter usage.
15691
15692         * object.c: Use iters.
15693
15694         * debug-helpers.c: More iters
15695
15696 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
15697
15698         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
15699         under win32.
15700
15701 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
15702
15703         * mono-debug-debugger.c: use iters
15704
15705         * class.c, class-internals.h: mono_class_setup_events is static
15706         now
15707
15708         * All callers: use iters
15709
15710 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
15711
15712         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
15713         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
15714
15715 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
15716
15717         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
15718
15719         * marshal.h: Add prototypes for ldfld/stfld_remote.
15720
15721         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
15722         this is called during startup.
15723         
15724 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
15725
15726         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
15727         MonoThreadsSync struct private in monitor.c. Changed the way
15728         MonoThreadsSync is allocated so it's faster and there is no
15729         need to keep track of it with a finalizer and it uses less memory.
15730         This also finally allows us to allocate mono objects as ptrfree when
15731         there are no reference fields.
15732
15733 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
15734
15735         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
15736         disappearing link to the GC interface and use them to simplify
15737         the gchandles code.
15738
15739 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
15740
15741         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
15742         stfld_remote which call mono_load/store_field_new. This allows methods
15743         calling ldfld/stfld wrappers to be AOTed.
15744
15745         * console-io.c: Include sys/filio.h under solaris.
15746         
15747         * console-io.c: Include curses.h if needed correctly.
15748
15749 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
15750         
15751         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
15752         method->klass as well.
15753
15754         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
15755
15756         * class.c (mono_class_init): Switch on lazy initialization of 
15757         methods.
15758
15759         * class.c (mono_class_get_finalizer): Handle the case when the 
15760         finalizer is inherited.
15761
15762 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15763
15764         * console-io.c: <curses.h> is needed by term.h on solaris.
15765
15766 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
15767
15768         * icall.c, class-internals.h, monodiet.c, class.c: Remove
15769         mono_class_setup_properties where possible. Remove this ftn from
15770         the header file, and make it static.
15771
15772 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
15773
15774         * loader.c: Add missing setup_... call.
15775
15776         * class.c: Add missing setup_... calls.
15777
15778         * class.c (mono_class_init): Switch on lazy initialization of 
15779         the generic vtable.
15780         
15781         * class.c (mono_class_init): Fix generics broken by the recent changes.
15782
15783         * monodiet.c (handle_type): Add missing setup_... calls.
15784
15785         * class.c: Back out garbage in previous patch.
15786         
15787         * class.c: Add missing setup_... calls.
15788
15789         * class.c (mono_class_get_method_from_name_flags): Avoid calling
15790         mono_class_setup_methods () if possible.
15791
15792         * class-internals.h (MonoClass): Add 'has_cctor' flag.
15793
15794         * class-internals.h (MonoCachedClassInfo): New structure.
15795
15796         * class.c: Initialize properties and events fields of MonoClass lazily.
15797
15798         * class.c: Add infrastructure for lazily initializing the methods and
15799         vtable fields of MonoClass. Not yet used.
15800
15801         * class.c (mono_class_get_finalizer): New helper function.
15802
15803         * class.c: Add infrastructure for loading some class related data from
15804         an AOT file.
15805
15806         * object.c: Add infrastructure for initializing the vtable from data
15807         in the AOT file.
15808
15809         * gc.c (run_finalize): Use mono_class_get_finalizer ().
15810
15811         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
15812         appropriate initialization function before accessing parts of the
15813         MonoClass structure.
15814
15815         * marshal.c: Fix warnings.
15816         
15817         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
15818
15819         * mono-debug-debugger.c (get_exception_message): Use 
15820         mono_class_get_method_from_name_flags ().
15821
15822 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
15823
15824         * reflection.c, appdomain.c: Replace a few manual searches that
15825         Zoltan missed. (Paolo approved this part of my initial patch).
15826
15827 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
15828
15829         * profiler.c: disable recording statistical events at report time.
15830
15831 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15832
15833         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
15834         to byteswap arrays of enum values, too (bug #72080).
15835
15836 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
15837
15838         * appdomain.c (set_domain_search_path): Allow this to be called if
15839         domain->setup is not yet set.
15840
15841         * loader.c (mono_method_get_index): New helper function.
15842
15843         * loader.c reflection.c: Use mono_method_get_index ().
15844
15845         * class.c (mono_class_get_method_from_name_flags): New helper method.
15846
15847         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
15848         this.
15849
15850         * class.c (mono_class_get_cctor): New helper method.
15851
15852         * string-icalls.c object.c class.c marshal.c reflection.c: Use
15853         mono_class_get_method () to look up methods.
15854
15855 2005-02-01  Miguel de Icaza  <miguel@novell.com>
15856
15857         * console-io.c: Fix the build, this should work on Windows.
15858
15859 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
15860
15861         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
15862         be set to null to keep things valid
15863
15864 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
15865
15866         * icall.c: added Console 2.0 icalls.
15867         * Makefile.am: added console-io.[ch]
15868         * console-io.[ch]: internal calls for Console 2.0 API.
15869
15870 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15871
15872         * class.c: make sure we consider all the interfaces
15873         when calculating max_interface_id (bug found by
15874         Jeroen Frijters running ikvm).
15875
15876 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
15877
15878         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
15879         valuetype fields to null.
15880
15881         * object.c (set_value): Ditto. Fixes #71669.    
15882
15883 2005-01-31  Martin Baulig  <martin@ximian.com>
15884
15885         * metadata.c (mono_metadata_has_generic_params): New public
15886         function; checks whether something is a generic method.
15887
15888 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
15889
15890         * appdomain.c: fix infinite recursion when adding assemblies.
15891
15892 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
15893
15894         * object.c: Fix small typo to return all items for Environment.
15895         GetCommandLineArgs.
15896
15897 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
15898
15899         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
15900         reflection.c: more domain and assembly-unload related fixes
15901         and memory leaks plugs.
15902
15903 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
15904
15905         * 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.
15906
15907 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
15908
15909         * loader.c (mono_method_signature): Make this method lazy
15910         (mono_get_method_from_token): Don't computate the signature here.
15911
15912         Doing this saves quite a bit of memory. I got 90 kb on starting up
15913         monodoc. It should also save some disk reads on startup.
15914
15915         * *: MonoMethod->signature might be NULL now. You *MUST* use
15916         mono_method_signature.
15917
15918 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
15919
15920         * object.c (mono_runtime_get_main_args): Return an array from the
15921         current domain here. Fixes #71938.
15922
15923 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
15924
15925         * monitor.c: formatting changes to comply with the
15926         mono coding style and remove #ifdefs from the code.
15927
15928 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
15929
15930         * metadata.c, private.h: remove some unneeded data
15931         and use a more compact representation for table schemas.
15932
15933 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
15934
15935         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
15936         to get a better distribution in hash tables.
15937         * *.c: use mono_aligned_addr_hash() where appropriate.
15938         * assembly.c: make var static.
15939
15940 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
15941
15942         * domain-internals.h: Put MonoJitInfo on a diet.
15943
15944         * domain.c: Fix a warning.
15945
15946 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
15947
15948         * gc.c: rework the gc handles code to reuse handles
15949         when freed.
15950
15951 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
15952
15953         * domain.c: fixed long standing bug in mono_string_equal() which
15954         was brought to light with the ldstr changes.
15955
15956 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
15957
15958         * reflection.c: Remove warning by adding missing include for marshal.h
15959
15960 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
15961
15962         * domain.c, object.c: change the ldstr_table to hold
15963         MonoString* as keys: makes the runtime isinterned lookup
15964         faster and simplifies memory management.
15965
15966 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
15967  
15968         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
15969         possible to add imperative security checks before calling the icall.
15970         * reflection.c: Return security attributes on the original MonoMethod
15971         (and not the wrapped one). This fix permissions on icalls.
15972
15973 2005-01-25  Dick Porter  <dick@ximian.com>
15974
15975         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
15976         the check for mktime() support actually test the mktime() return
15977         value.  "Fixes" bug 71682, though the output is still different to
15978         MS.
15979
15980 2005-01-25  Martin Baulig  <martin@ximian.com>
15981
15982         * class.c (mono_class_is_assignable_from): Make this work for
15983         generic instances.
15984
15985 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
15986
15987         * marshal.c (mono_string_utf8_to_builder)
15988         (mono_string_builder_to_utf16): We might not have ownership of the
15989         string. In thise case, we need to create a new buffer.
15990
15991         * object-internals.h (mono_stringbuilder_capacity): sb->str might
15992         be null, in which case, use the default capacity.
15993
15994 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
15995
15996         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
15997         GC events to the profiler.
15998
15999 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
16000
16001         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
16002         if you don't want the GC to run.
16003
16004 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
16005
16006         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
16007         start providing a GC API and keeping different implementations in
16008         their own file.
16009         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
16010
16011 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
16012
16013         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
16014         mmap rather than allocating a huge buffer.
16015         (mono_debug_close_mono_symbol_file): Free the buffer allocated
16016         above.
16017
16018 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
16019
16020         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
16021         and CheckExecutionRights.
16022         * reflection.c|h: Keep the index of the declarative security to be 
16023         used, instead of the pointer, when AOT compiler is used. Also add 
16024         class initialization when requesting demands.
16025         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
16026         CheckExecutionRights. Both properties are now FALSE by default, and
16027         unmodifiable, unless the --security option is used.
16028
16029 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
16030
16031         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
16032         reflection.c: properly refcount images and assemblies, many leaks fixed.
16033
16034 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16035
16036         * threadpool.c: increase the timeout for threads in the thread pool to
16037         10s.  Fixes bug #67159.
16038
16039 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
16040
16041         * class-internals.h: Sun's compiler insists on explicit
16042         signed on bit fields to handle then correctly.
16043
16044 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
16045
16046         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
16047         Make the size of the array fit only the number of invalid path
16048         chars that we have.
16049
16050         * class.c (_mono_class_get): Improve the error reporting when a
16051         class referenced is not found, to assist debugging. 
16052
16053 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
16054
16055         * threads.c: fix off-by-one error.
16056         * domain.c: free data allocated in the domain.
16057
16058 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
16059
16060         * reflection.c (mono_method_body_get_object): Fill out exception info
16061         as well.
16062
16063         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
16064         structure.
16065         
16066 2005-01-19  Martin Baulig  <martin@ximian.com>
16067
16068         * loader.c (mono_get_method_constrained): Make this work again.
16069
16070 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
16071
16072         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
16073         guint16 to match the managed side.
16074
16075         * reflection.c (mono_reflection_body_get_object): Fill out local
16076         variables array.
16077
16078         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
16079         as well.
16080
16081         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
16082         'local_var_sig_token'.
16083
16084 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
16085
16086         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
16087         System.Drawing.
16088
16089         * reflection.c (mono_method_body_get_object): Handle abstract and
16090         runtime methods.
16091
16092 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
16093
16094         * marshal.c, loader.c, class-internals.h, reflection.c:
16095         store the emthod data for a wrapper in an array instead of a list.
16096
16097 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
16098
16099         * marshal.c: change the code to allocate memory more
16100         conservatively for method wrappers.
16101
16102 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
16103
16104         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
16105         fields from MonoClass to the marshal info structure where they belong.
16106
16107 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
16108
16109         * class.c, object.c, class-internals.h, marshal.c: rearrange
16110         some fields and tweak some types to lower memory usage.
16111
16112 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
16113
16114         * threads.c (signal_thread_state_change): Handle the case when the
16115         target thread is the current thread.
16116
16117         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
16118
16119         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
16120         emit_ptr_to_object_conv. 
16121
16122         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
16123         marshalling. Fixes #71352.
16124
16125 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
16126
16127         * metadata.h, blob.h: move table enum to blob.h so it can be included
16128         in any header.
16129         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
16130         cut the size of MonoImage/MonoDynamicImage.
16131
16132 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
16133
16134         * profiler.c (mono_profiler_install_simple): Fix default arguments.
16135
16136 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
16137
16138         * reflection.c, reflection.h, icall.c: add a function to check
16139         if an attribute type is defined for a metadata object.
16140
16141 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
16142
16143         * object-internals.h: Added some needed fields from StringBuilder class.
16144         * marshal.c: Set the maxCapacity when creating a StringBuilder.
16145
16146 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
16147
16148         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
16149         threads before shutting down the runtime.
16150
16151         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
16152
16153 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
16154
16155         * object-internal.h, threads.c: implement stacksize and 
16156         parameterized thread start functionality (requires
16157         matching corlib). Marked broken code for later removal.
16158
16159 2005-01-12  Martin Baulig  <martin@ximian.com>
16160
16161         * class-internals.h (MonoGenericClass): Moved the `initialized'
16162         flag to MonoDynamicGenericClass, removed `init_pending'.
16163         (MonoGenericInst): Added `is_reference' flag.
16164
16165 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
16166
16167         * reflection.c (mono_image_create_pefile): Only set the pe_offset
16168         inside the MSDOS header. Fixes #71201.
16169
16170         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
16171         gc thread.
16172         (mono_domain_finalize): Ditto.
16173
16174 2005-01-12  Martin Baulig  <martin@ximian.com>
16175
16176         * class.c (mono_get_shared_generic_class): Use the cache for
16177         non-dynamic generic classes.
16178
16179         * class-internals.h (mono_class_create_generic_2): Removed
16180         function prototype, this function is now static inside class.c.
16181
16182         * class.c (mono_class_create_generic_2): Made this static, only
16183         call it from mono_class_init() and mono_class_setup_parent().
16184         (collect_implemented_interfaces_aux): Call mono_class_init() on
16185         the interfaces we collect.
16186         (mono_class_setup_vtable): Call mono_class_init (class->parent).
16187
16188 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
16189
16190         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
16191         it a real thread handle.
16192
16193         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
16194         MonoJitExceptionInfo, since each catch clause needs its own variable.
16195         
16196 2005-01-11  Dick Porter  <dick@ximian.com>
16197
16198         * image.c (mono_pe_file_open): New variant on mono_image_open()
16199         that does not set up the CLI metadata; used for FileVersionInfo so
16200         it can get the data for windows binaries too.
16201         
16202         * process.c (process_read_string_block): Don't read off the end of
16203         the StringTable block.
16204
16205         These both fix bug 70766.
16206
16207 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
16208
16209         * gc.c: set some fields to NULL at GC cleanup time.
16210         * threads.c: if we quit the main thread, call exit ().
16211
16212 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
16213
16214         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
16215
16216 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
16217
16218         * threads.h, threads.c, object.c: added accessor and settor for
16219         main_thread. Handle it specially when exiting from it: wait
16220         for other foreground threads to exit.
16221
16222 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
16223
16224         * process.c, verify.c: remove some bloat.
16225
16226 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
16227
16228         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
16229         the calling convention to cdecl under win32.
16230
16231 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
16232
16233         * object.c (mono_object_get_size): New function to get the size of
16234         an object instance.
16235
16236         * profiler.c (simple_allocation): Use above.
16237
16238 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
16239
16240         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
16241         ves_icall_System_AppDomain_getRootDomain (as it's not required to
16242         get an appdomain by it's id and we can't assume the root's id is 0).
16243         * domain-internals.h: Change the function prototype to match.
16244         * icall.c: Change the icall table for AppDomain.
16245
16246 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
16247
16248         * locales.c (string_invariant_compare_char): Only compute
16249         GUnicodeTypes in the case where we need them.  Test for ordinality
16250         first and return if so.
16251
16252         From the commit:
16253
16254                 /*
16255                  * FIXME: here we must use the information from c1type and c2type
16256                  * to find out the proper collation, even on the InvariantCulture, the
16257                  * sorting is not done by computing the unicode values, but their
16258                  * actual sort order.
16259                  */
16260
16261 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
16262
16263         * loader.c: for P/Invoke methods, allow the "Internal" shared
16264         library name to refer to the calling process symbol namespace.
16265
16266 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
16267
16268         * Makefile.am: Add the security manager to the build.
16269         * security-manager.c|h: New. Initialization of the security manager.
16270
16271 2005-01-07  Dick Porter  <dick@ximian.com>
16272
16273         * threads.c: 
16274         * monitor.c: Update thread state during Monitor and WaitHandle
16275         waits.  Fixes bug 71031.
16276
16277 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
16278
16279         * reflection.c (property_encode_signature): Correctly handle when the
16280         property has no methods.
16281
16282 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
16283
16284         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
16285         
16286         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
16287         fields from mb, not rmb. Fixes #71017.
16288
16289         * marshal.c (emit_ptr_to_str_conv): Add support for 
16290         ByValTStr -> string conversion. Fixes #71015.
16291
16292         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
16293
16294         * mempool.c (mono_mempool_contains_addr): New helper function.
16295
16296 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
16297
16298         * metadata.c (mono_metadata_compute_size): Fix size calculation of
16299         HasSematics encoded fields.
16300         
16301         * metadata.c (mono_type_to_unmanaged): Improve error message for 
16302         invalid string marshalling.
16303
16304         * metadata.c: Fix warnings.
16305         
16306 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
16307
16308         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
16309         profiler support.
16310
16311 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
16312
16313         * domain.c object.c domain-internals.h: Revert part of r38077 since the
16314         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
16315         tests.
16316
16317 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
16318
16319         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
16320         so methods containing these can be AOTed.
16321
16322 2005-01-03  Martin Baulig  <martin@ximian.com>
16323
16324         * loader.c (find_method): Removed the hack for generic instances.
16325         (method_from_memberref): If our parent is a generic instance, pass
16326         its generic type definition to find_method() and then inflate the
16327         method.
16328         (mono_get_method_constrained): Pass the generic type definition to
16329         find_method() and inflate the method later.
16330
16331         * class-internals.h (MonoStats): Added `generic_class_count'.
16332
16333         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
16334         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
16335
16336         * reflection.c (mono_custom_attrs_from_params): Don't ignore
16337         generic type definitions.
16338
16339 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
16340
16341         * loader.c icall.c: Fix warnings.
16342
16343 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
16344
16345         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
16346         blittable types. Fixes #70864.
16347
16348 2004-12-29  Martin Baulig  <martin@ximian.com>
16349
16350         * icall.c
16351         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
16352
16353         * reflection.c (mono_method_get_object): Create a
16354         "System.Reflection.MonoGenericMethod" for inflated methods; don't
16355         call mono_get_inflated_method().
16356
16357         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
16358
16359 2004-12-27  Martin Baulig  <martin@ximian.com>
16360
16361         * class-internals.h (MonoMethod): Added `is_inflated' flag.
16362         (MonoMethodInflated): Added `inflated' field.
16363
16364         * class.c (mono_class_inflate_generic_method): Don't really
16365         inflate the method here; just set the `is_inflated' flag in the
16366         MonoMethod.
16367         (mono_class_get_inflated_method): Actually inflate the method here
16368         if it's not already inflated; we use the MonoMethodInflated's new
16369         `inflated' field as a cache.
16370
16371 2004-12-26  Martin Baulig  <martin@ximian.com>
16372
16373         * class.c
16374         (inflate_generic_class): Moved some code out of inflate_generic_type().
16375         (mono_class_inflate_generic_method): If we're already inflated,
16376         inflate the context and use the declaring method; ie. make sure
16377         the declaring method of an inflated method is always the generic
16378         method definition.
16379         (mono_class_create_from_typedef): Create
16380         `class->generic_container->context->gclass'.
16381
16382 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
16383
16384         * metadata-internals.h, marshal.c, reflection.c: More
16385         MonoGHashTable->GHashTable.
16386
16387         * domain-internals.h, class.c: Change MonoGHashTable's into
16388         GHashTables for some cases where no gc stuff is used
16389
16390         All users: update apis
16391
16392 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
16393
16394         * metadata.c (builtin_types): Make this `const'. Makes this get
16395         put into the shareable section.
16396         (mono_metadata_init): Casts to make gcc happy.
16397
16398 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
16399
16400         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
16401
16402 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
16403
16404         * icall.c: Added an internal call to retrieve the position and length
16405         of assembly-level declarative security attributes (RequestMinimum, 
16406         RequestOptional and RequestRefuse). This is used by the Assembly class
16407         to re-create the corresponding permission sets.
16408
16409 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
16410
16411         * marshal.c: fix the stelemref wrapper to be type correct
16412         (and faster).
16413
16414 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
16415
16416         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
16417         to do key & 0x7fffffff. Hashtable already does this. It just
16418         results in longer code.
16419
16420 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
16421
16422         * appdomain.c: Bump corlib version.
16423         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
16424         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
16425         * reflection.c|h: Add functions to get declarative security infos
16426         (blob position and length) for assemblies, classes and methods.
16427
16428 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
16429
16430         * reflection.c: sort the constant table (bug #70693).
16431
16432 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
16433
16434         * object-internals.h, threads.c, domain.c: add accessors for
16435         the MonoThread and MonoDomain tls keys.
16436
16437 2004-12-18  Martin Baulig  <martin@ximian.com>
16438
16439         * class.c (inflate_generic_type): If we're inflating a generic
16440         instance, set `ngclass->context->container = context->container';
16441         ie. the container we inflated into.
16442
16443         * metadata.c (mono_metadata_parse_generic_param): Reflect above
16444         inflate_generic_type() changes.
16445
16446 2004-12-17  Martin Baulig  <martin@ximian.com>
16447
16448         * class-internals.h
16449         (MonoGenericClass): Replaced `MonoType *generic_type' with
16450         `MonoClass *generic_class'.  Removed `dynamic_info'; if
16451         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
16452         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
16453
16454 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
16455
16456         * exception.c (mono_exception_from_token): New helper function.
16457
16458 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
16459
16460         * assembly.c (mono_assembly_load_with_partial_name): Call 
16461         mono_assembly_loaded before invoking the preload hooks. Fixes
16462         #70564.
16463
16464         * object-internals.h (MonoThread): Change culture_info and 
16465         ui_culture_info into an array.
16466
16467         * threads.c: Cache culture info objects from more than one appdomain.
16468
16469         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
16470         current UI culture.
16471
16472 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
16473
16474         * threads.h threads.c appdomain.c: Clear the culture_info field of
16475         all threads during unloading if they point to an object in the dying
16476         appdomain.
16477
16478 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
16479
16480         * culture-info.h (TextInfoEntry): New struct
16481         * object-internals.h: sync with managed
16482         * locales.c: fill the `text_info_data' field
16483         * culture-info-tables.h: update
16484
16485 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
16486
16487         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
16488         collector.
16489
16490 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
16491
16492         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
16493         (ves_icall_ModuleBuilder_getMethodToken): Ditto
16494
16495 2004-12-12  Martin Baulig  <martin@ximian.com>
16496
16497         * mono-debug-debugger.c (write_type): If we're an enum and the
16498         builtin types have already been initialized, call mono_class_init().
16499
16500 2004-12-11  Martin Baulig  <martin@ximian.com>
16501
16502         * metadata.c (mono_metadata_load_generic_params): Added
16503         `MonoGenericContainer *parent_container' argument; automatically
16504         compute `container->is_method'; pass the correct owner to
16505         get_constraints().      
16506
16507         * reflection.c (compare_genericparam): Sort the GenericParam table
16508         according to increasing owners. 
16509
16510 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
16511
16512         * profiler.c: allow disabling the default profiler.
16513
16514 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
16515
16516         * decimal.c, icall.c: allow disabling System.Decimal support.
16517
16518 2004-12-09  Marek Safar <marek.safar@seznam.cz>
16519
16520         * reflection.c: Add support for null attribute arguments.
16521
16522 2004-12-09  Martin Baulig  <martin@ximian.com>
16523
16524         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
16525         names to get rid of compiler warnings.
16526
16527 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
16528
16529         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
16530         mono_marshal_load_type_info (). Fixes #69625.
16531         (mono_marshal_get_ptr_to_struct): Likewise.
16532
16533 2004-12-08  Martin Baulig  <martin@ximian.com>
16534
16535         * mono-debug.h: Bumped version number to 47.
16536
16537         * mono-debug-debugger.c
16538         (mono_debugger_event_handler, mono_debugger_event): Take two
16539         guint64 arguments insteed of a gpointer and a guint32.  
16540
16541 2004-12-08  Martin Baulig  <martin@ximian.com>
16542
16543         * debug-mono-symfile.h
16544         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
16545         `address' to `native_offset'.
16546
16547 2004-12-08  Martin Baulig  <martin@ximian.com>
16548
16549         * class.c (mono_class_create_from_typespec): Only inflate if we
16550         either have `context->gclass' or `context->gmethod'.
16551
16552 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
16553
16554         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
16555
16556         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
16557
16558         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
16559
16560         * reflection.c (mono_assembly_get_object): Remove the workaround put
16561         in for the release.
16562         
16563         * appdomain.c: Use the corlib_internal field from MonoAssembly.
16564
16565         * appdomain.c: Bump corlib version.
16566
16567         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
16568         be visible in other appdomains.
16569
16570 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
16571
16572         * threads.c: Interlocked inc and dec for longs were messed up,
16573         use a KISS based impl for this. Fixes 70234
16574
16575 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
16576
16577         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
16578
16579 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
16580
16581         * icall.c: fix to follow policy not to allow struct
16582         arguments in icalls.
16583
16584 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16585
16586         * process.c: make the patch that handles spaces in file paths work
16587         on mono/windows too.
16588
16589 2004-12-06  Martin Baulig  <martin@ximian.com>
16590
16591         * class.c (mono_class_create_generic): Call
16592         mono_class_setup_supertypes() if we're dynamic.
16593         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
16594
16595 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
16596
16597         * object-internals.h: Add new fields to MonoThread.
16598
16599         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
16600
16601         * icall.c threads-types.h threads.c: Add new icalls.
16602
16603         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
16604
16605         * object-internals.h (MonoReflectionAssembly): Sync object layout with
16606         managed side.
16607
16608         * appdomain.c: Bump corlib version.
16609
16610         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
16611         internal assemblies. Fixes #69181.
16612
16613 2004-12-05  Martin Baulig  <martin@ximian.com>
16614
16615         * class.c (mono_class_inflate_generic_signature): Make this a
16616         no-op if `context' is NULL or we don't have any type parameters;
16617         also copy `sentinelpos'.        
16618
16619 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
16620
16621         * image.c: Add unbox_wrapper_cache.
16622
16623         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
16624
16625         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
16626         function generator.
16627         
16628         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
16629         Fixes #70173.
16630
16631         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
16632         
16633 2004-12-04  Martin Baulig  <martin@ximian.com>
16634
16635         * loader.c (mono_method_get_signature_full): New public function;
16636         like mono_method_get_signature(), but with an additional
16637         `MonoGenericContext *' argument.
16638
16639         * class.c (mono_class_inflate_generic_signature): Formerly known
16640         as inflate_generic_signature(); make this public.
16641
16642 2004-12-04  Martin Baulig  <martin@ximian.com>
16643
16644         * metadata.c
16645         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
16646         instead of a `MonoGenericContainer *'.  
16647         (mono_metadata_parse_array_full): Likewise.
16648         (mono_metadata_parse_signature_full): Likewise.
16649         (mono_metadata_parse_method_signature_full): Likewise.
16650         (mono_metadata_parse_generic_inst): Likewise.
16651         (mono_metadata_parse_generic_param): Likewise.
16652         (mono_metadata_parse_mh_full): Likewise.
16653         (mono_type_create_from_typespec_full): Likewise.
16654
16655 2004-12-03  Martin Baulig  <martin@ximian.com>
16656
16657         * class-internals.h (MonoGenericContainer): Replaced the
16658         `MonoGenericContext * pointer with a `MonoGenericContext'
16659         structure and made it the first element.
16660
16661 2004-12-03  Martin Baulig  <martin@ximian.com>
16662
16663         * class.c
16664         (inflate_generic_type): Set the `context->container' when creating
16665         a new MonoGenericContext.
16666         (mono_class_inflate_generic_method): Likewise.
16667         (mono_class_create_from_typespec): Just use `context->container'
16668         to get the container.
16669
16670         * loader.c (method_from_methodspec): Set `context->parent' from
16671         `context->container' - and if that's a method container, use its
16672         parent.  Also set the `context->container' when creating a new
16673         MonoGenericContext.
16674         (mono_get_method_from_token): Use just `context->container' to get
16675         the container.
16676
16677         * metadata.c (do_mono_metadata_parse_generic_class): Also set
16678         `gclass->context->container'.
16679
16680         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
16681         the `context->container' when creating a new MonoGenericContext.
16682
16683 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
16684
16685         * reflection.c (compare_genericparam): Sort params with identical
16686         owner by their number. Fixes gen-111 on sparc.
16687
16688 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
16689
16690         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
16691         around the domain changes.
16692
16693         * appdomain.c (mono_domain_unload): Handle the case when the thread
16694         calling Unload is itself being aborted during unloading. Fixes #70022.
16695
16696         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
16697
16698         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
16699         checkpoint_func as an icall so it gets a wrapper.
16700         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
16701         in the cross-appdomain wrappers too.
16702
16703         * threads.c (mono_thread_has_appdomain_ref): Make this public.
16704
16705         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
16706
16707         * reflection.c: Fix some memory leaks.
16708         
16709 2004-12-02  Martin Baulig  <martin@ximian.com>
16710
16711         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
16712
16713         * metadata.c (generic_class_cache): New static hashtable.
16714         (mono_metadata_lookup_generic_class): New public method.
16715
16716 2004-12-02  Martin Baulig  <martin@ximian.com>
16717
16718         * class.c (mono_class_create_from_typedef): Call
16719         mono_class_setup_parent() and mono_class_create_mono_type() before
16720         parsing the interfaces.
16721
16722 2004-12-02  Martin Baulig  <martin@ximian.com>
16723
16724         * metadata.c (generic_inst_cache): New static hashtable.
16725         (mono_metadata_lookup_generic_inst): New public function.
16726         (mono_metadata_inflate_generic_inst): New public function.
16727         (mono_metadata_parse_generic_inst): New public function.
16728         (do_mono_metadata_parse_generic_class): Use the new
16729         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
16730         since this'll also use the cache.
16731
16732         * reflection.c (mono_reflection_bind_generic_method_parameters):
16733         Use mono_metadata_lookup_generic_inst() to use the new cache.
16734
16735         * class.c (inflate_mono_type): Use
16736         mono_metadata_inflate_generic_inst() to inflate a generic
16737         instance; this'll also use the new cache.
16738
16739         * loader.c (method_from_methodspec): Use
16740         mono_metadata_parse_generic_inst() and
16741         mono_metadata_inflate_generic_inst() rather than parsing it
16742         manually, so we can use the new cache.
16743
16744 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
16745
16746         * threads.c (wait_for_tids): Do not incorrectly free threads when 
16747         the wait times out.
16748
16749 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
16750
16751         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
16752         iter->args based on whether parameters are passed in registers (i.e.
16753         MONO_ARCH_REGPARMS is defined)
16754
16755 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
16756
16757         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
16758         the exception message. Fixes #70070.
16759         (method_from_methodspec): Fix warnings.
16760
16761 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
16762
16763         * process.c: (complete_path) return the path quoted
16764
16765 2004-12-01  Martin Baulig  <martin@ximian.com>
16766
16767         * class-internals.h (MonoGenericInst): New structure.
16768         (MonoGenericClass): Replaced `type_argc', `type_argv' and
16769         `is_open' with `MonoGenericInst *inst'.
16770         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
16771         `is_open' with `MonoGenericInst *inst'.
16772
16773 2004-11-30  Martin Baulig  <martin@ximian.com>
16774
16775         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
16776
16777         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
16778         to `generic_class_cache'.
16779
16780         * metadata.c
16781         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
16782         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
16783         (mono_generic_inst_is_valuetype): Renamed to
16784         mono_generic_class_is_valuetype().
16785
16786         * class-internals.h
16787         (MonoGenericInst): Renamed to MonoGenericClass.
16788         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
16789         (MonoClass): Renamed `generic_inst' to `generic_class'.
16790         (MonoGenericContext): Renamed `ginst' to `gclass'.
16791
16792         * object-internals.h
16793         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
16794
16795         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
16796         mono_reflection_generic_class_initialize().
16797
16798         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
16799         now known as "System.Reflection.MonoGenericClass".
16800         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
16801
16802 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
16803
16804         * class-internals.h: Added a flag field to MonoClass to cache the
16805         declarative security attributes actions associated with the class.
16806         * domain-internals.h: Added booleans to MonoJitInfo to cache the
16807         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
16808         applicable to the JITted method.
16809         * reflection.c|h: Added functions to extract (as flags) which security
16810         actions are available (declaratively) for a method, class or assembly.
16811         * metadata.c|h: Added functions to search the declarative security
16812         table in the metadata.
16813         
16814 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
16815
16816         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
16817         EXPORTEDTYPES are already in the class name cache, so there is no
16818         need to add extra code here to look at them. Just removes a bit of
16819         cruft.
16820
16821         (ves_icall_System_Environment_get_TickCount): No need for #if
16822         WINDOWS. We already have the code in io-layer.
16823
16824 2004-11-28  Martin Baulig  <martin@ximian.com>
16825
16826         * loader.c
16827         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
16828         Fixes gen-112.cs.
16829
16830 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
16831
16832         * assembly.c (do_mono_assembly_open): Instead of having a
16833         conditional WITH_BUNDLE, incorporate support for bundles here, by
16834         having a global `bundles' variable holding a pointer to the actual
16835         bundles. 
16836
16837         (mono_register_bundled_assemblies): New API call used by the
16838         bundle code. 
16839
16840         See mkbundle.1 for details.
16841         
16842 2004-11-27  Martin Baulig  <martin@ximian.com>
16843
16844         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
16845         the vtable for generic methods.
16846
16847 2004-11-26  Martin Baulig  <martin@ximian.com>
16848
16849         * metadata.c
16850         (mono_metadata_generic_method_hash): New public function.
16851         (mono_metadata_generic_method_equal): Likewise.
16852
16853         * class-internals.h
16854         (MonoGenericContainer): Added `GHashTable *method_hash'.
16855
16856         * reflection.c (ReflectionMethodBuilder): Added
16857         `MonoGenericContainer *generic_container'.
16858         (reflection_methodbuilder_to_mono_method): Don't create a new
16859         MonoGenericContainer each time we're called.
16860         (mono_reflection_bind_generic_method_parameters): Use
16861         `container->method_hash' to cache the results so we don't create a
16862         different method if we're called several times with the same
16863         arguments.
16864
16865         * loader.c (method_from_methodspec): Use the new
16866         `container->method_hash' here, too.
16867
16868 2004-11-26  Martin Baulig  <martin@ximian.com>
16869
16870         * class.c (inflate_generic_signature): Correctly compute
16871         `res->has_type_parameters'.
16872         (mono_class_vtable): Use the `has_type_parameters' flag to
16873         determine whether we're a generic method.
16874
16875         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
16876
16877 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
16878
16879         * object.c (mono_runtime_run_main): Fix a small memory leak.
16880
16881 2004-11-25  Martin Baulig  <martin@ximian.com>
16882
16883         * class.c (set_generic_param_owner): Fixed the loop.
16884
16885 2004-11-25  Martin Baulig  <martin@ximian.com>
16886
16887         * object.c (mono_class_vtable): Don't create any JIT wrappers for
16888         generic methods.
16889
16890 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
16891
16892         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
16893         names. Fixes #69787.
16894
16895 2004-11-24  Martin Baulig  <martin@ximian.com>
16896
16897         * class.c (mono_class_create_generic_2): If we don't have a
16898         `ginst->parent', inflate `gklass->parent' to get our parent.
16899
16900 2004-11-24  Martin Baulig  <martin@ximian.com>
16901
16902         * reflection.c (compare_genericparam): Correctly sort the
16903         GenericParam table; fixes #69779.
16904
16905 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
16906
16907         * reflection.c: When writing a PE file, don't create a huge
16908         buffer in memory. Just write the arrays we have to the file.
16909         This reduces memory usage.
16910
16911         * metadata-internals.h: MonoDynamicStream pefile is no longer used
16912         globally.
16913
16914 2004-11-17  Martin Baulig  <martin@ximian.com>
16915
16916         * class.c (mono_class_init): Don't setup `class->parent' for
16917         dynamic instances; moved this to mono_class_generic_2().
16918         (mono_class_create_generic): Also set `klass->inited' for dynamic
16919         generic instances.
16920         (mono_class_create_generic_2): Don't do anything for dynamic
16921         generic instances.  Set `klass->parent' here and also call
16922         mono_class_setup_parent() here. 
16923
16924         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
16925         `MonoType *parent' argument; set `ginst->parent' before calling
16926         mono_class_create_generic_2(), so we set the correct parent.
16927
16928 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
16929
16930         * reflection.c: allow getting attributes from ModuleBuilder
16931         (used by ikvm).
16932
16933 2004-11-17  Martin Baulig  <martin@ximian.com>
16934
16935         * class.c (mono_class_create_from_typedef): If a type parameter is
16936         inherited from an outer class, set its owner to that class.
16937
16938 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
16939
16940         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
16941           for (int*) written size. This fixes bug #69592.
16942
16943 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
16944
16945         * icall.c: Added IsAuthenticodePresnet internal call.
16946         * image.c|h: New function that check a MonoImage for an Authenticode
16947         signature in the certificate PE data directory.
16948         * security.c|h: New internal call to ask the runtime if an 
16949         Authenticode signature seems referenced in the PE header.
16950
16951 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
16952
16953         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
16954
16955         * reflection.c (mono_image_create_pefile): Free the assembly streams
16956         after writing out the assembly file.
16957
16958         * object.c (mono_runtime_run_main): Fix small memory leak.
16959
16960         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
16961         property access modifiers. Fixes #69389.
16962
16963 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
16964
16965         * domain.c, object.c, object-internals.h, domain-internals.h,
16966         object.h, marshal.c: keep dynamic code info per domain.
16967
16968 2004-11-15  Martin Baulig  <martin@ximian.com>
16969
16970         * class.c (mono_type_get_name_recurse): Put type arguments in
16971         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
16972         see bug #68387.
16973
16974 2004-11-15  Martin Baulig  <martin@ximian.com>
16975
16976         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
16977         (mono_class_setup_vtable): When computing `the_cname' for a
16978         generic instance, don't include the namespace since we'd otherwise
16979         add it twice.
16980
16981 2004-11-15  Martin Baulig  <martin@ximian.com>
16982
16983         * class.c (mono_class_create_generic): Changed return type to void.
16984         (mono_class_create_generic_2): New public function; setup
16985         `class->method', `class->field' and `class->interfaces' here
16986         instead of in mono_class_init().
16987
16988         * class.h (mono_class_create_generic): Moved to class-internals.h.
16989
16990 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
16991
16992         * reflection.c (mono_image_create_pefile): take a file HANDLE.
16993         rather than writing to memory, write to this file. Right now,
16994         we are just writting into a buffer, and copying that. However
16995         we can avoid the buffer later.
16996
16997         (mono_dynamic_stream_reset): new function
16998
16999         * icall.c, object-internals.h: update for the above.
17000
17001 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
17002
17003         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
17004         have been using gc'd memory. First it is slower, unlikely
17005         the comment in the source code said, secondly, it increases
17006         our footprint to do it in the gc.
17007
17008         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
17009         the method so that it does not have to copy to managed code.
17010
17011 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
17012
17013         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
17014
17015 2004-11-12  Martin Baulig  <martin@localhost>
17016
17017         * reflection.c (mono_image_create_token): Allow generic method
17018         definitions here, since they may appear in an `.override'; see
17019         gen-98/gen-99 for an example.
17020
17021 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
17022
17023         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
17024         #69365.
17025
17026         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
17027         descriptive.
17028
17029 2004-11-11  Martin Baulig  <martin@ximian.com>
17030
17031         * class.c (mono_class_setup_vtable): In an explicit interface
17032         implementation, the method name now includes the arity.
17033
17034 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
17035
17036         * object.c (mono_array_full_copy): Fix warning.
17037
17038 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
17039
17040         * appdomain.c: Removed look_for_method_by_name(). Use the new method
17041         mono_class_get_method_from_name() instead.
17042         
17043         * class-internals.h: Added two new types of wrappers. 
17044         Added MonoRemotingTarget enum. Added new trampoline function type, which
17045         takes an additional MonoRemotingTarget value as parameter, so it is
17046         possible to request a trampoline for a specific target.
17047         
17048         * class.c: Added new mono_class_get_method_from_name() method.
17049         
17050         * class.h: In MonoRemoteClass, we can have now to vtables, one for
17051         general remoting sinks and one specific for cross domain calls.
17052         
17053         * debug-helpers.c: Added new wrapper names.
17054         
17055         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
17056         of a remote class.
17057         
17058         * image.c: Porperly delete value objects form the remoting invoke hashtable.
17059         
17060         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
17061         with several other methods (mono_marshal_get_xappdomain_dispatch,
17062         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
17063         and others) can generate a fast remoting wrapper for cross domain calls.
17064         More information can be found in docs/remoting.
17065         Other changes: Removed mono_find_method_by_name, and used
17066         mono_class_get_method_from_name instead.
17067         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
17068         is stored in the remoting invoke hashtable.
17069         
17070         * marshal.h: published the new method for getting the xdomain wrapper,
17071         and also added a method for getting the adequate wrapper for a given
17072         method and target.
17073         
17074         * object-internals.h, object.c: Added a couple of methods for capying and
17075         cloning arrays.
17076         Modified mono_install_remoting_trampoline, which takes the new remoting
17077         trampoline that has a remoting target as parameter.
17078         mono_class_proxy_vtable now also takes a remoting target as parameter, and
17079         will return the most suitable vtable for the target.
17080         Added mono_remote_class_vtable, which returns the vtable of a remote class
17081         (which can be the normal remoting vtable or the xdomain vtable).
17082         
17083         * threads.c: the xdomain invoke and dispatch wrappers must also be
17084         protected against interruptions.
17085
17086 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17087
17088         * icall.c: use memmove in BlockCopyInternal when the source and
17089         destination arrays are the same.
17090
17091 2004-11-09  Martin Baulig  <martin@ximian.com>
17092
17093         * class-internals.h (MonoGenericContainer): Removed `method' and
17094         `signature', replaced them with `is_method' and `is_signature'
17095         flags.  Added `context'.
17096
17097         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
17098         instead of a `MonoGenericContainer *'.
17099
17100         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
17101         for dynamic type parameters.
17102         (mono_metadata_load_generic_params): Setup `container->context'.
17103
17104         * reflection.c (mono_reflection_setup_generic_class): Setup
17105         `tb->generic_container->context'.
17106         (do_mono_reflection_bind_generic_parameters): Use
17107         mono_class_inflate_generic_type() to correctly inflate types,
17108         rather than using our own hack just for MONO_TYPE_VAR.
17109
17110 2004-11-09  Martin Baulig  <martin@ximian.com>
17111
17112         * class.c (mono_class_inflate_generic_method): Small fix; don't
17113         crash here.
17114
17115         * icall.c
17116         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
17117         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
17118         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
17119         (ves_icall_Type_BindGenericParameters): Likewise.
17120         (ves_icall_Type_get_IsGenericInstance): Likewise.
17121         (ves_icall_Type_GetGenericParameterPosition): Likewise.
17122         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
17123         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
17124         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
17125
17126 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
17127
17128         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
17129         assembly versions and public key tokens. Fixes #69113.
17130
17131 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
17132
17133         * metadata.c: fix bug introduced with the type cache changes
17134         on 2004-11-06.
17135
17136 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
17137
17138         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
17139         the MonoClass pointer instead of the token in exception clauses.
17140         * reflection.c: updates for the above and make the code not depend
17141         on the structure of MonoExceptionClause.
17142
17143 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
17144
17145         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
17146         Add support for dynamic assemblies. Fixes #69114.
17147
17148         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
17149
17150 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
17151
17152         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
17153         since most only those methods use it. the code member of
17154         MonoMethodPInvoke was dead, so that can be removed too. Also,
17155         remove inline_count (again, not used), and move slot so that it
17156         can share bits with some other flags. This saves 8 bytes in the
17157         structure and gives us about 50 kb back for mcs helloworld.cs
17158
17159         * *.[ch]: Do naming changes for the above.
17160
17161         * loader.c (mono_method_get_header): Lazily init the header
17162         on first access.
17163         (mono_get_method_from_token): don't init the header here
17164         (mono_free_method): the header may never be allocated
17165
17166         Overall, this saves 150 kb of unmanaged allocations
17167         for mcs helloworld.cs. That accounts for 10% of the unmanaged
17168         memory at runtime.
17169         
17170         * loader.c, loader.h (mono_method_get_header): new accessor.
17171
17172         * *.[ch]: use the above method. Prepares us to lazily load
17173         the header.
17174
17175         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
17176         three warnings, which are actual bugs (see 69206).
17177
17178         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
17179         unused. Saves a cool 4 bytes / method.
17180
17181 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
17182
17183         * metadata.c (builtin_types): Add types for System.Object here.
17184         (mono_metadata_parse_type_full): Cache MonoType*'s that are
17185         for a class or valuetype from klass->this_arg or klass->byval_arg.
17186
17187         On mcs for a hello world, this gets us down from 21836 MonoType's
17188         to 14560.
17189
17190         (mono_metadata_free_type): Account for the above change.
17191
17192 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
17193
17194         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
17195         exception instead of asserting if name is null.
17196         (ves_icall_System_AppDomain_GetData): Ditto.
17197
17198 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
17199
17200         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
17201         EnumBuilder.
17202
17203         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
17204         Return NULL when the domain does not have entry_assembly set.
17205
17206         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
17207         Add a 'resource_modules' argument.
17208         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
17209
17210         * reflection.c (mono_reflection_create_runtime_class): Move setting
17211         of wastypebuilder here, so mono_get_type_object () returns a MonoType
17212         for enums too.
17213
17214         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
17215         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
17216         Throw an ArgumentNullException if 'ptr' is null.
17217
17218         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
17219         assemblies here. Fixes #69020.
17220
17221 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
17222
17223         * reflection.c (build_compressed_metadata): Fix the previous patch for
17224         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
17225         the stack.
17226
17227 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
17228
17229         * assembly.c (mono_assembly_names_equal): Allow a match if one of
17230         the cultures is false. Fixes #69090.
17231
17232         * reflection.c (build_compressed_metadata): Fix invalid memory read 
17233         detected by valgrind.
17234         
17235         * reflection.c (mono_reflection_get_type): Avoid triggering a 
17236         TypeResolve multiple times for the same type. Fixes #65577.
17237
17238 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
17239
17240         * marshal.c: Avoid using ldftn to call managed functions. It is
17241         much slower than just a call.
17242
17243         * reflection.c (mono_module_get_object): free the basename we
17244         allocate here from glib.
17245         
17246         * reflection.c (ensure_runtime_vtable): make sure to free
17247         overrides.  Also, we were allocating an array of MonoMethod not an
17248         array of MonoMethod*.
17249
17250         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
17251
17252         * image.c (mono_image_close): free image->guid here.
17253
17254 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
17255
17256         * reflection.c: Fix some spec conformance issues with the PE file
17257         structures so mcs compiled apps run on the Net 2.0 beta.
17258
17259 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
17260
17261         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
17262         Implement this. Fixes #67264.
17263
17264         * debug-helpers.h debug-helpers.c marshal.c: Move 
17265         mono_find_method_by_name to debug-helpers.c.
17266
17267 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
17268
17269         * object.c (mono_release_type_locks): type_initialization_hash is
17270         a GHashTable.
17271
17272         * reflection.c object.c object-internals.h: Fix warnings.
17273
17274         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
17275         without accessors. Fixes #61561.
17276
17277         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
17278         application base from the root domain if not set. Fixes #65641.
17279         (mono_runtime_init): Fix warning.
17280
17281 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17282
17283         * appdomain.c: call mono_thread_pool_init.
17284         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
17285         of worker threads based on the number of CPUs and the environment
17286         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
17287         for non-windows (windows) systems.
17288
17289 2004-10-27  Chris Toshok  <toshok@ximian.com>
17290
17291         * mono-debug-debugger.c (write_class): don't call mono_class_init
17292         here, as even with the check for (!klass->init_pending), we get
17293         into a situation where we're hitting cycles in class
17294         initialization.  Fixes #68816.
17295
17296 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
17297
17298         * image.c: Avoid overwriting values in the loaded_images_hash when an
17299         assembly is loaded multiple times. Fixes #61152.
17300
17301         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
17302         so multiple satellite assemblies for the same name can be loaded.
17303         Fixes #68259.
17304
17305         * mono_domain_assembly_preload: Actually return the loaded assembly, 
17306         not NULL.
17307
17308         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
17309         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
17310
17311         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
17312         pending finalizers are not invoked after the appdomain has been 
17313         unloaded. Fixes #67862.
17314
17315 2004-10-22  Martin Baulig  <martin@ximian.com>
17316
17317         * mono-debug-debugger.c
17318         (mono_debugger_runtime_invoke): Don't box valuetypes.
17319
17320 2004-10-22  Chris Toshok  <toshok@ximian.com>
17321
17322         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
17323         don't hide private methods.
17324
17325 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
17326
17327         * icall.c: Allows the runtime to "share" (when known) the public key
17328         token of an assembly. This avoid the need to recalculate the token 
17329         (from the public key) in managed code.
17330
17331 2004-10-21  Chris Toshok  <toshok@ximian.com>
17332
17333         * debug-helpers.c (append_class_name): argh, revert last patch.
17334         
17335 2004-10-21  Chris Toshok  <toshok@ximian.com>
17336
17337         * debug-helpers.c (append_class_name): use '+' as the delimiter,
17338         not '/', so that it matches what the debugger uses to look up
17339         methods.
17340
17341 2004-10-21  Martin Baulig  <martin@ximian.com>
17342
17343         * mono-debug-debugger.c (mono_debugger_throw_exception): New
17344         public method; this is called each time an exception is thrown and
17345         allows the debugger to use exception catch points.
17346
17347 2004-10-21  Martin Baulig  <martin@ximian.com>
17348
17349         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
17350         the stack pointer and the exception object in some struct and pass
17351         that to the debugger.
17352
17353 2004-10-21  Chris Toshok  <toshok@ximian.com>
17354
17355         * mono-debug-debugger.c (do_write_class): add instance/static
17356         event support.  We don't expose "raise" or "other" yet.
17357         (event_is_static): new method.
17358
17359 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
17360
17361         * mono-debug-debugger.c
17362         (mono_debugger_handle_exception): Remove
17363         bogus return value for fussy compilers.
17364
17365 2004-10-20  Martin Baulig  <martin@ximian.com>
17366
17367         * mono-debug-debugger.c
17368         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
17369         (mono_debugger_handled_exception): Likewise.
17370
17371 2004-10-20  Martin Baulig  <martin@ximian.com>
17372
17373         * mono-debug-debugger.h (MonoDebuggerEvent): Added
17374         MONO_DEBUGGER_EVENT_EXCEPTION.
17375
17376         * mono-debug-debugger.c (mono_debugger_handle_exception): New
17377         public function to send the debugger a notification for an
17378         exception and inform it about a catch/finally clause.
17379
17380 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
17381
17382         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
17383         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
17384         fix 2.95 build. 
17385
17386         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
17387
17388 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
17389
17390         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
17391         marshalled as [In,Out]. Fixes #58325.
17392
17393 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
17394
17395         * reflection.c (mono_method_body_get_object): Implement some fields.
17396
17397 2004-10-12  Martin Baulig  <martin@ximian.com>
17398
17399         * reflection.c (mono_reflection_bind_generic_parameters): Small
17400         fix, correctly retrieve our parent from a generic instance.
17401
17402 2004-10-12  Martin Baulig  <martin@ximian.com>
17403
17404         * metadata.c (mono_metadata_generic_param_equal): We always have
17405         an owner.
17406
17407         * class.c
17408         (mono_class_from_generic_parameter): We need to have an owner.
17409         (my_mono_class_from_generic_parameter): Likewise.
17410
17411         * reflection.c (mono_reflection_setup_generic_class): Renamed to
17412         mono_reflection_create_generic_class() and added a new
17413         mono_reflection_setup_generic_class().  
17414         (mono_reflection_initialize_generic_param): If we're a nested
17415         generic type and inherited from the containing class, set our
17416         owner to the outer class.
17417
17418 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
17419
17420         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
17421
17422         * reflection.c (mono_method_body_get_object): New function to create
17423         a MethodBody object.
17424
17425         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
17426
17427 2004-10-11  Martin Baulig  <martin@ximian.com>
17428
17429         * metadata.c (_mono_metadata_type_equal): Renamed to
17430         do_mono_metadata_type_equal() and made static.
17431
17432 2004-10-11  Martin Baulig  <martin@ximian.com>
17433
17434         * appdomain.c: Bump corlib version number to 28.
17435
17436 2004-10-10  Martin Baulig  <martin@ximian.com>
17437
17438         * class-internals.h
17439         (MonoGenericInst): Added `MonoGenericContainer *container'.
17440         (MonoGenericMethod): Likewise.
17441         (MonoGenericContext): Likewise.
17442         (MonoGenericParam): Added `MonoGenericContainer *owner'.
17443
17444         * metadata.c
17445         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
17446         (do_mono_metadata_parse_generic_inst): Likewise.
17447         (mono_metadata_parse_type_full): New public method.  This is the actual
17448         mono_metadata_parse_type() implementation - with an additional
17449         `MonoGenericContainer *' argument.
17450         (mono_metadata_parse_array_full): Likewise.
17451         (mono_metadata_parse_signature_full): Likewise.
17452         (mono_metadata_parse_method_signature_full): Likewise.
17453         (mono_metadata_parse_mh_full): Likewise.
17454         (mono_type_create_from_typespec): Likewise.
17455         (mono_metadata_interfaces_from_typedef_full): New public method;
17456         this is similar to the other _full() methods, but we take a
17457         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
17458         (mono_metadata_parse_generic_param): Take an additional
17459         `MonoGenericContainer *' argument and lookup the MonoGenericParam
17460         from that container.
17461         (mono_metadata_generic_param_equal): New static method to compare
17462         two type parameters.
17463         (_mono_metadata_type_equal): New static method; takes an
17464         additional `gboolean signature_only' argument - if true, we don't
17465         compare the owners of generic parameters.
17466         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
17467         with a TRUE argument - do a signature-only comparision.
17468
17469         * loader.c: Use the new _full() methods and pass the
17470         MonoGenericContainer to them.
17471
17472         * object-internals.h (MonoReflectionTypeBuilder): Added
17473         `MonoGenericContainer *generic_container' field.
17474         (MonoReflectionMethodBuilder): Likewise.
17475
17476 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
17477
17478         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
17479         case initial images of dynamic assemblies.
17480
17481         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
17482
17483         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
17484
17485         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
17486         length of event->other array.
17487         (typebuilder_setup_events): Ditto.
17488
17489         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
17490         'assembly_by_name' and add an 'assemblies' list.
17491
17492         * assembly.h assembly.c: Add a new search hook for determining whenever
17493         an assembly is already loaded. Use this instead of searching in the
17494         loaded_assemblies list.
17495
17496         * domain.c appdomain.c: Implement the new search hook so loaded 
17497         assemblies are now scoped by appdomain. Fixes #67727.
17498
17499 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
17500
17501         * threads.c (mono_thread_attach): Initialize synch_lock field so
17502         mono_thread_detach works again.
17503
17504         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
17505         'lib' too. Fixes #63130.
17506
17507 2004-10-06  Jackson Harper  <jackson@ximian.com>
17508
17509         * culture-info-tables.h: regenerated.
17510
17511 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
17512
17513         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
17514         implemented by other interfaces in the result. Fixes #65764.
17515         
17516         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
17517         Handle unloadable modules without crashing.
17518
17519         * image.c (load_modules): Revert the previous patch since modules must
17520         have a fixed index inside the array.
17521         
17522         * image.c (load_modules): Don't include native modules in the modules
17523         array.
17524
17525 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
17526
17527         * reflection.h: Add param_defaults field.
17528
17529         * reflection.c: Add support for parameter defaults in dynamic methods.
17530         Fixes #64595.
17531
17532         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
17533         an empty string when a type has no namespace. Fixes #64230.
17534
17535 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
17536
17537         * tabledefs.h: Added "internal" security actions to support non-CAS
17538         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
17539         Note: they do not seems to be used anymore in 2.0 (new metadata format)
17540
17541 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
17542
17543         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
17544         constructor of abstract class. Fixes #61689.
17545
17546 2004-10-04  Martin Baulig  <martin@ximian.com>
17547
17548         * class-internals.h (MonoGenericContainer): New type.
17549         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
17550         `MonoGenericContainer *generic_container'.
17551         (MonoClass): Replaced `gen_params' and `num_gen_params' with
17552         `MonoGenericContainer *generic_container'.
17553
17554         * metadata.c (mono_metadata_load_generic_params): Return a
17555         `MonoGenericContainer *' instead of a `MonoGenericParam *';
17556         removed the `num' argument.
17557
17558 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
17559
17560         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
17561         for dynamic images.
17562
17563         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
17564         machine fields.
17565
17566         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
17567
17568         * reflection.c: Save pe_kind and machine values into the generated
17569         image file.
17570
17571         * appdomain.c: Bump corlib version number.
17572
17573         * object-internals.h: Reorganize layout of LocalBuilder.
17574
17575         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
17576         New helper function.
17577
17578         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
17579         created MonoType for dynamic types. Fixes #66180.
17580
17581 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
17582
17583         * threadpool.c: the ares hashtable needs a critical section around it.
17584         this prevents some nasty segfaults
17585
17586 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
17587
17588         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
17589         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
17590         bug 67324).
17591         
17592 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
17593
17594         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
17595         
17596 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
17597
17598         * image.c: Always canonicalize image file names, to avoid loading
17599         the same assembly twice when referenced using a relative path.
17600
17601 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
17602
17603         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
17604
17605         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
17606
17607         * marshal.c: Fix warnings.
17608
17609 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
17610
17611         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
17612         attempting to marshal the delegate_trampoline as the method_addr.
17613         This patch has a static hashtable of marshalled delegates so that 
17614         we can map delegate_trampoline addresses back to delegates.  This
17615         allows a delegate passed to managed code to be passed back into native
17616         code.  Fixes #67039
17617
17618 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
17619
17620         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
17621
17622         * reflection.c (method_encode_code): Align method headers properly.
17623         Fixes #66025.
17624
17625 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
17626
17627         * marshal.c: In the runtime invoke wrapper, reset the abort
17628         exception if it is cached. This avoids the automatic rethrowal of 
17629         the exception after the catch of the wrapper. Also check for pending
17630         interruptions before calling the managed method. This is done using
17631         the new method emit_thread_force_interrupt_checkpoint, since the
17632         normal checkpoint method is ignored when running the invoke wrapper.
17633         * object.c: If the abort exception is rethrown, set the abort_exc
17634         field of the thread, so it will be rethrown aftere every catch.
17635         * threadpool.c: Only run an interruption checkpoint if what has been
17636         requested is a stop of the thread (aborts will be ignored).
17637         * threads.c: By default, a thread will now never be interrumped while
17638         running the runtime invoke wrapper (this ensures that runtime_invoke
17639         will always return to the caller if an exception pointer is provided).
17640         There is a new special method mono_thread_force_interruption_checkpoint()
17641         to force an interruption checkpoint even if running a protected
17642         wrapper, which is used by the same runtime invoke wrapper to do a check
17643         at a safe point.
17644
17645 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
17646
17647         * object.c, object-internals.h: Implemented mono_release_type_locks,
17648         which releases the cctor locks held by a thread.
17649         * threads.c, threads.h: In thread_cleanup, release cctor locks held
17650         by a thread. Added mono_thread_exit() method to be used to safely stop
17651         a thread.
17652
17653 2004-09-28  Raja R Harinath  <rharinath@novell.com>
17654
17655         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
17656         Move null check before dereference.  Avoid indexing beyond the end
17657         of the 'modules' array.
17658
17659 2004-09-28  Raja R Harinath  <rharinath@novell.com>
17660
17661         * metadata-internals.h (MonoImage): Add module_count field.
17662         * image.c (load_modules): Set image->module_count.
17663         (mono_image_load_file_for_image): Use image->module_count.
17664         * reflection.c (mono_image_load_module): Append to image->modules array 
17665         of dynamic assembly.
17666         (mono_module_get_object): Fix loop to actually increment index.
17667         Use image->module_count.
17668         * assembly.c (mono_assembly_load_references): Use image->module_count.
17669         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
17670         Likewise.
17671
17672 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
17673
17674         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
17675         Avoid assert on generic types.
17676
17677 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
17678
17679         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
17680
17681         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
17682
17683         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
17684         function to convert a MarshalSpec structure to its managed counterpart.
17685
17686         * reflection.c: Fix warnings.
17687         
17688         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
17689         field.
17690
17691         * icall.c (mono_create_icall_signature): Fix build.
17692
17693 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
17694
17695         * icall.c: Add MakePointType icall.
17696
17697         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
17698         warnings.
17699
17700 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17701
17702         * threadpool.c: reuse allocated slots in the queue.
17703
17704 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
17705
17706         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
17707
17708         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
17709
17710         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
17711         previous change.
17712
17713         * tabledefs.h: Add constants for pinvoke attributes BestFit and
17714         ThrowOnUnmappableChar.
17715
17716         * icall.c (ves_icall_Type_GetPacking): New icall.
17717
17718 2004-09-24  Martin Baulig  <martin@ximian.com>
17719
17720         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
17721
17722 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17723
17724         * appdomain.c:
17725         (mono_domain_set): allow setting a domain that is being unloaded.
17726         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
17727         being unloaded.
17728
17729 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
17730
17731         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
17732         the GetCustomAttributes icall.
17733
17734 2004-09-23  Martin Baulig  <martin@ximian.com>
17735
17736         * object-internals.h (MonoReflectionGenericParam): Replaced
17737         'has_ctor_constraint', `has_reference_type' and `has_value_type'
17738         with `guint32 attrs'.
17739
17740 2004-09-23  Martin Baulig  <martin@ximian.com>
17741
17742         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
17743
17744 2004-09-23  Martin Baulig  <martin@ximian.com>
17745
17746         * object-internals.h (GenericParameterAttributes): New enum.
17747
17748 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
17749
17750         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
17751         
17752         * class.c (init_events): Fill out event->other field.
17753
17754         * class.c: Fix warnings.
17755
17756         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
17757
17758 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
17759
17760         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
17761         walk which doesn't supply the IL offset.
17762
17763 2004-09-22  Martin Baulig  <martin@ximian.com>
17764
17765         * reflection.c (mono_reflection_setup_internal_class): If we're
17766         System.ValueType, System.Object or System.Enum, set
17767         `klass->instance_size' and create the vtable.
17768         (mono_reflection_create_internal_class): If we're an enum type,
17769         get the base class from our current corlib.
17770
17771 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
17772
17773         * reflection.h (MonoResolveTokenError): New type.
17774
17775         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
17776         icall.
17777
17778         * icall.c: Add an 'error' argument to the ResolveToken icalls.
17779
17780 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
17781
17782         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
17783         Support also calling constructors, but only for already allocated objects.
17784
17785 2004-09-17  Geoff Norton <gnorton@customerdna.com>
17786
17787         * reflection.c (type_get_qualified_name): If the klass is null
17788         return the typename to avoid a NullRefEx.
17789         (encode_cattr_value): Get the qualified name of the boxed type,
17790         not the underlying enumtype.  Fixes #62984.
17791
17792 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
17793
17794         * marshal.c: Fix problems with previous checkin.
17795
17796 2004-09-21    <vargaz@freemail.hu>
17797
17798         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
17799         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
17800
17801         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
17802
17803 2004-09-21  Geoff Norton <gnorton@customerdna.com>
17804
17805         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
17806         should only return a type for pointers, arrays, and passbyref types.
17807         Fixes bug #63841.
17808
17809 2004-09-21  Martin Baulig  <martin@ximian.com>
17810
17811         * domain.c (mono_debugger_check_runtime_version): New public
17812         function.
17813
17814         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
17815
17816 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
17817
17818         * reflection.c: Added missing sort to the declarative security 
17819         attributes table. MS implementation stops seeing the attributes if the
17820         token number regress in the table (as shown by ildasm and permview).
17821
17822 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
17823
17824         * object-internals.h (MonoReflectionModule): Add 'token' field.
17825         
17826         * reflection.c (mono_reflection_get_token): Add support for Module
17827         and Assembly.
17828         (mono_module_get_object): Set 'token' field.
17829         (mono_module_file_get_object): Set 'token' field.
17830
17831         * icall.c: Add new Assembly and Module icalls.
17832
17833         * appdomain.c: Bump corlib version.
17834
17835 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
17836
17837         * loader.h loader.c class.h class.c: Add helper functions for obtaining
17838         tokens of metadata objects.
17839
17840         * reflection.h reflection.c (mono_reflection_get_token): New function
17841         to obtain the token of a metadata object.
17842
17843         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
17844
17845 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
17846
17847         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
17848         
17849         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
17850
17851 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
17852
17853         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
17854         * object-internals.h: Added 3 MonoArray* members to MonoReflection
17855         AssemblyBuilder to access the permissions set in the class lib.
17856         * reflection.c: Added security attributes encoding step in 
17857         mono_image_build_metadata.
17858         * tabledefs.h: Added new security actions defined in 2.0:
17859         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
17860
17861 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
17862
17863         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
17864         macro parameter.
17865
17866 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
17867  
17868         * locales.c: nullify the ICU_collator member of CompareInfo when it is
17869           finalized. There where random SIGSEVs at program termination, when
17870           an object being finalized was trying to do a string comparison and
17871           the current culture was already finalized.
17872  
17873 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17874
17875         * threads.c: call thread_cleanup before finishing the thread if we get
17876         there.
17877
17878 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
17879
17880         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
17881         assemblies from the parent. Fixes #65665.
17882
17883 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
17884
17885         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
17886         modifiers.
17887
17888 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
17889
17890         * reflection.h: add prototype for mono_get_dbnull_object
17891         * reflection.c: add prototypes for get_default_param_value_blobs 
17892         and mono_get_object_from_blob for fussier compilers
17893
17894 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
17895  
17896         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
17897         false deadlock checks in class initialization.
17898  
17899 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
17900
17901         * image.c (mono_image_addref): Fix comment.
17902
17903         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
17904         possible.
17905
17906 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
17907
17908         * reflection.c (mono_param_get_objects): Modified to return
17909         ParameterInfo.DefaultValue object.
17910
17911         (get_default_param_value_blobs):
17912         (mono_get_object_from_blob):
17913         (mono_get_dbnull_object): New helper routines. 
17914
17915         * object.c (mono_get_constant_value_from_blob): New helper routine
17916         carved out from get_default_field_value ()
17917
17918         * object-internals.h (mono_get_constant_value_from_blob): Added
17919         function declaration.
17920
17921 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
17922
17923         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
17924         referenced assemblies. Fixes #62135.
17925
17926         * exception.h exception.c (mono_get_exception_file_not_found2): New
17927         helper function.
17928
17929 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
17930
17931         * class.h class.c: Add mono_type_get_underlying_type ().
17932
17933 2004-09-09  Geoff Norton <gnorton@customerndna.com>
17934
17935         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
17936         Fix GetTypes() to support dynamically created assemblies.
17937
17938 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
17939
17940         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
17941         
17942         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
17943         previous patch.
17944
17945         * reflection.h reflection.c loader.c: Allow dynamic construction of
17946         pinvoke methods. Fixes #65571.
17947         
17948         * reflection.c (mono_reflection_get_type): Revert previous change since
17949         it causes regressions.
17950
17951 2004-09-08  Martin Baulig  <martin@ximian.com>
17952
17953         * class.c (class_compute_field_layout): Don't call
17954         mono_class_layout_fields() for open generic instances.
17955
17956 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
17957         * threads.c appdomain.c: fix typo in GC macro
17958
17959 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
17960
17961         * threads.c: don't call mono_thread_detach() in start_wrapper(),
17962         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
17963
17964 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
17965
17966         * image.c (mono_image_close): Applied patch from 
17967         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
17968         assembly is loaded multiple times from data.
17969         
17970         * image.c (mono_image_open): Fix warning.
17971
17972 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17973
17974         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
17975         once. Fixes #58334.
17976         
17977         * reflection.c (mono_reflection_create_runtime_class): Initialize
17978         klass->nested_classes. Fixes #61224.
17979
17980 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
17981
17982         * threads.c: sched_yield() on exit, to allow threads to quit.
17983
17984 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17985
17986         * object.c (mono_unhandled_exception): Remove leftover debug code.
17987
17988 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
17989
17990         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
17991
17992 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
17993
17994         * marshal.c (emit_marshal_array): Really null terminate string arrays.
17995         
17996         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
17997
17998 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
17999
18000         * marshal.c (emit_marshal_array): Null terminate string arrays.
18001         
18002         * marshal.c (raise_auto_layout_exception): Fix warning.
18003
18004         * reflection.c (mono_param_get_objects): Initialize the default value
18005         with DBNull.Value, not null. Fixes #62123.
18006
18007 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
18008
18009         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
18010         throw an exception with a cute explanation.
18011
18012 2004-09-06  Dick Porter  <dick@ximian.com>
18013
18014         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
18015         Close the new process's thread handle, as we don't use it.  The
18016         handle stays around forever otherwise.
18017
18018 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
18019
18020         * object.c (arith_overflow): Fix warning.
18021
18022         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
18023         calling conventions in method refs. Fixes #65352.
18024
18025         * reflection.c: Fix warnings.
18026
18027 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
18028
18029         * icall.c: Add a new icall for Array.Clear
18030
18031 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
18032
18033         * object.c: When allocating an array, we have to throw
18034         an overflow exception if any of the lengths are < 0.
18035
18036 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
18037
18038         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
18039         properly. Also move implementation of string array marshalling to 
18040         managed code. Fixes #42316.
18041
18042 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18043
18044         * assembly.c: provide more information when loading an assembly fails.
18045
18046 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18047
18048         * filewatcher.c: don't expect the development fam package to be
18049         installed.
18050
18051 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
18052
18053         * marshal.c: Make a copy of the signature cookie since it will be
18054         freed by the caller.
18055         
18056         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
18057
18058         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
18059
18060         * metadata.c (mono_metadata_free_marshal_spec): New function to free
18061         marshal specs.
18062
18063         * marshal.c: More refactoring.
18064         
18065         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
18066         smaller functions.
18067
18068 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
18069
18070         * object.c: In mono_message_invoke, fill the output parameter array after
18071           calling the managed method (it was done before the call). This fixes
18072           bug #59299.
18073
18074 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
18075
18076         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
18077         as well.
18078
18079 2004-09-02  Martin Baulig  <martin@ximian.com>
18080
18081         * class.c (mono_class_instance_size): Don't allow generic type
18082         definitions or open generic instances.
18083         (mono_class_array_element_size): If we're a value type, call
18084         mono_class_instance_size() on the original class.
18085
18086         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
18087         handle generic instances.
18088
18089         * mono-debug-debugger.c (write_type): Handle generic instances
18090         like classes.
18091
18092 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
18093
18094         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
18095         the allocation request fails. Fixes #65089.
18096
18097         * object.c (mono_runtime_free_method): Do not call mono_free_method.
18098         
18099         * object.c (mono_runtime_free_method): New function to free a dynamic
18100         method.
18101
18102         * marshal.c (mono_delegate_free_ftnptr): New function to free the
18103         delegate trampoline.
18104
18105         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
18106         with hasthis as dynamic,
18107
18108         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
18109
18110         * domain.c (mono_jit_info_table_remove): New function to remove an
18111         entry from the jit info table.
18112
18113         * class-internals.h (MonoMethod): Add 'dynamic' field.
18114
18115         * loader.c: Fix warnings.
18116
18117 2004-09-01  Martin Baulig  <martin@ximian.com>
18118
18119         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
18120         instead of mono_debugger_lock() because the latter one is a no-op
18121         unless running in the debugger.
18122
18123 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
18124
18125         * class.c (class_compute_field_layout): Classes with auto-layout or
18126         reference fields are not blittable.
18127         
18128 2004-09-01  Dick Porter  <dick@ximian.com>
18129
18130         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
18131         mono_image_get_filename() to get the assembly location.
18132
18133         * icall.c:
18134         * metadata.h: Fix compile warnings
18135
18136 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
18137
18138         * class.c (class_compute_field_layout): System.Object is blittable.
18139
18140         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
18141         as in/out. Fixes #59909.
18142
18143 2004-09-01  Martin Baulig  <martin@ximian.com>
18144
18145         * metadata.h (MONO_TYPE_ISREFERENCE): Call
18146         mono_metadata_generic_inst_is_valuetype() if we're a generic
18147         instance to check whether our underlying type is a reference type.
18148
18149 2004-09-01  Martin Baulig  <martin@ximian.com>
18150
18151         * metadata.c (mono_type_size): If we're a generic instance, call
18152         mono_class_value_size() for value types.
18153
18154 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
18155
18156         * marshal.c: Implement more custom marshalling functionality. Fixes
18157         #64915.
18158
18159 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
18160
18161         * mono-debug.c, debug-mono-symfile.c: add some locking love.
18162
18163 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
18164
18165         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
18166
18167         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
18168
18169         * icall.c: Fix some warnings.
18170
18171         * threads.c (abort_appdomain_thread): Fix unref errors.
18172         (mono_thread_current): Fix THREAD_DEBUG define.
18173
18174 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
18175
18176         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
18177
18178         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
18179
18180 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
18181
18182         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
18183         string arrays.
18184
18185 2004-08-28  Martin Baulig  <martin@ximian.com>
18186
18187         * metadata.c
18188         (mono_metadata_generic_inst_is_valuetype): New public function.
18189
18190         * metadata.h (MONO_TYPE_ISSTRUCT): Call
18191         mono_metadata_generic_inst_is_valuetype() if we're a generic
18192         instance to check whether our underlying type is a valuetype.
18193
18194 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
18195
18196         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
18197         #63768.
18198
18199 2004-08-25  Martin Baulig  <martin@ximian.com>
18200
18201         * loader.c (mono_get_method_from_token): Abstract methods can also
18202         be generic and thus have type parameters.
18203
18204         * metadata-internals.h
18205         (MonoDynamicImage): Added `GPtrArray *gen_params'.
18206
18207         * reflection.c (mono_image_get_generic_param_info): Don't create a
18208         metadata row, just add an entry to the `gen_params' array.
18209         (build_compressed_metadata): Sort the `gen_params' array and then
18210         actually create the metadata.
18211
18212 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18213
18214         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
18215
18216 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
18217
18218         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
18219
18220 2004-08-24  Martin Baulig  <martin@ximian.com>
18221
18222         * class.cs (mono_class_is_subclass_of): Like an interface, a
18223         generic instance also derives from System.Object.
18224
18225 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
18226
18227         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
18228         custom modifiers to be in any order. Fixes #61990.
18229
18230 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
18231
18232         * object.c: Register mono_object_new_fast icall.
18233         
18234         * object.c (mono_class_get_allocation_ftn): Return to calling
18235         mono_object_new_fast, since it seems faster to compute the object 
18236         size in unmanaged code than passing it as a parameter.
18237
18238         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
18239
18240         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
18241         this function with Boehm as the oom handler, so we don't have to check
18242         the result of GC_malloc.
18243
18244         * object.c: Remove checks for oom.
18245
18246         * object.h object.c (mono_class_get_allocation_ftn): New function to
18247         return the icall which can be used to allocate an instance of a given
18248         class. 
18249
18250         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
18251
18252         * class-internals.h: Add 'enabled' field.
18253
18254 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
18255
18256         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
18257
18258 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
18259         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
18260         value 0x0010.
18261
18262 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
18263
18264         * appdomain.c: use the Tls function for appdomain too,
18265         at Zoltan's request. Actually return in mono_context_get
18266
18267         * appdomain.c, profiler.c, threads.c: use __thread
18268
18269 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
18270
18271         * appdomain.c threads.c: Call GC_CreateThread on windows.
18272
18273         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
18274         multiple libraries since this don't work on windows.
18275
18276 2004-08-18  Martin Baulig  <martin@ximian.com>
18277
18278         * class-internals.h
18279         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
18280         MonoMethodHeader.
18281
18282         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
18283         MonoMethodNormal since we also need it for abstract and interface
18284         methods.
18285
18286         * reflection.c
18287         (build_compressed_metadata): Sort the GenericParam table.
18288         (mono_image_create_token): Added `gboolean create_methodspec'
18289         argument; this is false when generating a MethodImpl token.
18290         (reflection_methodbuilder_to_mono_method): Abstract and interface
18291         methods may also have generic parameters.
18292
18293 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
18294
18295         * appdomain.c: thread local alloc
18296
18297 2004-08-17  Martin Baulig  <martin@ximian.com>
18298
18299         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
18300
18301         * icall.c
18302         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
18303         argument.
18304
18305         * class.c (mono_type_get_full_name): New public function.
18306         (mono_type_get_name): Don't include the type arguments.
18307
18308 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
18309
18310         * Makefile.am: Build static versions of libmetadata and libmonoruntime
18311         for inclusion into the mono executable.
18312
18313 2004-08-16  Martin Baulig  <martin@ximian.com>
18314
18315         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
18316         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
18317
18318 2004-08-14  Martin Baulig  <martin@ximian.com>
18319
18320         * class.c (dup_type): Also copy the `byref' field.
18321
18322 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
18323
18324         * reflection.c (create_dynamic_mono_image): Revert the last change 
18325         since it breaks bootstrap.
18326
18327 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
18328
18329         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
18330
18331         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
18332         not free them with g_free.
18333
18334 2004-08-11  Martin Baulig  <martin@ximian.com>
18335
18336         * reflection.c (mono_reflection_setup_internal_class): Also call
18337         mono_class_setup_mono_type() if we already have a `tb->type.type'.
18338
18339 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
18340
18341         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
18342         called during default (first) AppDomain creation. Keep track of
18343         Evidence when loading assemblies.
18344
18345 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
18346
18347         * opcodes.c, opcodes.h: reduce runtime relocations.
18348
18349 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
18350
18351         * culture-info.h, locales.c: fixes and chages to sue the new
18352         optimized format of the locale data.
18353         * culture-info-tables.h: regenerated.
18354
18355 2004-08-06  Geoff Norton <gnorton@customerdna.com>
18356         
18357         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
18358
18359 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
18360
18361         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
18362         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
18363         * domain-internals.h: icall declaration.
18364         * icall.c: icall registration.
18365         * object-internals.h: New fields in MonoAssembly for CAS.
18366
18367 2004-08-05  Duncan Mak  <duncan@ximian.com>
18368
18369         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
18370         CEE_LDELEM_ANY.
18371
18372 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
18373
18374         * reflection.c: fix to deal with object[] arrays in custom ctors
18375         (bug #62550).
18376
18377 2004-08-05  Martin Baulig  <martin@ximian.com>
18378
18379         * class.c (mono_class_array_element_size): Added support for
18380         generic instances and correctly handle "recursive" types.
18381
18382 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
18383
18384         * assembly.c: Fix warnings.
18385
18386 2004-08-04  Martin Baulig  <martin@ximian.com>
18387
18388         * class.c
18389         (mono_type_get_name_recurse): Added `gboolean include_arity'
18390         argument specifying whether or not we should include the generic
18391         arity in the type name.
18392         (_mono_type_get_name): New static function.
18393         (mono_class_setup_vtable): If we're a generic instance, don't
18394         include the generic arity in the names of explicit method
18395         implementations.        
18396
18397 2004-08-03  Martin Baulig  <martin@ximian.com>
18398
18399         * class.c (mono_type_get_name_recurse): Enclose the generic type
18400         arguments in `<', '>'.
18401
18402 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18403
18404         * gc.c: make GC warning messages use the trace API, they are just
18405         noise to most of the users.
18406
18407 2004-08-03  Martin Baulig  <martin@ximian.com>
18408
18409         * debug-mono-symfile.c (read_string): Correctly read the string.
18410
18411 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
18412
18413         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
18414         
18415         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
18416         icalls.
18417         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
18418
18419 2004-07-30  Martin Baulig  <martin@ximian.com>
18420
18421         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
18422         Reflect latest symbol writer changes.   
18423
18424 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
18425
18426         * object.c: always create an object if null is passed
18427         to Invoke() where a valuetype is expected.
18428
18429 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
18430
18431         * marshal.c (mono_marshal_init): make managed
18432         signatures match native ones better for 64bits.
18433
18434 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
18435
18436         * appdomain.c: hack to build correctly the private bin path on windows.
18437         Fixes bug #61991.
18438
18439 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
18440
18441         * assembly.c: Load mscorlib from the correct framework directory
18442           (mono/<version>/mscorlib.dll).
18443         * appdomain.h: Added prototypes for new functions.
18444         * internals.h: Added some prototypes.
18445         * domain.c: When initializing the runtime, get from the executable and
18446           the configuration files the runtime version that the app supports.
18447           Added support methods for reading app.exe.config. Added list of versions
18448           supported by the JIT. Added two new methods: mono_init_from_assembly,
18449           which initializes the runtime and determines the required version from
18450           the provided exe file, and mono_init_version, which initializes
18451           the runtime using the provided version.
18452         * icall.c: Get machine.config from version-specific directory.
18453         * reflection.c: When generating an image, embed the version number
18454           of the current runtime.
18455
18456 2004-07-28  Dick Porter  <dick@ximian.com>
18457
18458         * socket-io.c
18459         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
18460         returned sockaddr size before creating the remote address object.
18461         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
18462         61608.
18463
18464 2004-07-28  Dick Porter  <dick@ximian.com>
18465
18466         * locales.c (string_invariant_compare_char): Fix invariant char
18467         compares between upper and lower cases.  Fixes bug 61458.
18468
18469 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
18470         
18471         * marshal.c: actually cache stelem.ref wrappers.
18472         
18473 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
18474
18475         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
18476         sections and remove the mono_cli_rva_map () function.
18477
18478 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
18479
18480         * debug-mono-symfile.c: fix one more endianess issue, from a patch
18481         by Geoff Norton (<gnorton@customerdna.com>).
18482
18483 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
18484
18485         * class.c: fix class loads for pointer types (typeof(int) !=
18486         typeof(int*)).
18487
18488 2004-07-27  Martin Baulig  <martin@ximian.com>
18489
18490         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
18491         reading the debugging information from an external ".mdb" file.
18492
18493 2004-07-24  Martin Baulig  <martin@ximian.com>
18494
18495         * reflection.c (mono_image_get_type_info): Only write a class
18496         layout entry if we actually have a size or a packing size.
18497
18498 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
18499
18500         * reflection.c (type_get_fully_qualified_name): 
18501         insert cast to get type checking of ?: with non-gcc compilers
18502
18503 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
18504
18505         * rand.c: use g_getenv for both lookups of
18506         MONO_EGD_SOCKET
18507
18508 2004-07-17  Martin Baulig  <martin@ximian.com>
18509
18510         * reflection.c (mono_reflection_bind_generic_method_parameters):
18511         Set `gmethod->reflection_info'.
18512
18513 2004-07-17  Martin Baulig  <martin@ximian.com>
18514
18515         * class.c (mono_class_create_from_typedef): Insert the newly
18516         created class into the hash table before computing the interfaces
18517         since we could be called recursively.
18518
18519 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
18520
18521         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
18522         function to implement stelem.ref in managed code
18523         * class-internals.h, debug-helpers.c: a new wrapper type
18524         for the above.
18525
18526 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
18527
18528         * gc.c: allow GC handles to work even when no GC is compiled in.
18529         Fix part of bug #61134 (GetAddrOfPinnedObject).
18530
18531 2004-07-13  Peter Williams  <peter@newton.cx>
18532  
18533         * process.c (complete_path): Make sure we don't attempt to execute
18534         directories.
18535  
18536 2004-07-12  Geoff Norton <gnorton@customerdna.com>
18537
18538         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
18539           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
18540           and will add/subtract the hour if needed
18541
18542 2004-07-12  Martin Baulig  <martin@ximian.com>
18543
18544         * reflection.c (mono_field_get_object): If we have
18545         `field->generic_info', take the attributes from
18546         `field->generic_info->generic_type'.    
18547
18548 2004-07-12  Martin Baulig  <martin@ximian.com>
18549
18550         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
18551         This function must be called before initializing the runtime.
18552         (mono_debug_init_1): New function; call this after initializing
18553         the runtime, but before loading the assembly.  It tells the
18554         debugger to load corlib and the builtin types.
18555
18556         * mono-debug-debugger.c: Did some larger changes in the debugging
18557         code; support recursive class declarations, make sure we actually
18558         add all classes.
18559
18560 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18561
18562         * debug-helpers.c: undo my previous patch and fixed the real issue in
18563         ../mini/exceptions-x86.c
18564
18565 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18566
18567         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
18568         when no HOME env. variable was set and a NullRef was thrown in a .cctor
18569         called from other .cctors.
18570
18571 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
18572
18573         * loader.c: Removed the mono_loader_wine_init hack now that we are
18574         doing a managed version of Windows.Forms.
18575
18576 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
18577
18578         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
18579         threadpool.c, threads.c: remove static data from rootset.
18580
18581 2004-07-09  Dick Porter  <dick@ximian.com>
18582
18583         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
18584         Don't do any more processing if the matched length was 0.  It was
18585         increasing the size of the string before.  Fixes bug 61167.
18586
18587 2004-07-09  Dick Porter  <dick@ximian.com>
18588
18589         * socket-io.h:
18590         * socket-io.c
18591         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
18592         Add support for SO_PEERCRED if its available.
18593
18594 2004-07-09  Peter Bartok <pbartok@novell.com>
18595         * loader.c: winelib.exe.so error message is now only displayed if
18596         MONO_DEBUG is set. To help us avoid questions when people are trying
18597         out the new Managed.Windows.Forms.
18598
18599 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
18600
18601         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
18602         for isinst and castclass wrappers.
18603
18604         * class-internals.h icall.c: Move registration and lookup of JIT icalls
18605         to libmetadata from the JIT, so they could be used by the marshalling
18606         code and the interpreter.
18607
18608         * marshal.c: Register marshalling related JIT icalls here instead of
18609         in mini.c. Use CEE_MONO_ICALL instead of the family of 
18610         CEE_MONO_PROC<x> opcodes to call marshalling functions.
18611
18612         * metadata.h: Remove unneeded marshalling conversions.
18613
18614         * opcodes.c: Update for new opcodes.
18615         
18616 2004-07-08  Martin Baulig  <martin@ximian.com>
18617
18618         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
18619         (mono_debug_get_domain_data): Make this function static.
18620
18621 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
18622
18623         * gc.c, object.h: add nice GC handle API for embedders.
18624
18625 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
18626
18627         * reflection.c: more changes for the new api
18628
18629         * object.c: When we reflect on a field w/ a constant value, it
18630         will not have a memory location, so we must access metadata. Also,
18631         allow easier reading of strings so that we can read them from
18632         the constant data.
18633
18634         * class.c (mono_class_layout_fields): no need for literal fields here.
18635
18636         * class-internals.h: api changes for const fields
18637
18638         * icall.c (ves_icall_get_enum_info): use new apis for const fields
18639
18640 2004-07-06  Martin Baulig  <martin@ximian.com>
18641
18642         * mono-debug.h: Increment version number to 44.
18643
18644         * mono-debug.c (mono_debug_add_wrapper): The second argument is
18645         now a gpointer, rewrote this whole method.
18646
18647         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
18648         function.  Add information about the wrapper in a new "misc table".
18649
18650         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
18651         for the new misc table.
18652
18653 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
18654
18655         * metadata-internals.h image.c: Add a cache for helper signatures.
18656
18657         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
18658
18659 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
18660
18661         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
18662         delegates from a delegate. Fixes #61033.
18663         
18664         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
18665         marshalling of stringbuilder arrays. Fixes #59900.
18666
18667 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
18668
18669         * icall.c: Add EnumBuilder:setup_enum_type icall.
18670
18671 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
18672
18673         * icall.c: Added a new icall for the property version of
18674         OffsetOfStringData.
18675
18676 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
18677
18678         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
18679         it has a constant size across platforms.
18680
18681         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
18682         stack trace.
18683
18684 2004-06-29  Martin Baulig  <martin@ximian.com>
18685
18686         * mono-debug.c (mono_debug_add_method): Protect the whole function
18687         in mono_debugger_lock(), not just parts of it.
18688
18689 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
18690
18691         * reflection.c: make sure padding bytes in heaps are zeroed.
18692
18693 2004-06-24  David Waite  <mass@akuma.org>
18694
18695         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
18696         image.c, loader.c, locales.c, marshal.c, metadata.c,
18697         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
18698         string-icalls.c, threads.c: change to C90-style comments from C99 /
18699         C++ -style
18700
18701 2004-06-24  Dick Porter  <dick@ximian.com>
18702
18703         * threads.c
18704         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
18705         return createdNew.  Fixes bug 60412.
18706
18707         * threads-types.h: 
18708         * icall.c: Add createdNew parameter to CreateMutex icall
18709
18710 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
18711
18712         * reflection.c, object-internals.h: save default value in params.
18713
18714 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18715
18716         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
18717         no need to build a new path combining that with the application base.
18718         Fixes bug #60442.
18719
18720 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
18721
18722         * reflection.c: fixed minor standard compliance issues.
18723
18724 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
18725
18726         * reflection.c: fixed issue with encoding some custom attributes
18727         (arrays in properties and fields, bug #60411).
18728
18729 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18730
18731         * reflection.c: fix start address when copying the public key token.
18732
18733 2004-06-23  Martin Baulig  <martin@ximian.com>
18734
18735         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
18736         the `exc' object in a static object to put it into the GC's root set.
18737
18738 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
18739
18740         * reflection.c: make mono_reflection_setup_internal_class ()
18741         callable a second time to setup a new parent class.
18742
18743 2004-06-23  Dick Porter  <dick@ximian.com>
18744
18745         * threads.c: Check for WAIT_IO_COMPLETION return values.
18746
18747 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
18748
18749         * appdomain.c: Removed the g_free on the public key token. Now copy 
18750         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
18751         * assembly.c: Added public key token string value when loading 
18752         assemblies. Fix bug #60439.
18753         * icall.c: Added missing informations (like public key) in 
18754         GetReferencedAssemblies. Fix #60519.
18755         * image.h: Changed definition for public key token from const char*
18756         public_tok_value to guchar public_key_token [17];
18757         * reflection.c: Updated for changes to public key token.
18758
18759 2004-06-22  Lluis Sanchez Gual
18760
18761         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
18762         for the field in base classes.
18763
18764 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
18765
18766         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
18767         mark headers as not supported, they are installed only for use by the
18768         debugger.
18769
18770 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
18771
18772         * *.c, *.h: avoid namespace pollution in public headers.
18773
18774 2004-06-21  Martin Baulig  <martin@ximian.com>
18775
18776         * exception.c (mono_get_exception_security): It's in
18777         "System.Security", not in "System".
18778
18779         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
18780         the exception classes.
18781
18782 2004-06-21  Martin Baulig  <martin@ximian.com>
18783
18784         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
18785         Protect the exception object from being finalized.
18786
18787 2004-06-21  Martin Baulig  <martin@ximian.com>
18788
18789         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
18790         public function.
18791
18792 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
18793
18794         * reflection.c: Load the assembly in mono_reflection_type_from_name,
18795         if it was not loaded before. Fix parts of #60439.
18796
18797 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
18798
18799         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
18800         code that was broken since Ben's change: wrappers are now
18801         dependent on the method signature only again.
18802
18803 2004-06-21  Martin Baulig  <martin@ximian.com>
18804
18805         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
18806         added interface support.
18807
18808 2004-06-21  Martin Baulig  <martin@ximian.com>
18809
18810         * class.c (mono_vtable_get_static_field_data): New public method.
18811
18812 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
18813
18814         * filewatcher.c : Windows build fix to be compliant with API changes.
18815
18816 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
18817
18818         * class.h, class.c: more accessors.
18819         * metadata.h, metadata.c: prepare for hiding MonoType and
18820         MonoMethodSignature: people should use the accessors from now on
18821         outside of the tree.
18822
18823 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
18824
18825         * *.c, *.h: more API cleanups.
18826
18827 2004-06-18  Jackson Harper  <jackson@ximian.com>
18828
18829         * assembly.c: Trace loading assemblies.
18830         * loader.c: Trace loading native libraries.
18831         * mono-config.c: Trace loading config files.
18832         
18833 2004-06-18  Dick Porter  <dick@ximian.com>
18834
18835         * locales.c: Tell ICU the lengths of strings, it can cope with
18836         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
18837
18838 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
18839
18840         * image.c: swapped name/filename;
18841
18842 2004-06-18  Martin Baulig  <martin@ximian.com>
18843
18844         * mono-debug-debugger.c (write_class): Write the parent class at
18845         the end of the header.
18846
18847 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
18848
18849         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
18850
18851 2004-06-17  Raja R Harinath  <rharinath@novell.com>
18852
18853         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
18854         (bundle_obj): New conditional define.
18855         (BUILT_SOURCES): Remove.
18856         ($(bundle_srcs)): Make parallel-make safe.
18857         (libmonoruntime_la_LIBADD): Make unconditional.
18858         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
18859         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
18860
18861 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
18862
18863         * culture-info-tables.h: It was inconsistent with the latest
18864           supp info files.
18865
18866 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
18867
18868         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
18869         be loaded.
18870
18871         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
18872         with gcc 2.95.
18873
18874 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
18875
18876         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
18877         cleaned up public header threads.h.
18878
18879 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
18880
18881         * Makefile.am, *.c, *.h: more API cleanups.
18882
18883 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
18884
18885         * Makefile.am: removed monosn from compilation.
18886         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
18887         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
18888         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
18889         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
18890         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
18891         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
18892
18893 2004-06-15  Jackson Harper  <jackson@ximian.com>
18894
18895         * assembly.c: Make locales lower case when searching the GAC for
18896         assemblies. gacutil will always make locales lowercase when
18897         installing so this effectively makes them case insensitive.
18898         
18899 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
18900
18901         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
18902         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
18903           parameter which allows to choose whether the wait can be interrupted or 
18904           not. Also added the method mono_monitor_enter(), which locks the monitor
18905           using an infinite wait and without allowing interruption.
18906           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
18907           interrupted.
18908         * object.h: Added new fields in MonoThread. suspend_event holds the event
18909           used to susped/resume the thread. synch_lock is the lock object to use for
18910           modifying the thread state.
18911         * threads.c: Use the new synch_lock object for locking, instead of "this",
18912           which can generate deadlocks.
18913           Moved thread state change in Thread.Sleep and Thread.Join from managed
18914           to unmanaged code. This avoids a deadlock when the thread was suspended
18915           just after acquiring the thread lock.
18916           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
18917           Implemented Thread.Suspend using an event instead of ThreadSuspend,
18918           which is not fully implemented in the io-layer.
18919         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
18920
18921 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
18922
18923         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
18924         threads-types.h: more API cleanups.
18925
18926 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
18927
18928         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
18929         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
18930         threadpool.c, threads.c: first pass at the exported API cleanup.
18931
18932 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
18933
18934         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
18935
18936 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
18937
18938         * icall.c: added internalGetHome.
18939
18940 2004-06-14  Dick Porter  <dick@ximian.com>
18941
18942         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
18943         possible to return successfully when '.' or '..' were the only
18944         entries in a directory, but were skipped.  The MonoIOStat was not
18945         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
18946         Fixes bug 59574.
18947
18948 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
18949
18950         * reflection.c: make binaries run on .Net 1.1 by default.
18951
18952 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
18953
18954         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
18955
18956 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
18957
18958         * marshal.c: keep track of struct size with explicit layout
18959         (bug #59979).
18960
18961 2004-06-12  Martin Baulig  <martin@ximian.com>
18962
18963         * mono-debug-debugger.c: Comment out a debugging g_message().
18964
18965 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
18966
18967         * reflection.c, reflection.h: do not free custom attrs that are cached.
18968         * icall.c: use braces to make code clearer.
18969
18970 2004-06-11  Martin Baulig  <martin@ximian.com>
18971
18972         * class.h (MonoInflatedField): New type.
18973         (MonoClassField): Replaced `MonoType *generic_type' with
18974         `MonoInflatedField *generic_info'.
18975
18976         * icall.c
18977         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
18978
18979 2004-06-11  Martin Baulig  <martin@ximian.com>
18980
18981         * reflection.c (mono_image_create_method_token): Correctly encode
18982         varargs methods.
18983
18984 2004-06-11  Martin Baulig  <martin@ximian.com>
18985
18986         * metadata.c (mono_metadata_parse_method_signature): When parsing
18987         a MethodDef which has VarArgs, also set sentinelpos if we don't
18988         have any parameters.
18989
18990 2004-06-11  Martin Baulig  <martin@ximian.com>
18991
18992         * verify.c (mono_method_verify): In CEE_CALL, use
18993         mono_method_get_signature() to get the method's signature, unless
18994         we're a PInvoke method.
18995
18996 2004-06-10  Jackson Harper  <jackson@ximian.com>
18997
18998         * assembly.c: Use <path>/lib/mono/gac for the extra paths
18999         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
19000         logical name as the supplied path is just a prefix to the gac not
19001         the direct path to it.
19002         
19003 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
19004
19005         * reflection.c: make the token for a created method match
19006         the token of the MethodBuilder it was created from
19007         (IKVM requires this behaviour now).
19008
19009 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
19010
19011         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
19012         reflection.c, socket-io.c: leak fixes.
19013
19014 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
19015
19016         * icall.c: handle sentinel pos in vararg methods in position different
19017         from 0.
19018
19019 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19020
19021         * culture-info-tables.h: freshly generated.
19022
19023 2004-06-09  Martin Baulig  <martin@ximian.com>
19024
19025         * loader.c (mono_get_method_constrained): Call `mono_class_init
19026         (constrained_class)'.   
19027
19028 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
19029
19030         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
19031         any methods. Fixes #59629.
19032
19033 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
19034
19035         * culture-info-tables.h: reflecting locale-builder updates.
19036
19037 2004-06-08  Dick Porter  <dick@ximian.com>
19038
19039         * object.h:
19040         * locales.c: Fixed compile warnings, including a real bug in
19041         CompareInfo_internal_compare.
19042         
19043 2004-06-08  Dick Porter  <dick@ximian.com>
19044
19045         * locales.c
19046         (ves_icall_System_Globalization_CompareInfo_internal_index):
19047         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
19048         Double-check the resuls of usearches, because ICU currently
19049         ignores most of the collator settings here.  Fixes bug 59720.
19050         
19051 2004-06-08  Dick Porter  <dick@ximian.com>
19052
19053         * locales.c
19054         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
19055         Fix memory leak and segfault-causing typo.  No idea how this one
19056         lasted so long without being noticed.
19057
19058 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
19059
19060         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
19061         any methods. Fixes #59629.
19062
19063 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19064
19065         * assembly.c:
19066         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
19067         own the critical section before). Removed dead code (that's done
19068         in the preload hook).
19069
19070         (mono_assembly_load_with_partial_name): call the preload hook.
19071
19072 2004-06-08  Martin Baulig  <martin@ximian.com>
19073
19074         * metadata.c (mono_metadata_signature_alloc): Default
19075         `sentinelpos' to -1.
19076
19077         * reflection.c (mono_image_get_array_token): Likewise.
19078
19079 2004-06-08  Martin Baulig  <martin@ximian.com>
19080
19081         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
19082
19083         * metadata.c (mono_metadata_parse_method_signature): When parsing
19084         a MethodDef which has VarArgs, set sentinelpos.
19085
19086         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
19087         `gint16' since we're using -1 for non-varargs methods.
19088
19089         * reflection.c
19090         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
19091         (method_encode_signature): Added varargs support.
19092         (method_builder_encode_signature): Likewise.
19093         (mono_image_get_varargs_method_token): New static method.
19094         (mono_image_create_method_token): New public method; this is
19095         called via an icall instead of mono_image_create_token() when
19096         calling a varargs method.       
19097
19098 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
19099
19100         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
19101
19102 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
19103
19104         * culture-info-tables.h : Reflecting the latest locale-builder that
19105           fixed empty array representation ({} to {0}).
19106
19107 2004-06-07  Jackson Harper  <jackson@ximian.com>
19108
19109         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
19110         looking up extra gac paths. This allows MONO_GAC_PATH to act
19111         exactly like a prefix.
19112         
19113 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
19114
19115         * reflection.c (mono_reflection_type_from_name): Make a copy of the
19116         type name before modifying it. Fixes #59405.
19117
19118 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
19119
19120         * culture-info.h: added fields for "all datetime patterns".
19121         * locales.c: (  ves_icall_System_Globalization_CultureInfo
19122           _construct_datetime_format ()): fill xxx_patterns fields.
19123         * object.h: added fields for "all datetime patterns" to
19124           MonoDateTimeFormatInfo.
19125         * culture-info-tables.h: reflecting locale-builder updates.
19126
19127 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
19128
19129         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
19130         the event has no add and remove methods. Fixes #59629.
19131
19132 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
19133
19134         * object.c: Fixed possible integer overflow when allocating large
19135         strings.
19136
19137 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
19138
19139         * culture-info-tables.h: reflecting locale-builder updates.
19140
19141 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
19142
19143         * culture-info-tables.h: reflecting locale-builder updates.
19144
19145 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
19146
19147         * culture-info-tables.h: reflecting locale-builder updates.
19148
19149 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
19150
19151         * threads.c: Made Thread.Sleep abortable.
19152
19153 2004-06-02  Martin Baulig  <martin@ximian.com>
19154
19155         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
19156
19157         * debug-mono-symfile.h: Bumped symbol file version number to 37.
19158
19159 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
19160
19161         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
19162
19163 2004-05-30  Jackson Harper  <jackson@ximian.com>
19164
19165         * reflection.c: Do not hardcode assembly versions or public key
19166         tokens anymore. All of this except the corlib section was dead
19167         code anyways.
19168         
19169 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
19170
19171         * object.c (mono_runtime_invoke_array): Automatically create boxed
19172         objects for byref valuetypes if needed. Fixes #59300.
19173         
19174         * object.c (mono_method_return_message_restore): Handle 
19175         MONO_TYPE_OBJECT as well.
19176
19177 2004-05-28  Jackson Harper  <jackson@ximian.com>
19178
19179         * reflection.c: The modified type encoding was causing build
19180         problems. Reverted for now.
19181         
19182 2004-05-28  Jackson Harper  <jackson@ximian.com>
19183
19184         * reflection.c/h: Take an assembly ref so that we dont create
19185         fully qualified names when encoding types in the same assembly as
19186         the custom attribute being emitted.
19187         * appdomain.c: Increment version number.
19188         
19189 2004-05-26  Duncan Mak  <duncan@ximian.com>
19190
19191         * icall.c
19192         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
19193         Set the full version number (major, minor, build, revision).
19194
19195 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
19196
19197         * marshal.c (emit_struct_conv): increment src/dst after blit
19198         (mono_marshal_get_managed_wrapper,
19199         mono_marshal_get_native_wrapper): make sure we have marshalling
19200         info before marshalling params (info computation affects
19201         blittable)
19202
19203         * class.c (class_compute_field_layout): correctly deal with
19204         blittable
19205         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
19206         value types (as per what windows dows by default)
19207         (mono_class_setup_mono_type): System.ValueType is blittable
19208         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
19209         blittable
19210
19211         * marshal.c (mono_marshal_load_type_info): flag types  as
19212         non-blittable if the native layout doesn't match the managed
19213         layout
19214
19215 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19216
19217         * appdomain.c: don't add stuff in the private search path that is
19218         above the application base. If application base is not set, there's
19219         no private search path.
19220
19221 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
19222
19223         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
19224         byref struct arguments in native->managed marshalling.
19225
19226 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
19227
19228         * marshal.c (mono_marshal_get_runtime_invoke): correctly
19229         cache methods using signature (special case for methods
19230         that are value type or string class)
19231         
19232         * image.c (mono_image_close): clean up allocated GSList's
19233         in runtime_invoke_cache.
19234
19235 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19236
19237         * mono-config.c: set the correct path for mono_cfg_dir on windows when
19238         there's no MONO_CFG_DIR environment variable defined.
19239
19240 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19241
19242         * threads.c: windows version must be >= 0x0500 to include OpenThread.
19243
19244 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
19245
19246         * threadpool.c: Really wait for 500ms after the async call, even if the wait
19247           is interrumped.
19248         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
19249           before waiting for it, and call CloseHandle after the wait to unref it.
19250           This will make sure that handles are not disposed too early.
19251
19252 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19253
19254         * appdomain.c:
19255         * appdomain.h:
19256         * icall.c: removed
19257         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
19258         needed now.
19259
19260         * object.c: se the application_base only for the domain that runs
19261         Main. Fixes bug #59216,
19262
19263 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19264
19265         * appdomain.c:
19266         * object.c: only the domain in which Main is run have
19267         SetupInformation.ConfigurationFile set, so moved a few lines from
19268         appdomain.c to object.c.
19269
19270 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19271
19272         * appdomain.c: we tried to load [name].(dll|exe), but according
19273         to bug #57710, we must also try [culture]/[name].(dll|exe) and
19274         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
19275         There's a test case attached to bug #58922.
19276
19277 2004-05-27  Dick Porter  <dick@ximian.com>
19278
19279         * icall.c:
19280         * file-io.c: Implemented icalls for locking and unlocking regions
19281         in a file.
19282         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
19283         FALSE on error (fixes both compiler warning and real bug.)
19284
19285 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
19286
19287         * culture-info-tables.h: reflecting locale-builder updates.
19288
19289           (Added missing ChangeLog entry for 05/26)
19290
19291 2004-05-27  Jackson Harper  <jackson@ximian.com>
19292
19293         * locales.c: Fix some cut and paste errors.
19294         
19295 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19296
19297         * mono-config.c: set the correct path for config. directory on windows.
19298
19299 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
19300
19301         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
19302           on win32.
19303
19304 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
19305
19306         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
19307         from pinvoke functions.
19308         
19309         * marshal.c (mono_ftnptr_to_delegate): Implement this.
19310
19311 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
19312
19313         * culture-info-tables.h: reflecting locale-builder updates.
19314
19315 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
19316
19317         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
19318         #59086.
19319
19320 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
19321
19322         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
19323         * icall.c: Modified icalls for RNG.
19324         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
19325         Windows (CryptoAPI).
19326
19327 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
19328
19329         * locales.c: Fix build.
19330
19331 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
19332
19333         * culture-info-tables.h: reflecting locale-builder updates.
19334
19335 2004-05-25  Jackson Harper  <jackson@ximian.com>
19336
19337         * locales.c: When creating the current culture use the $LANGs
19338         specific culture. So DateTimeFormat and NumberFormat entries are created.
19339         
19340 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
19341
19342         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
19343         a char array as parameter.
19344
19345 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
19346
19347         * image.c: In mono_image_open(), always use an absolute path name to
19348           look for already loaded images.
19349
19350 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
19351
19352         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
19353         missing in the windows build (like older cygwin include files).
19354
19355 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
19356
19357         * icall.c: Fixed check for possible integer overflow in Buffer_
19358         BlockCopy icall. Replaced comments style // by /* */.
19359
19360 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
19361
19362         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
19363         
19364         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
19365         check after MONO_VTADDR. Fixes pinvoke2.exe.
19366
19367         * marshal.h marshal.c metadata.h: Add beginnings of support for
19368         ftnptr -> delegate marshalling.
19369
19370 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
19371
19372         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
19373         * threads.c: Fix warnings.
19374
19375 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
19376
19377         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
19378         * icall.c: Registered icalls for Suspend and Resume.
19379         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
19380           Thread.Abort.
19381         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
19382         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
19383         * process.c: Use WaitForSingleObjectEx.
19384         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
19385           checkpoints.
19386         * threads.c, threads.h: Make use of new Ex wait methods. Improved
19387           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
19388           for Suspend and Resume. Added new mono_thread_stop, used for stoping
19389           background threads. Added basic support for Abort in Windows.
19390           Start new threads using a managed delegate invoke wrapper. This wrapper
19391           has an interruption checkpoint that is needed since an interruption
19392           can be requested before the thread leaves the unmanaged code that starts 
19393           the thread.
19394         * marshal.c: Added interruption checkpoint after every native call, and
19395           also before managed calls for wrappers called from unmanaged code to
19396           go into managed code.
19397         * object.h: Added new field in MonoThread to keep track of interruption
19398           requests.
19399
19400 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
19401
19402         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
19403         calls.
19404
19405 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19406
19407         * appdomain.c:
19408         * assembly.c:
19409         * gc.c:
19410         * locales.c:
19411         * mono-config.c:
19412         * rand.c: getenv -> g_getenv (windows!)
19413
19414         * process.c: complete_path is also used on non-windows platforms.
19415
19416 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19417
19418         * icall.c: new signature for Process_Start.
19419
19420         * process.[ch]: new signature for Process_Start. If we're on windows
19421         and UseShellExecute is false, we have to search for the program by
19422         ourselves if we don't get a full path.
19423
19424 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
19425
19426         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
19427         marshalling and call CleanUpNativeData if needed. Fixes #58646.
19428
19429 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19430
19431         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
19432         Fixes bug #58373.
19433
19434 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19435
19436         * process.c: use double quotes to quote program name and arguments on
19437         windows. Fixes bug #58575.
19438
19439 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19440
19441         * file-io.c: don't return "." and ".." when using windows Find*File.
19442
19443 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
19444
19445         * marshal.c: Don't pass wrappers to message init because method 
19446         addressed used to lookup metadata. part of remoting[2|3] fix.
19447
19448 2004-05-15  Jackson Harper  <jackson@ximian.com>
19449
19450         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
19451         path is essentially the same as MONO_PATH except that it points to
19452         GACs instead of lib directories.
19453         * loader.h: The user gac is gone so we dont need function to
19454         enable/disable it.
19455         * mono-config.c: user gac option is now gone.
19456         
19457 2004-05-15  Jackson Harper  <jackson@ximian.com>
19458
19459         * culture-info.h: Make defines more consistent, add calendar data
19460         to the culture info table.
19461         * culture-info-tables.h: Add basic calendar data. Basically
19462         everyone gets default gregorian until all the data is
19463         updated.
19464         * locales.c: Use the new consistent defines. Set calendar data for
19465         culture info objects.
19466         * object.h: add a field for calendar data to CultureInfo
19467         
19468 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
19469
19470         * image.c: image->runtime_invoke_cache is keyed on signatures now.
19471         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
19472         a signature.
19473         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
19474         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
19475         an extra param that is the pointer of the method to invoke. The IL for
19476         the invoke method is no longer specific to the method, but to the
19477         signature of the method. Thus, we can share the same code for multiple
19478         methods. This reduces the number of methods that have to be compiled.
19479
19480 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
19481
19482         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
19483
19484         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
19485
19486         * icall.c: Optimize Buffer.BlockCopy.
19487
19488 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19489
19490         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
19491         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
19492         quote). Changed them to "MMMM yyyy".
19493
19494 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
19495
19496         * rand.c
19497         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
19498
19499 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
19500
19501         * reflection.h: Updated after changes to managed structures.
19502
19503         * appdomain.c: Bump corlib version.
19504
19505 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19506
19507         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
19508         windows.
19509
19510 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19511
19512         * Makefile.am: link to ../os/libmonoos.la on windows.
19513
19514         * assembly.c:
19515                 -If MONO_DEBUG, warn about non-existing directories in
19516                 MONO_PATH.
19517                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
19518                 compile time variable.
19519                 -Removed init_default_path and call mono_set_rootdir from
19520                 libmonoos.a instead (windows only).
19521
19522         * assembly.h: declare mono_assembly_getrootdir().
19523
19524         * domain.c:
19525         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
19526
19527         * loader.c: s/getenv/g_getenv/
19528
19529 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
19530
19531         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
19532
19533         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
19534
19535         * metadata.h: Add new marshalling conversions.
19536
19537         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
19538         function.
19539
19540         * reflection.c (mono_reflection_get_type): Lookup the type in all
19541         modules of a multi-module assembly. Fixes #58291.
19542
19543 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
19544
19545         * threads.c: Before aborting a background, set the StopRequested
19546         state.  This avoids throwing the Abort exception.
19547         In mono_thread_manage, don't continue with the shutdown until all
19548         aborted threads have actually stopped.
19549
19550 2004-05-10  Jackson Harper  <jackson@ximian.com>
19551
19552         * locales.c: Remove the modifier from culture names.
19553         
19554 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19555
19556         * Makefile.am: monosn is not installed any more. It has been deprecated
19557         in favor of sn.
19558
19559 2004-05-07  Jackson Harper  <jackson@ximian.com>
19560
19561         * locales.c
19562         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
19563         Fix array construction, add bailout if the length is 0.
19564
19565 2004-05-07  Dick Porter  <dick@ximian.com>
19566
19567         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
19568         machine doesn't have a DNS entry.  Patch by Urs Muff
19569         (umuff@quark.com), fixes bug 57928.
19570
19571 2004-05-06  Jackson Harper  <jackson@ximian.com>
19572
19573         * reflection.c: Handle null PublicTokens properly. alloc mem for
19574         assembly names culture so we dont crash when freeing it.
19575         
19576 2004-05-06  Jackson Harper  <jackson@ximian.com>
19577
19578         * assembly.c: Check the usergac when loading with partial names.
19579         
19580 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
19581
19582         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
19583         does nothing for now (not required for Linux/Windows) but the class
19584         library can call it (and a newer or modified runtime could need it).
19585         * icall.c: Registred icall.
19586
19587 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19588
19589         * loader.c: prints a message on module loading error we set MONO_DEBUG
19590         environment variable.
19591
19592 2004-05-05  Jackson Harper  <jackson@ximian.com>
19593
19594         * appdomain.c: Handle PublicKeyToken=null properly.
19595         
19596 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
19597
19598         * environment.c|h: Added icall ves_icall_System_Environment_
19599         GetOSVersionString to get the current OS version as a string.
19600         * icall.c: Registred icall.
19601
19602 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
19603
19604         * object.c: in mono_object_get_virtual_method(), take into account that
19605         non-virtual methods don't have a slot in the vtable. Check needed when
19606         the object is a proxy.
19607
19608 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
19609
19610         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
19611         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
19612
19613         * object.c (mono_class_compute_gc_descriptor): Fix warning.
19614
19615         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
19616         passed when a valuetype is expected.
19617
19618         * object.c (mono_unhandled_exception): Only set the exit code if the
19619         exception happens in the main thread. Fixes thread5.exe.
19620
19621         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
19622         invalid names. Fixes #58047.
19623
19624 2004-05-03  Jackson Harper  <jackson@ximian.com>
19625
19626         * assembly.c: This line was committed accidently and is unneeded.
19627         
19628 2004-05-03  Jackson Harper  <jackson@ximian.com>
19629
19630         * icall.c: Add new icall for Assembly::LoadWithPartialName
19631         * assembly.c/.h: new function that probes the GAC to load partial
19632         assembly names by Paolo Molaro.
19633         
19634 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19635
19636         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
19637         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
19638         (type_get_fully_qualified_name): Added PublicKeyToken when building a
19639         full type name.
19640
19641 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19642
19643         * appdomain.c: fixed check for 'neutral' culture and removed warning.
19644         * reflection.c: fix bug when parsing a full type name and Version is not
19645         the last thing in the string.
19646
19647 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
19648
19649         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
19650         crashes when it is freed.
19651
19652 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19653
19654         * assembly.c: print the compat warning to stderr.
19655
19656 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
19657
19658         * assembly.c (mono_assembly_load_references): Add a compatibility
19659         hack to run old applications that might be still referencing the
19660         3300-based assemblies, only do this for System.xxx.
19661
19662 2004-05-01  Jackson Harper  <jackson@ximian.com>
19663
19664         * appdomain.c: If the culture is neutral we set it to "".
19665         
19666 2004-04-29  Jackson Harper  <jackson@ximian.com>
19667
19668         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
19669
19670 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
19671  
19672         * string-icalls.c: added low overhead function for copying chars
19673         * icall.c: added needed icall for the above function
19674  
19675 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19676
19677         * icall.c: fix return value of get_global_assembly_cache.  Implemented
19678         Environment.GetLogicalDrives.
19679
19680 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
19681
19682         * rand.c: try and talk to egd or prngd
19683         for random bytes if opening devices fail.
19684
19685 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
19686
19687         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
19688         alignment for the type using the native alignment of its members 
19689         instead of using klass->min_align.
19690
19691         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
19692
19693 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19694
19695         * file-io.c:
19696         * socket-io.c: added check for sys/aio.h.
19697
19698 2004-04-28  Dick Porter  <dick@ximian.com>
19699
19700         * threads.c: Don't abort a thread thats already aborting, when
19701         terminating everything.
19702
19703 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19704
19705         * icall.c: added 2 new async calls for Socket.
19706
19707         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
19708         IO on *nix systems.
19709
19710         * threadpool.c: removed unused variable.
19711
19712 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
19713
19714         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
19715
19716 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
19717
19718         * locales.c: put back string_invariant_tolower () and
19719         string_invariant_toupper ().
19720
19721 2004-04-26 David Waite <mass@akuma.org>
19722
19723         * file-io.h:
19724         * socket-io.h:
19725         * threads.h:
19726         * unicode.h: remove comma from end of enumeration declarations
19727
19728 2004-04-26 David Waite <mass@akuma.org>
19729
19730         * debug-mono-symfile.h:
19731         * decimal.c:
19732         * mono_debug.h:
19733         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
19734
19735
19736 2004-04-26  Jackson Harper  <jackson@ximian.com>
19737
19738         * appdomain.c: Increment version number.
19739         
19740 2004-04-26  Jackson Harper  <jackson@ximian.com>
19741
19742         * appdomain.c: Set assembly references public token value when
19743         PublicKeyToken is specified, not the hash_value. Free public token
19744         values when free assembly name data. Previously the public key
19745         token was hex decoded, however we are using hex encoded public key
19746         tokens, so this is not neccasary.
19747         * assembly.c: Lookup assemblies in the gac if their public token
19748         value is set. Add function to allow enabling user gac
19749         lookups. Specify whether or not the assembly was loaded from the
19750         GAC. Compare full assembly names when checking the cache for
19751         assemblies (Temporarily disabled see comment in code). Remove
19752         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
19753         specifies trace-loader they get extra info to stdout on the
19754         loading of assemblies.
19755         * image.h: Add a field for an assembly references public token
19756         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
19757         whether an assembly has been loaded from the GAC.
19758         * image.c: Remove a corlib -> mscorlib name mapping.
19759         * loader.h: Add function to enable/disable the user gac.
19760         * mono-config.c: Check if the usergac is enabled in the config
19761         file.
19762         * icall.c: New icall to determine whether or not an assembly has
19763         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
19764         * tabldefs.h: Add constant for assemblyref flag that specifies a
19765         full public key is used instead of a public token.
19766         * reflection.c: Remove mscorlib -> corlib mappings. Set
19767         PublicTokenValue instead of hash value. This value is a hex
19768         string so it does not need to be expanded.
19769
19770 2004-04-26  Martin Baulig  <martin@ximian.com>
19771
19772         * mono-debug-debugger.c (mono_debugger_initialize): Set
19773         `mono_debugger_initialized' before calling mono_debug_lock().
19774
19775 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
19776
19777         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
19778           InternalToUpper/InternalToLower.
19779         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
19780           removed invariant culture shortcut.  This is now done in managed code.
19781         * locales.c: (string_invariant_toupper/tolower) removed.
19782
19783 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19784
19785         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
19786         Added Poll internal call.
19787
19788         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
19789         call for Poll. Select was too heavy for polling a single socket.
19790
19791         * threadpool.[ch]: added mono_threadpool_cleanup.
19792         * threads.c: use it. Don't use Thread_Abort on windows.
19793
19794 2004-04-23  Martin Baulig  <martin@ximian.com>
19795
19796         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
19797
19798 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
19799
19800         * icall.c: Registred new icalls for key pair protection and added an
19801         icall for Environment.GetFolderPath on Windows.
19802         * security.c|h: Added new icalls for key pair protection.
19803
19804 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19805
19806         * socket-io.c: don't display the non-supported family warning for known
19807         families. Now this is not displayed on windows when checking support
19808         for IPv4/IPv6.
19809
19810 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19811
19812         * class.c: don't display the layout warning for static fields.
19813
19814 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
19815
19816         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
19817         * locales.c, locales.h: Added new icalls for culture-specific
19818         Char.ToLower and Char.ToUpper.
19819
19820 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19821
19822         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
19823         by David Waite.
19824
19825 2004-04-20  Martin Baulig  <martin@ximian.com>
19826
19827         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
19828         of the type name before passing it to mono_reflection_type_from_name().
19829
19830 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
19831
19832         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
19833         encodings here. Fixes #56965.
19834
19835 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
19836
19837         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
19838         fix test on strstr result not that I can see anything that
19839         relies on the result.
19840
19841 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
19842
19843         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
19844         Fixes #57081.
19845
19846         * marshal.c (mono_marshal_get_string_encoding): New helper function.
19847
19848         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
19849         function to determine which marshalling to use for strings. Fixes
19850         #56965.
19851
19852         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
19853
19854         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
19855
19856 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
19857
19858         * icall.c: #include mono-config.h
19859
19860 2004-04-15  Jackson Harper  <jackson@ximian.com>
19861
19862         * culture-info-tables.h: Fix date formats for en-US culture.
19863         
19864 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
19865
19866         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
19867         ThreadPool.SetMinThreads.
19868         * threadpool.c: Implemented ThreadPool.GetMinThreads and
19869         ThreadPool.SetMinThreads.
19870
19871 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
19872
19873         * mono-config.c: also load the .config file in the directory
19874         where the assembly was found.
19875
19876 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
19877
19878         * assembly.c: load per-assembly config files.
19879         * icall.c: decrapified code to get the config dir and moved to
19880         mono-config.c.
19881         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
19882         per-assembly config files. When doing a dll map lookup give precedence
19883         to the per-assembly data.
19884
19885 2004-04-14  Martin Baulig  <martin@ximian.com>
19886
19887         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
19888         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
19889         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
19890
19891         * mono-debugger-debugger.c: While the debugger is locked, remember
19892         whether the symbol tables have changes and send one single
19893         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
19894
19895 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
19896
19897         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
19898
19899         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
19900         function.
19901
19902         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
19903         account when marshalling string arrays. Fixes #56965.
19904
19905 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
19906
19907         * icall.c: Add new icalls mapping for security.
19908         * security.c|h: Add internal calls for WindowsIdentity,
19909         WindowsImpersonationContext and WindowsPrincipal.
19910
19911 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
19912
19913         * class.c: Added comment to ensure the System.MonoDummy class
19914         is removed when no longer necessary
19915
19916 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
19917
19918         * appdomain.c: Pass arguments to the bootstraping exceptions to
19919         minimize JITed methods at boot
19920
19921         * metadata.c (mono_exception_from_name_two_strings): Allow for the
19922         second string to be null.
19923
19924         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
19925         Change the protocol to minimize the JIT methods at startup.  Now
19926         it Returns the internal codepage, if the value of "int_code_page"
19927         is 1 at entry, and we can not compute a suitable code page
19928         number, returns the code page as a string.
19929
19930 2004-04-13  Jackson Harper  <jackson@ximian.com>
19931
19932         * culture-info-tables.h: Fix number of decimal digits for all
19933         english locales.
19934
19935 2004-04-13  Jackson Harper  <jackson@ximian.com>
19936
19937         * icall.c: Clairfy out of sync error message. It is not always
19938         your corlib that is out of sync.
19939
19940 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
19941
19942         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
19943         properties when only the set accessor is overriden. Fixes #55874.
19944
19945 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
19946
19947         * assembly.c (mono_assembly_load_references): Make this thread safe.
19948         Fixes #56327.
19949
19950 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
19951
19952         * monosn.c: Add missing initialization calls.
19953
19954 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
19955
19956         * locales.c:
19957         ves_icall_System_Globalization_CultureInfo_construct_number_format
19958         Fix g_assert so it compiles on fussier compilers re int/ptr
19959         mismatch
19960
19961 2004-04-08  Dick Porter  <dick@ximian.com>
19962
19963         * socket-io.h:
19964         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
19965         53992.  Also rearrange the code so that the internal calls return
19966         an error value and exceptions are thrown from managed code.
19967
19968         * icall.c: Add type info to the socket icalls.
19969
19970 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
19971
19972         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
19973         owes me a beer.
19974
19975 2004-04-07  Martin Baulig  <martin@ximian.com>
19976
19977         * class.c (mono_class_from_generic_parameter): Don't default
19978         `klass->parent' to `mono_defaults.object_type'.
19979
19980 2004-04-07  Martin Baulig  <martin@ximian.com>
19981
19982         * reflection.c (mono_reflection_initialize_generic_parameter): Set
19983         `param->pklass->reflection_info'.       
19984
19985 2004-04-07  Jackson Harper  <jackson@ximian.com>
19986
19987         * culture-info-tables.h: Fix date separator symbol.
19988         
19989 2004-04-07  Martin Baulig  <martin@ximian.com>
19990
19991         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
19992         from System.Type to System.MonoType.
19993
19994 2004-04-07  Martin Baulig  <martin@ximian.com>
19995
19996         * reflection.h
19997         (MonoReflectionGenericParam): Added `has_reference_type' and
19998         `has_value_type' fields.
19999
20000         * reflection.c (mono_image_get_generic_param_info): Encode the
20001         correct flags if we have the `class' or `struct' constraint.
20002
20003 2004-04-07  Martin Baulig  <martin@ximian.com>
20004
20005         * reflection.h
20006         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
20007
20008 2004-04-07  Jackson Harper  <jackson@ximian.com>
20009
20010         * appdomain.c: Revert extra patches, just wanted to bump the
20011         version number.
20012         
20013 2004-04-07  Jackson Harper  <jackson@ximian.com>
20014
20015         * Makefile.am: Add culture-info private headers.
20016         * icall.c: Add new icalls for contructing locales.
20017         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
20018         * locales.h: Declare new culture info construction methods.
20019         * object.h: Add new fields used to avoid the CultureMap to
20020         MonoCultureInfo.
20021         * culture-info.h: Definition of structs used in the culture info
20022         tables.
20023         * culture-info-tables.h: Autogenerated tables that contain culture
20024         info data. This file was generated with the locale-builder tool.
20025         * appdomain.c: Incement corlib version number.
20026         
20027 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
20028
20029         * appdomain.c: (mono_runtime_init) move mono_thread_init
20030         to before mono_object_new calls so critical sections
20031         are initialized before use.
20032
20033 2004-04-07  Martin Baulig  <martin@ximian.com>
20034
20035         * icall.c
20036         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
20037         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
20038         (ves_icall_MonoGenericParam_initialize): Removed.
20039         (monogenericparam_icalls): Removed.
20040         (generictypeparambuilder_icalls): Added new table for
20041         System.Reflection.Emit.GenericTypeParameterBuilder.
20042
20043         * reflection.c
20044         (mono_reflection_define_generic_parameter): Removed.
20045         (mono_reflection_initialize_generic_parameter): This is now called
20046         from GenericTypeParameterBuilder's .ctor.
20047
20048 2004-04-06  Martin Baulig  <martin@ximian.com>
20049
20050         * class.c (mono_class_init): Don't inflate nested classes in a
20051         generic instance.
20052         (mono_type_get_name_recurse): Include the generic arguments for
20053         generic instances and generic type declarations.
20054         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
20055         (_mono_class_get_instantiation_name): Removed.
20056         (mono_class_create_generic): Always use `gklass->name' as our name.
20057
20058         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
20059
20060         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
20061         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
20062         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
20063         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
20064         closed generic methods here.
20065
20066         * reflection.c
20067         (mono_reflection_generic_inst_get_nested_types): Removed.
20068         (inflate_mono_method): Copy the generic parameters from the
20069         MonoMethodHeader into out MonoGenericMethod.
20070
20071 2004-04-06  Martin Baulig  <martin@ximian.com>
20072
20073         * row-indexes.h
20074         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
20075
20076         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
20077
20078         * reflection.c (build_compressed_metadata): If we have any entries
20079         in the GenericParam, MethodSpec or GenericParamConstraint tables,
20080         set the header version to 1.1.
20081
20082 2004-04-06  Martin Baulig  <martin@ximian.com>
20083
20084         * class.c (mono_class_init): If we're a generic instance,
20085         initialize our nested classes, too.
20086         (_mono_class_get_instantiation_name): Deal with the new `!%d'
20087         suffix. 
20088
20089 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20090
20091         * process.c: quote the argument passed to the shell on windows.
20092
20093 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
20094
20095         * threads.c (mono_alloc_special_static_data): Allow this to be
20096         called during startup.
20097
20098 2004-04-02  Martin Baulig  <martin@ximian.com>
20099
20100         * icall.c
20101         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
20102
20103 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
20104
20105         * icall.c: Fix build.
20106
20107 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
20108
20109         * Makefile.am: Added security.c|h.
20110         * icall.c: Added icall for get_UserName;
20111         * security.c: New file for security related icalls. Added function
20112         get_UserName for System.Environment (fix #56144).
20113         * security.h: New. Header file for security.c
20114
20115 2004-04-02  Dick Porter  <dick@ximian.com>
20116
20117         * icall.c: Deleted the icalls that were obsoleted some time ago
20118         by the ICU string code, and which were mixed into the icall
20119         rearranging.  Fixes bug 55969.
20120
20121         * string-icalls.h: 
20122         * string-icalls.c: Deleted the code that those icalls reference.
20123
20124 2004-04-01  Martin Baulig  <martin@ximian.com>
20125
20126         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
20127
20128         * class.c (mono_class_from_generic_parameter): Don't set 
20129         TYPE_ATTRIBUTE_INTERFACE.
20130         (my_mono_class_from_generic_parameter): Likewise.
20131
20132 2004-04-01  Martin Baulig  <martin@ximian.com>
20133
20134         * loader.c (find_method): Added an optional `MonoClass *ic'
20135         argument to search in a specific interface.
20136         (mono_get_method_constrained): New public function.
20137
20138 2004-04-01  Martin Baulig  <martin@ximian.com>
20139
20140         * reflection.c (mono_image_get_generic_field_token): Use the
20141         `handleref' cache here.
20142
20143 2004-04-01  Martin Baulig  <martin@ximian.com>
20144
20145         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
20146
20147         * reflection.c (create_generic_typespec): Use the `typespec' hash
20148         here, not the `typeref' one.    
20149
20150 2004-04-01  Martin Baulig  <martin@ximian.com>
20151
20152         * class.c (mono_class_inflate_generic_type): Moved the
20153         functionality into a new static inflate_generic_type() which
20154         returns NULL if it didn't do anything.  Only increment the
20155         `mono_stats.inflated_type_count' if we actually inflated
20156         something.
20157         (mono_class_get_full): Check the classes type to see whether we
20158         need to inflate it; also inflate MONO_TYPE_(M)VAR.
20159
20160 2004-04-01  Jackson Harper  <jackson@ximian.com>
20161
20162         * reflection.c: Set culture for assembly references.
20163         
20164 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
20165
20166         * reflection.[ch], icall.[ch], Fix support for pinning variables.
20167
20168 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20169
20170         * assembly.c:
20171         (do_mono_assembly_open): the critical section also covers
20172         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
20173
20174 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20175
20176         * threads.c:
20177         (mono_manage_threads): abort the background threads when finishing.
20178         Fixes bug #47232.
20179
20180 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20181
20182         * gc.c: only close the done_event handle if there was no timeout.
20183         C-ified comments.
20184
20185 2004-03-30  Martin Baulig  <martin@ximian.com>
20186
20187         * icall.c (icall_entries): It's called "System.Activator", not
20188         "System.Activation".    
20189
20190 2004-03-30  Martin Baulig  <martin@ximian.com>
20191
20192         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
20193         (mono_class_create_from_typespec): Likewise.
20194
20195 2004-03-30  Martin Baulig  <martin@ximian.com>
20196
20197         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
20198         `has_ctor_constraint' and `initialized'.
20199
20200 2004-03-30  Martin Baulig  <martin@ximian.com>
20201
20202         * reflection.c (encode_new_constraint): New static function to add
20203         the constructor constraint attribute to a type parameter.
20204         (encode_constraints): Call encode_new_constraint() if necessary.
20205
20206         * reflection.h
20207         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
20208
20209         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
20210         
20211 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
20212
20213         * reflection.c, icall.c: add support for pinning variables. 
20214
20215 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
20216
20217         * marshal.c (mono_marshal_get_managed_wrapper):
20218         init bool local with zero rather than null.
20219
20220 2004-03-29  Martin Baulig  <martin@ximian.com>
20221
20222         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
20223         the "official" behavior here.
20224         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
20225
20226 2004-03-29  Martin Baulig  <martin@ximian.com>
20227
20228         * icall.c: Reflect latest API changes.
20229
20230 2004-03-29  Martin Baulig  <martin@ximian.com>
20231
20232         * loader.c (mono_get_method_from_token): Also call
20233         mono_metadata_load_generic_params () for abstract and interface
20234         methods; replace the type arguments in the method signature with
20235         the ones which are loaded from the metadata.
20236
20237 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
20238
20239         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
20240         of the lock is not the current thread. MS.NET don't do it, in spite of
20241         what the documentation says. See bug #56157.
20242
20243 2004-03-28  Martin Baulig  <martin@ximian.com>
20244
20245         * class.c (mono_class_init): Don't call init_properties() and
20246         init_events() for generic instances; set `prop->parent' when
20247         inflating properties.
20248
20249         * reflection.c (mono_generic_inst_get_object): Call
20250         `mono_class_init (ginst->klass)'.
20251         (mono_type_get_object): Only create a MonoGenericInst if your
20252         generic type is a TypeBuilder.
20253         (do_mono_reflection_bind_generic_parameters): Only set
20254         `ginst->is_dynamic' if our generic type is a TypeBuilder.
20255
20256 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
20257
20258         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
20259         Fixes #56091.
20260
20261 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20262
20263         * icall.c: added Kill_internal icall.
20264         * process.[ch]: added Kill_internal icall.
20265
20266 2004-03-25  Martin Baulig  <martin@ximian.com>
20267
20268         * class.h (MonoStats): Added `generic_instance_count',
20269         `inflated_method_count', `inflated_type_count' and
20270         `generics_metadata_size'.       
20271
20272 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20273
20274         * reflection.c: no warnings now.
20275
20276 2004-03-25  Martin Baulig  <martin@ximian.com>
20277
20278         * class.c (mono_class_get_full): New public function; does a
20279         mono_class_get(), but also takes a `MonoGenericContext *'.
20280
20281         * loader.c (mono_field_from_memberref): Renamed to
20282         `field_from_memberref', made static and added `MonoGenericContext *'
20283         argument.
20284         (mono_field_from_token): Added `MonoGenericInst *' argument.
20285         (method_from_memberef): Likewise.
20286         (mono_get_method_from_token): Likewise.
20287         (mono_get_method_full): New public function; does a
20288         mono_get_method(), but also takes a `MonoGenericContext *'.
20289
20290         * verify.c (mono_method_verify): Get the method's generic context
20291         and pass it to mono_field_from_token(), mono_get_method_full() and
20292         mono_class_get_full().
20293
20294 2004-03-25  Martin Baulig  <martin@ximian.com>
20295
20296         * class.c (mono_class_inflate_generic_type): Take a
20297         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
20298         `MonoGenericMethod *'.
20299
20300 2004-03-25  Martin Baulig  <martin@ximian.com>
20301
20302         * loader.h (MonoMethodInflated): Store the MonoGenericContext
20303         instead of the MonoGenericMethod here.
20304
20305 2004-03-25  Martin Baulig  <martin@ximian.com>
20306
20307         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
20308         each time we create a new MonoGenericInst, we also create a new
20309         context which points back to us.
20310
20311         * class.c (inflate_method): Use `ginst->context' instead of
20312         creating a new context.
20313
20314         * loader.c (method_from_memberref): Use
20315         `klass->generic_inst->context' instead of creating a new context.
20316
20317 2004-03-25  Martin Baulig  <martin@ximian.com>
20318
20319         * class.h (MonoGenericContext): New struct.
20320         (MonoGenericMethod): Removed `generic_inst'.
20321
20322         * class.c (mono_class_inflate_generic_method): Take a
20323         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
20324
20325 2004-03-25  Martin Baulig  <martin@ximian.com>
20326
20327         * loader.h (MonoMethodInflated): New typedef.
20328
20329         * metadata.h (MonoMethodSignature): Removed `gen_method', make
20330         `generic_param_count' consume just 30 bits, added `is_inflated'
20331         and `has_type_parameters' flags (one bit each).
20332
20333         * class.c (mono_class_inflate_generic_method): Create a
20334         MonoMethodInflated instead of a MonoMethodNormal and set
20335         `is_inflated' in the method signature.
20336
20337         * class.h (MonoGenericMethod): Removed `generic_method'.
20338
20339 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
20340
20341         * image.c: Make sure the name of a MonoImage is always an absolute path.
20342           This fixes bug #54415.
20343
20344 2004-03-24  Martin Baulig  <martin@ximian.com>
20345
20346         * class.c (mono_class_setup_vtable): If we're a generic instance,
20347         use our generic type's vtable size.
20348
20349 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
20350
20351         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
20352         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
20353         problems.
20354
20355 2004-03-23  Martin Baulig  <martin@ximian.com>
20356
20357         * class.h (MonoDynamicGenericInst): Added `int count_events' and
20358         `MonoEvent *events'.
20359
20360         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
20361         (typebuilder_icalls): Added "get_event_info"; calls
20362         mono_reflection_event_builder_get_event_info(). 
20363
20364         * reflection.c (mono_reflection_generic_inst_initialize): Added
20365         `MonoArray *events'.
20366         (mono_reflection_event_builder_get_event_info): New function.
20367
20368 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
20369
20370         * object.h: add mono_type_initialization_init
20371
20372         * object.c (mono_runtime_class_init): 
20373         implement class constructor synchronization rules
20374         to cope with threading issues.  
20375         add mono_type_initialization_init
20376
20377         * appdomain.c (mono_runtime_init): call 
20378         mono_type_initialization_init
20379
20380         * class.h: removing initializing field from MonoVTable
20381
20382 2004-03-23  Martin Baulig  <martin@ximian.com>
20383
20384         * class.c (my_mono_class_from_generic_parameter): Use
20385         `param->name' if it's not NULL. 
20386
20387 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
20388
20389         * class.c: do not insert non-virtual methods in the vtable.
20390         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
20391         that means the method is non-virtual. This never would have
20392         happened before.
20393
20394 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
20395
20396         * profiler.c: Added lock for accessing coverage_hash.
20397
20398 2004-03-22  Martin Baulig  <martin@ximian.com>
20399
20400         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
20401         `method->method->signature->generic_param_count != 0' to make it
20402         work for interface methods.
20403
20404 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20405
20406         * process.c: quote the string passed to the shell using g_shell_quote.
20407
20408 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20409
20410         * threads.c:
20411         (mono_threads_manage): don't remove the finalizer thread and self
20412         from the threads hash table so that mono_thread_manage can be called
20413         more than once.
20414
20415 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20416
20417         * process.c: quote the arguments when UseShellExecute is true. Fixes
20418         bug #55790.
20419
20420 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20421
20422         * threads.c: set mono_thread_detach as a cleanup routine for every
20423         thread. This way it's always executed upon thread termination, either
20424         aborted or finished normally. No more xsp hangs!
20425
20426 2004-03-17  Martin Baulig  <martin@ximian.com>
20427
20428         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
20429         `int count_nested' and a `MonoType **nested'.
20430
20431         * reflection.c (mono_reflection_bind_generic_parameters): Moved
20432         most of the functionality into a new static
20433         do_mono_reflection_bind_generic_parameters() and don't take a
20434         `MonoType *nested_in' argument any more.  Don't compute nested
20435         types here.
20436         (mono_reflection_generic_inst_get_nested_types): New public method
20437         to get nested types.
20438
20439         * class.c (mono_class_create_generic): Set `klass->nested_in' if
20440         we're a nested class.
20441
20442         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
20443         mono_reflection_generic_inst_get_nested_types() to compute the
20444         nested types.
20445
20446 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
20447
20448         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
20449         descriptive error message under windows.
20450         
20451 2004-03-17  Martin Baulig  <martin@ximian.com>
20452
20453         * class.c (dup_type): Added `const MonoType *original' argument;
20454         copy the attrs from the original type.
20455
20456 2004-03-17  Martin Baulig  <martin@ximian.com>
20457
20458         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
20459         `m->generic_inst_cache' here.
20460
20461 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
20462
20463         * exception.h exception.c: Add stack_overflow_exception.
20464
20465 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20466
20467         * threadpool.c:
20468         (overlapped_callback): call SetEvent *after* invoking the callback.
20469         No need to call CloseHandle.
20470
20471 2004-03-16  Martin Baulig  <martin@ximian.com>
20472
20473         * reflection.c (mono_image_get_fieldref_token): Take a
20474         `MonoReflectionField *' instead of a `MonoClassField *' and a
20475         `MonoClass *'; store the `MonoReflectionField *' in the hash.
20476
20477 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20478
20479         * appdomain.c: don't add the culture to the filename we're looking for
20480         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
20481
20482 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20483
20484         * locales.c: don't ignore symbols when doing case insensitive compares.
20485         Thanks Dick! Fixes bug #54046.
20486
20487         * threads.c: surround 'threads' usage with enter/leave in
20488         mono_thread_manage.
20489
20490 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
20491
20492         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
20493         implicitly marshalled as [Out]. Fixes #55450.
20494
20495         (mono_marshal_get_runtime_invoke): Zero out the result if there is
20496         an exception.
20497
20498 2004-03-16  Martin Baulig  <martin@ximian.com>
20499
20500         * class.c (mono_class_from_generic_parameter): Use the actual
20501         parameter name. 
20502
20503 2004-03-16  Martin Baulig  <martin@ximian.com>
20504
20505         * reflection.c (type_get_signature_size): New static function.
20506         Compues the size of the type in a method signature.
20507         (method_get_signature_size): New static function; calls
20508         type_get_signature_size() to compute the actual size of the
20509         method's signature.
20510         (method_encode_signature): Use method_get_signature_size() to get
20511         the signature's size rather than using `nparams * 10'.
20512
20513 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20514
20515         * file-io.h: define here WapiOverlapped on windows. I don't want the
20516         regular OVERLAPPED one.
20517
20518         * file-io.c:
20519         * threadpool.c: somehow, BindIoCompletionCallback is not found.
20520         Disabling AIO on windows.
20521
20522 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20523
20524         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
20525         bug #55385.
20526
20527 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20528
20529         * appdomain.c: upgraded corlib version.
20530
20531         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
20532         and BeginWrite. Allow opening files for asynchrnous operations.
20533
20534         * file-io.h: new struct that maps FileStreamAsyncResult.
20535         * icall.c: added new icalls.
20536         * process.[ch]: support setting child process environment variables
20537         and use the SHELL or COMSPEC when UseShellExecute is true.
20538
20539         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
20540         callback for async. IO is here and also BindHandle.
20541
20542         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
20543         from here.
20544
20545 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
20546
20547         * reflection.c (create_custom_attr): Allow len == 0.
20548
20549         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
20550         computation on big-endian machines.
20551
20552 2004-03-13  Martin Baulig  <martin@ximian.com>
20553
20554         * class.h (MonoGenericInst): Added `int count_ifaces'.
20555
20556         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
20557         `ginst->count_ifaces' instead `klass->interface_count' since we
20558         may get called before the vtable is created.
20559
20560         * loader.c (mono_method_get_param_names): If we're a generic
20561         instance, return and don't initialize the class.
20562
20563         * reflection.c (mono_reflection_setup_generic_class): Don't call
20564         ensure_runtime_vtable().
20565         (mono_reflection_bind_generic_parameters): Set
20566         `ginst->count_ifaces'.
20567
20568 2004-03-11  Jackson Harper <jackson@ximian.com>
20569
20570         * icall.c:
20571         * unicode.c:
20572         * unicode.h: Remove unused System.Char icalls.
20573         
20574 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
20575
20576         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
20577         code when we P/Invoke the first library in Windows.Forms, instead
20578         of when we first open the assembly.
20579
20580         * assembly.c: Drop the lookup from here.
20581
20582 2004-03-10  Martin Baulig  <martin@ximian.com>
20583
20584         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
20585         class for properties, fields and events.  Finally fixes #54945.
20586
20587 2004-03-10  Martin Baulig  <martin@ximian.com>
20588
20589         * metadata.c (mono_metadata_class_equal): New static function;
20590         checks whether two generic instances or two generic parameters are
20591         equal.
20592         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
20593         compare classes.        
20594
20595 2004-03-10  Martin Baulig  <martin@ximian.com>
20596
20597         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
20598
20599         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
20600         argument and write it into the `reflection_info' field.
20601
20602         * icall.c
20603         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
20604         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
20605
20606 2004-03-09  Jackson Harper  <jackson@ximian.com>
20607
20608         * char-conversions.h: use 8 bits for numeric data its all we need
20609         * icall.c: numeric data is only 8 bits now.
20610
20611 2004-03-09  Martin Baulig  <martin@ximian.com>
20612
20613         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
20614
20615         * class.c (init_properties, init_events): Initialize the new
20616         `parent' field.
20617
20618         * reflection.c (typebuilder_setup_properties): Likewise.
20619         (typebuilder_setup_events): Likewise.
20620
20621         * reflection.h (MonoEventInfo): Replaced `parent with
20622         `declaring_type' and `reflected_type'.
20623
20624         * icall.c (ves_icall_get_property_info): Distinguish between
20625         declaring and reflected type.
20626         (ves_icall_get_event_info): Likewise.
20627
20628 2004-03-09  Martin Baulig  <martin@ximian.com>
20629
20630         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
20631         (ves_icall_Type_GetField): Correctly set field->klass.
20632
20633 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
20634
20635         * loader.h: Fix warning.
20636
20637 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
20638
20639         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
20640         library routine if present.  Notice that it will still continue
20641         executing even if its missing, for those working on the Gtk#
20642         edition of Windows.Forms.
20643
20644         * assembly.c (do_mono_assembly_open): If loading the
20645         System.Windows.Forms call mono_loader_wini_init.
20646
20647 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
20648
20649         * class.h: Added MonoRemoteClass struct.
20650         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
20651         function for MonoStrings.
20652         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
20653         Added internal call for getting the proxy type.
20654         * marshal.c: Get the type of transparent proxies from its remote_class.
20655         Added methods that generate the IL for type checks and casts:
20656         mono_marshal_get_isinst, mono_marshal_get_castclass, 
20657         mono_marshal_get_proxy_cancast.
20658         * marshal.h: Declaration of the previous new methods.
20659         * object.c: Added new moethods for creating and updating MonoRemoteClass
20660         instances: mono_remote_class, mono_upgrade_remote_class, 
20661         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
20662         * verify.c: FIx transparent_proxy_fields layout.
20663         * appdomain.c: Bump corlib version.
20664
20665 2004-03-04  Jackson Harper  <jackson@ximian.com>
20666
20667         * icall.c: Add icall to access char conversion tables.
20668         * char-conversions.h: Character conversion tables.
20669         * Makefile.am: Add char-conversions.h private header file.
20670         
20671 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
20672
20673         * appdomain.c (unload_thread_main): Increase unloading timeout to
20674         10 sec as a temporary workaround for Nant problems.
20675
20676 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
20677
20678         * gc.c: Add checks for GC_enable and GC_disable.
20679
20680         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
20681         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
20682         (bug #54988).
20683         
20684 2004-02-27  Martin Baulig  <martin@ximian.com>
20685
20686         * reflection.c (mono_reflection_bind_generic_parameters): Take a
20687         `MonoReflectionType *' instead of a `MonoType *'.
20688
20689 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
20690
20691         * gc.c (run_finalize): Avoid finalizing the object representing the
20692         finalizer thread.
20693         (finalizer_thread): Fix warning.
20694
20695 2004-02-25  Martin Baulig  <martin@ximian.com>
20696
20697         * class.c (_mono_class_get_instantiation_name): Added `int offset'
20698         argument for nested types.
20699         (mono_class_create_generic): Added support for nested generictypes.
20700
20701         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
20702         `GList *nested'.
20703
20704         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
20705
20706         * reflection.c (method_encode_signature): Increase the minimum
20707         value of `size' from 10 to 11.
20708         (mono_reflection_bind_generic_parameters): Take `int type_argc'
20709         and `MonoType **types' arguments instead of the `MonoArray
20710         *types'; added `MonoType *nested_in'.  Recursively instantiate
20711         nested classes. 
20712
20713 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
20714
20715         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
20716         stack_overflow_ex members which are used by exception handling.
20717
20718         * appdomain.c (mono_runtime_init): Initialize the new members.
20719
20720         * gc.c (mono_gc_enable): New helper function.
20721         * gc.c (mono_gc_disable): New helper function.
20722
20723 2004-02-23  Martin Baulig  <martin@ximian.com>
20724
20725         * icall.c: I must have been really stupid - make it actually work
20726         this time ;-)
20727
20728 2004-02-23  Martin Baulig  <martin@ximian.com>
20729
20730         * loader.c (method_from_memberref): Only inflate the method if
20731         it's in another klass.
20732
20733 2004-02-23  Martin Baulig  <martin@ximian.com>
20734
20735         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
20736         (mono_class_init): If we're a generic instance and an interface,
20737         compute `class->interface_id'; also create `class->interfaces'
20738         here and inflate them.
20739
20740         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
20741         `ginst->is_open'.
20742         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
20743
20744         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
20745
20746 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
20747
20748         * reflection.c (method_encode_code): Improved the error message
20749         generated by the exception.
20750
20751 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20752
20753         * icall.c: Martin did not do what he said in the ChangeLog for
20754         2004-02-18, but put back the changes for properties and events.
20755         Commenting those changes out again and adding comment to bug #54518.
20756         
20757         * process.c: removed warning.
20758
20759 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
20760
20761         * marshal.c (emit_struct_conv): Print an error message instead of
20762         asserting when a type does not have the StructLayout attribute.
20763
20764 2004-02-20  Martin Baulig  <martin@ximian.com>
20765
20766         * reflection.c (mono_type_get_object): Also use the cache for
20767         generic instances.
20768         (mono_reflection_bind_generic_parameters): Always compute
20769         `ginst->ifaces'.        
20770
20771 2004-02-20  Martin Baulig  <martin@ximian.com>
20772
20773         * class.h (MonoGenericMethod): Removed `klass'.
20774
20775         * class.c (mono_class_inflate_generic_method): Added `MonoClass
20776         *klass' argument.
20777
20778 2004-02-20  Martin Baulig  <martin@ximian.com>
20779
20780         * reflection.c (method_encode_methodspec): Actually use the
20781         uninflated signature for the memberref.
20782
20783 2004-02-20  Martin Baulig  <martin@ximian.com>
20784
20785         * class.h (MonoGenericMethod): Removed `declaring'.
20786
20787         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
20788         is NULL, compute it here.
20789
20790 2004-02-20  Martin Baulig  <martin@ximian.com>
20791
20792         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
20793
20794         * metadata.c (mono_metadata_generic_inst_hash): New method.
20795         (mono_metadata_generic_inst_equal): New method.
20796
20797         * reflection.c (mono_reflection_bind_generic_parameters): Use the
20798         `klass->image->generic_inst_cache' cache to avoid creating
20799         duplicate MonoGenericInst's.
20800
20801         * class.c (mono_class_inflate_generic_type): Use the cache.
20802
20803 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
20804
20805         * object.c: fixed gc descriptor calculation for embedded valuetypes.
20806
20807 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20808
20809         * icall.c: added Socket.WSAIoctl icall.
20810
20811         * socket-io.[ch]: implemented
20812         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
20813
20814 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
20815
20816         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
20817
20818 2004-02-18  Urs C Muff  <umuff@quark.com>
20819
20820         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
20821         this work on PPC and other big-endian architectures.
20822
20823         * debug-mono-symfile.h: Prepended the names of all the `guint32'
20824         fields with an underscore to make sure they're only accessed by
20825         the read32() macro.
20826
20827 2004-02-18  Martin Baulig  <martin@ximian.com>
20828
20829         * icall.c: Put the klass->refclass changes back for methods and
20830         fields, but not for properties and events.  We're currently not
20831         distinguishing between DeclaringType and ReflectedType for
20832         properties and events, that's what caused the regressions.
20833
20834 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20835
20836         * object.c:
20837         (mono_async_result_new): the handle can be NULL.
20838
20839         * threadpool.c: Use an event instead of a semaphore, don't initialize
20840         it until needed. This saves quite a few semaphores from being created
20841         when using the threadpool.
20842
20843 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
20844
20845         * object.c (mono_string_is_interned_lookup): Fix interning of long
20846         strings. Fixes #54473.
20847
20848         * domain.c (ldstr_equal): Optimize if the two strings are equal.
20849
20850         * icall.c: Revert the klass->refclass changes since they introduce
20851         regressions (bug #54518).
20852
20853 2004-02-18  Martin Baulig  <martin@ximian.com>
20854
20855         * class.c (mono_class_init): If we're a generic instance and don't
20856         come from a TypeBuilder, inflate our members here.
20857         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
20858         (mono_class_create_generic): New public method.
20859         (mono_class_initialize_generic): Removed.
20860         (get_instantiation_name): Renamed to
20861         _mono_class_get_instantiation_name() and made it public.
20862
20863 2004-02-18  Martin Baulig  <martin@ximian.com>
20864
20865         * class.c (mono_class_inflate_generic_type): Clear the new
20866         instance's `nginst->klass' when inflating a generic instance.
20867         (mono_class_is_subclass_of): Added (basic) support for generic
20868         instances.
20869
20870 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
20871
20872         * appdomain.h, domain.c: use a MonoCodeManager instead of a
20873         MonoMempool to hold compiled native code.
20874
20875 2004-02-17  Martin Baulig  <martin@ximian.com>
20876
20877         * class.h (MonoDynamicGenericInst): Added `count_properties' and
20878         `properties'.
20879
20880         * reflection.c (mono_reflection_generic_inst_initialize): Added
20881         `MonoArray *properties' argument.
20882
20883         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
20884
20885 2004-02-17  Martin Baulig  <martin@ximian.com>
20886
20887         * icall.c (ves_icall_Type_GetFields): Renamed to
20888         ves_icall_Type_GetFields_internal() and added a
20889         `MonoReflectionType *rtype' argument; pass it to
20890         mono_field_get_object() to set the field's "reflected" type.
20891         (ves_icall_Type_GetConstructors): Likewise.
20892         (ves_icall_Type_GetEvents): Likewise.
20893         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
20894         argument; pass it to mono_method_get_object() to set the method's
20895         "reflected" type.       
20896
20897 2004-02-17  Martin Baulig  <martin@ximian.com>
20898
20899         * class.h (MonoDynamicGenericInst): New type.
20900         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
20901
20902         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
20903         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
20904         (ves_icall_MonoGenericInst_GetFields): New interncall.
20905
20906         * class.c (mono_class_from_generic): Don't call
20907         mono_class_initialize_generic() if this is a dynamic instance;
20908         ie. it's being created from a TypeBuilder.
20909         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
20910         `class->byval_arg.type'.
20911
20912         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
20913         to `inflate_method' and made static.
20914         (mono_reflection_inflate_field): Removed.
20915         (mono_reflection_generic_inst_initialize): New public method.
20916
20917         * reflection.h (MonoReflectionGenericInst): Removed `methods',
20918         `ctors' and `fields'; added `initialized'.
20919
20920 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
20921
20922         * debug-helpers.c (mono_method_full_name): Fix output for empty
20923         namespaces.
20924
20925 2004-02-12  Martin Baulig  <martin@ximian.com>
20926
20927         * class.h (MonoClassField): Added `MonoType *generic_type'.
20928
20929         * reflection.c (mono_image_get_fieldref_token): Added support for
20930         instantiated generic types.
20931         (field_encode_inflated_field): Removed.
20932         (mono_image_get_inflated_field_token): Removed.
20933         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
20934
20935         * reflection.h (MonoReflectionInflatedField): Removed.
20936
20937 2004-02-12  Martin Baulig  <martin@ximian.com>
20938
20939         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
20940         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
20941
20942         * reflection.c (mono_image_get_methodspec_token): Take a
20943         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
20944         (mono_image_create_token): Check whether we have a
20945         `method->signature->gen_method' and call
20946         mono_image_get_methodspec_token() if appropriate.
20947         (inflated_method_get_object): Removed.
20948         (mono_reflection_bind_generic_method_parameters): Return a
20949         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
20950         (mono_reflection_inflate_method_or_ctor): Likewise.
20951
20952         * reflection.h (MonoReflectionInflatedMethod): Removed.
20953
20954 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
20955
20956         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
20957         for custom valuetype marshalling.
20958
20959         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
20960
20961 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
20962
20963         * icall.c: fixed WSAGetLastError_internal name.
20964
20965 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
20966
20967         * threads.c (mono_thread_attach): Allow this to be called multiple
20968         times for a thread.
20969         
20970         * threads.c (build_wait_tids): Do not wait for ourselves.
20971
20972         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
20973         appdomain list is empty.
20974
20975         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
20976         memory returned by mono_string_builder_to_utf16, since it points into
20977         managed memory. Thanks to Bernie Solomon for noticing this.
20978
20979         * icall.c: Add AppDomainSetup icalls.
20980
20981         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
20982
20983         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
20984         types.
20985
20986         * reflection.c (reflection_methodbuilder_to_mono_method): Save
20987         custom attributes to the method_aux struct. Also fix array indexes etc.
20988
20989         * loader.c (mono_method_get_param_names): Make dynamic case work again.
20990         
20991 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
20992
20993         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
20994         (both static and runtime) and reduce startup time.
20995
20996 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
20997
20998         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
20999         AsAny marshalling conversion instead of crashing.
21000
21001         * marshal.c: Fix warnings.
21002
21003 2004-02-09  Martin Baulig  <martin@ximian.com>
21004
21005         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
21006
21007         * reflection.h (MonoReflectionInflatedMethod): Removed the
21008         `declaring' field, it's now in the unmanaged MonoGenericMethod.
21009
21010         * reflection.c (method_encode_methodspec): Removed the `method'
21011         argument; we get it from `gmethod->declaring'.
21012         (inflated_method_get_object): Removed the `declaring' argument.
21013
21014 2004-02-09  Martin Baulig  <martin@ximian.com>
21015
21016         * class.h (MonoGenericMethod): New type.
21017         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
21018         `generic_method'.
21019
21020         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
21021         a `MonoGenericMethod *gen_method' one.
21022
21023         * class.c (mono_class_inflate_generic_type): Take an additional
21024         `MonoGenericMethod * argument.  This is only non-NULL if we're
21025         inflating types for a generic method.   
21026         (mono_class_inflate_generic_signature): Renamed to
21027         inflate_generic_signature() and made static; take a
21028         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
21029         (inflate_generic_header): Take a `MonoGenericMethod *' argument
21030         instead of a `MonoGenericInst *' one.
21031         (mono_class_inflate_generic_method): Likewise.
21032
21033         * reflection.c (encode_generic_method_sig): Take a
21034         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
21035         (method_encode_methodspec): Likewise.
21036         (inflated_method_get_object): Likewise. 
21037
21038         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
21039         field with a `MonoGenericMethod *gmethod' one.  
21040
21041 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
21042
21043         * class.h (mono_class_has_parent): add parens to expansion
21044         so you can ! this.
21045
21046 2004-02-08  Martin Baulig  <martin@ximian.com>
21047
21048         * image.h (MonoImage): Removed `generics_cache'.
21049
21050         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
21051         instead of a `MonoType *' argument; removed the `inflate_methods'
21052         argument.  Don't inflate methods here.
21053
21054         * loader.c (find_method): If it's a generic instance, call
21055         mono_class_init() on the `sclass->generic_inst->generic_type'.
21056
21057         * metadata.c (mono_type_size): Make this work on uninitialized
21058         generic instances; call it on the `ginst->generic_type's class.
21059
21060         * reflection.c (mono_reflection_bind_generic_parameters): Call
21061         mono_class_from_generic() to create the `ginst->klass'.
21062
21063 2004-02-08  Martin Baulig  <martin@ximian.com>
21064
21065         * class.h (MonoClass): Changed type of `generic_inst' from
21066         `MonoType *' to `MonoGenericInst *'.
21067
21068 2004-02-08  Martin Baulig  <martin@ximian.com>
21069
21070         * icall.c (ves_icall_Type_BindGenericParameters): Just call
21071         mono_type_get_object(), this is now creating a `MonoGenericInst'
21072         for MONO_TYPE_GENERICINST.
21073         (ves_icall_MonoGenericInst_GetParentType): Likewise.
21074         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
21075
21076         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
21077         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
21078         (inflated_method_get_object): Added `MonoClass *refclass' argument.
21079         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
21080         and reflected type.
21081
21082         * reflection.h (MonoReflectionInflatedMethod): Removed
21083         `declaring_type' and `reflected_type'.
21084
21085 2004-02-08  Martin Baulig  <martin@ximian.com>
21086
21087         * class.h (MonoGenericInst): Added `MonoType *parent' and
21088         `MonoType **ifaces'.
21089
21090         * reflection.h (MonoReflectionGenericInst): Removed `klass',
21091         `parent' and `interfaces'.
21092
21093         * reflection.c (mono_reflection_bind_generic_parameters): Take a
21094         `MonoType *' argument and return a `MonoType *'.
21095
21096         * icall.c
21097         (ves_icall_MonoGenericInst_GetParentType): New interncall.
21098         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
21099
21100 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
21101
21102         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
21103         valuetype marshalling.
21104
21105 2004-02-06  Martin Baulig  <martin@ximian.com>
21106
21107         * class.c
21108         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
21109         (my_mono_class_from_generic_parameter): Likewise.
21110
21111 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
21112
21113         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
21114         contents of the symbol files lazily.
21115
21116         * object.h (MonoThread): Add 'name' and 'name_len' fields.
21117
21118         * threads.h threads.c icall.c: New icalls for getting and setting the
21119         threads name.
21120
21121 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
21122
21123         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
21124         Raise an exception when the domain is not found.
21125
21126 2004-02-03  Martin Baulig  <martin@ximian.com>
21127
21128         * reflection.c (mono_image_get_methodspec_token): Use the
21129         uninflated signature; fixes gen-33.
21130
21131 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
21132
21133         * gc.c threads.c: Make the finalizer thread a normal managed thread so
21134         the finalizer code can use thread functionality.
21135
21136         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
21137         the finalizer thread.
21138
21139         * threads.c: Make some functions more robust.
21140
21141         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
21142
21143         * metadata.h: Add new marshalling conventions.
21144
21145         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
21146         stringbuilder marshalling. Fixes #53700.
21147
21148         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
21149
21150         * reflection.c (mono_image_get_type_info): Save declarative security
21151         info.
21152
21153         * reflection.c (mono_image_get_field_info): Handle uninitialized 
21154         unmanaged fields as well.
21155
21156         * appdomain.c: Bump corlib version.
21157
21158 2004-02-01  Martin Baulig  <martin@ximian.com>
21159
21160         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
21161         method type arguments.  
21162
21163 2004-01-30  Duncan Mak  <duncan@ximian.com>
21164
21165         * marshal.h: Add prototype for
21166         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
21167         and
21168         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
21169         fix the build.
21170
21171 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
21172
21173         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
21174         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
21175
21176 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
21177
21178         * marshal.c (mono_marshal_get_native_wrapper): Add support for
21179         custom marshalling of valuetypes.
21180
21181         * marshal.c: Fix some warnings.
21182
21183 2004-01-29  Martin Baulig  <martin@ximian.com>
21184
21185         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
21186         for generic method parameters.
21187
21188         * reflection.c (method_encode_methodspec): Write the uninflated
21189         signature into the methodspec table.
21190         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
21191         is always the uninflated method.
21192         (reflection_methodbuilder_to_mono_method): Copy the generic
21193         parameters from the MethodBuilder into `header->gen_params'.
21194
21195 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
21196
21197         * class.c (mono_class_from_generic_parameter): Fix warning.
21198
21199 2004-01-27  Martin Baulig  <martin@ximian.com>
21200
21201         * class.c (mono_class_from_generic_parameter): Don't create
21202         `klass->methods' here.  
21203
21204 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
21205
21206         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
21207         extension since it does not work with libraries named lib<FOO>.dll.so.
21208
21209 2004-01-25  Martin Baulig  <martin@ximian.com>
21210
21211         * class.c (mono_class_inflate_generic_type): Added support for
21212         MONO_TYPE_GENERICINST.
21213
21214         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
21215         inflate methods on open constructed types.      
21216
21217 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21218
21219         * object.c: fire ProcessExit event in the root AppDomain after running
21220         Main. Fixes bug #53299.
21221
21222 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
21223
21224         * socket-io.c: include the new socket-wrappers.h header.
21225         Use the wrappers instead of the unix socket functions to make the code
21226         more clear.
21227
21228 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
21229
21230         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
21231
21232         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
21233         Fixes #22532.
21234
21235 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
21236
21237         * reflection.c (mono_image_create_pefile): Handle the case when the
21238         entry point is not a MethodBuilder.
21239
21240         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
21241         field to ReflectionMethod since it is not allways a builder.
21242
21243         * reflection.c (type_get_fully_qualified_name): New helper function to
21244         return the fully qualified name of a type.
21245
21246         * reflection.c (encode_marshal_blob): Always emit the fully qualified
21247         type name for custom marshallers.
21248
21249         * reflection.c (mono_marshal_spec_from_builder): Ditto.
21250
21251         * class.c (mono_class_setup_vtable): If a parent class already 
21252         implements an interface, use the implementing methods from that class.
21253         Fixes #53148.
21254
21255 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21256
21257         * threadpool.c: just return instead of ExitThread to allow for thread
21258         clean up earlier.
21259
21260 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
21261
21262         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
21263         when closing resource modules.
21264
21265         * reflection.c (mono_image_create_pefile): Handle the case when the
21266         entry point is not a MethodBuilder.
21267
21268         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
21269         field to ReflectionMethod since it is not allways a builder.
21270
21271 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
21272
21273         * marshal.c (mono_marshal_get_managed_wrapper): 
21274         mono_marshal_alloc takes native int so CONV_I
21275         the arg for 64bits.
21276
21277 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
21278
21279         * reflection.c (fixup_cattrs): New function to fixup the methoddef
21280         tokens in the cattr table. Fixes #53108.
21281
21282 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21283
21284         * loader.c: don't trim ".dll" before looking up in the config file.
21285         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
21286
21287 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
21288
21289         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
21290         Return the module which contains the resource as well.
21291         (ves_icall_System_Reflection_Module_Close): New icall.
21292
21293         * appdomain.c: Bump corlib version number.
21294
21295         * image.c (mono_image_addref): New public function.
21296
21297         * assembly.c: Call mono_image_addref.
21298
21299         * reflection.c (mono_module_get_object): Increase reference count of 
21300         the image.
21301
21302         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
21303         Fixes #22532.
21304
21305         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
21306         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
21307         proper exceptions on DllImport problems.
21308
21309 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
21310
21311         * class.c, metadata.c: eliminate CSIZE macro.
21312
21313 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
21314
21315         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
21316         * object.h: Added async_callback field in MonoAsyncResult.
21317         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
21318         * verify.c: Added async_callback in MonoAsyncResult layout.
21319
21320 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
21321
21322         * reflection.c (mono_reflection_get_custom_attrs): Add support
21323         for Modules.
21324
21325 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
21326
21327         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
21328         marshalling.
21329         (mono_marshal_method_from_wrapper): Add null pointer check.
21330
21331 2004-01-16  Martin Baulig  <martin@ximian.com>
21332
21333         * debug-mono-symfile.h: Set version number to 36 and reflect
21334         latest symbol writer changes.
21335
21336 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
21337
21338         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
21339         multi-dimensional arrays.
21340         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
21341         (mono_class_from_mono_type): Use bounded_array_class_get.
21342         
21343         * class.c (mono_bounded_array_class_get): New function which takes
21344         a 'bounded' bool argument to distinguish vectors from one dimensional
21345         arrays.
21346
21347         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
21348         bounded_array_class_get if the array has bounds.
21349
21350         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
21351         Search modules loaded using AssemblyBuilder:AddModule as well.
21352
21353 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21354
21355         * appdomain.c: increased corlib version.
21356         * filewatcher.c: removed g_print.
21357         * icall.c:
21358         (get_property_info): only allocate what is actually requested.
21359         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
21360
21361 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21362
21363         * Makefile.am: added filewatcher.[ch]
21364         * filewatcher.[ch]: FileSystemWatcher runtime support.
21365         * icall.c: added new FSW icalls.
21366
21367 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
21368
21369         * string-icalls.c: fix stringbuilder regression as suggested by
21370         Iain McCoy <iain@mccoy.id.au>.
21371
21372 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
21373
21374         * process.c (process_read_stringtable_block): Recognize '007f' as
21375         a language neutral stringtable block.
21376
21377 2004-01-12  Patrik Torstensson
21378
21379         * object.h (MonoStringBuilder) : Changed layout to support our
21380         new stringbuilder class.
21381         * marshal.c: Change marshalling to support the new layout of 
21382         string builder.
21383         * appdomain.c: increased version number because new layout of
21384         string builder.
21385
21386 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
21387
21388         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
21389         assembly name as an string instead of an AssemblyName, since it is
21390         easier to extract info from it.
21391
21392         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
21393         the culture subdirectories too. Fixes #52231.
21394
21395 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21396
21397         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
21398         It takes 2 new parameters with an optional name for the method to look
21399         for and case ignoring info.
21400
21401         * threadpool.c: removed unused variable.
21402
21403 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21404
21405         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
21406         It takes 2 new parameters with an optional name for the property to look
21407         for and case ignoring info.
21408         Fixes bug #52753.
21409
21410 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
21411
21412         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
21413         Fix #52451.
21414
21415 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21416
21417         * appdomain.c:
21418         * assembly.c: escape the uri before passing it to g_filename_from_uri.
21419         Fixes bug #52630.
21420
21421 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
21422
21423         * reflection.c: Add support for more than one unmanaged resource.
21424
21425         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
21426         in field->def_value, as done in all other cases.
21427
21428         * reflection.c (mono_reflection_get_custom_attrs): Add support for
21429         TypeBuilders.
21430
21431         * reflection.c (mono_reflection_create_runtime_class): Remove 
21432         errorneous assignment to klass->element_class, since it is already
21433         done in mono_reflection_setup_internal_class.
21434
21435 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21436
21437         * gc.c: added missing LeaveCriticalSection.
21438         * icall.c: indented a couple of lines.
21439         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
21440         if we call EndInvoke inside a callback. Fixes bug #52601.
21441
21442 2004-01-07  Martin Baulig  <martin@ximian.com>
21443
21444         * mono-debug-debugger.h
21445         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
21446
21447 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
21448
21449         * appdomain.c: Use messages in NotImplementedException.
21450
21451         * exception.c (mono_get_exception_not_implemented): Now this takes
21452         a message argument.
21453
21454         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
21455         exception instead of g_asserting an aborting when something is not
21456         implemented.
21457
21458         Add some inline docs.
21459
21460 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
21461
21462         * reflection.h: Update after changes to object layout.
21463
21464         * reflection.c: Implement saving of unmanaged aka win32 resources.
21465
21466         * appdomain.c: Bump version number.
21467
21468         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
21469         Handle missing domains gracefully.
21470
21471 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
21472
21473         * file-io.c : On Windows, there are much more invalid_path_chars.
21474
21475 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
21476
21477         * class.h, object.c: prepare for GetType () speedup.
21478
21479 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
21480
21481         * profiler.c: workaround for --profile null reference exception on
21482           cygwin. Patch by Patrik Torstensson.
21483
21484 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
21485
21486         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
21487         make work for unaligned access.
21488
21489 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
21490
21491         * class.c: small cleanup (class->fields [i] -> field).
21492         * image.c: check address of metadata is valid.
21493
21494 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
21495
21496         * assembly.h assembly.c (mono_assembly_loaded): New public function to
21497         search the list of loaded assemblies.
21498
21499         * reflection.c (mono_reflection_type_from_name): Use 
21500         mono_assembly_loaded instead of mono_image_loaded.
21501
21502         * reflection.c: Fix warnings.
21503
21504 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
21505
21506         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
21507         is dynamic. This is needed since an assembly can contain both dynamic and
21508         non-dynamic images.
21509
21510         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
21511         assembly->dynamic.
21512
21513         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
21514
21515         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
21516         to store modules loaded using AddModule.
21517
21518         * reflection.c (mono_image_fill_file_table): Generalize this so it works
21519         on Modules.
21520
21521         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
21522
21523         * reflection.c (mono_image_fill_export_table_from_module): New function to
21524         fill out the EXPORTEDTYPES table from a module.
21525
21526         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
21527         into a separate function. Also handle loaded non-dynamic modules.
21528
21529         * reflection.c (mono_image_basic_init): Fix memory allocation.
21530
21531         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
21532
21533         * assembly.c (mono_assembly_load_references): Make this public.
21534
21535 2003-12-19  Martin Baulig  <martin@ximian.com>
21536
21537         * class.c (mono_class_initialize_generic): Made this static, take
21538         a `MonoGenericInst *' instead of a `MonoClass *'.
21539         (mono_class_from_generic): Call mono_class_initialize_generic()
21540         unless we're already initialized or being called from
21541         do_mono_metadata_parse_generic_inst().
21542
21543         * class.h (MonoGenericInst): Added `initialized' and
21544         `init_pending' flags.
21545
21546         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
21547         `mono_class_init (gklass)' or mono_class_initialize_generic()
21548         here; set `generic_inst->init_pending' while parsing the
21549         `type_argv'.
21550
21551 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
21552
21553         * locales.c: include string.h for memxxx prototypes
21554
21555 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
21556
21557         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
21558         constructor when accessing literal fields.
21559
21560 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
21561
21562         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
21563
21564         * reflection.c (assembly_add_resource_manifest): New function to fill
21565         the MANIFESTRESOURCE table.
21566
21567         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
21568
21569         * reflection.h: Update to changes in class layout.
21570
21571         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
21572         Reenable call to mono_runtime_is_shutting_down ().
21573
21574         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
21575         determine if the runtime is shutting down.
21576
21577 2003-12-16  Jackson Harper <jackson@ximian.com>
21578
21579         * icall.c: comment out call to mono_runtime_is_shutting_down to
21580         fix build.
21581         
21582 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
21583
21584         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
21585         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
21586
21587 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
21588
21589         * reflection.c: move definition of swap_with_size
21590         to before its first call
21591
21592 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
21593
21594         * appdomain.c (mono_runtime_is_shutting_down): New public function.
21595
21596         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
21597         icall.
21598
21599         * object.c: Fix warnings.
21600
21601         * icall.c (ves_icall_Type_Get...): Only consider inherited static
21602         members if FlattenHierarchy is set.
21603
21604         * reflection.c (mono_image_add_decl_security): New function to emit
21605         declarative security.
21606
21607         * reflection.h reflection.c: Add support for declarative security.
21608
21609         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
21610         
21611 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
21612
21613         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
21614         
21615         * appdomain.c verify.c: Moved corlib version checking into its own
21616         function in appdomain.c since it needs to create vtables etc.
21617
21618 2003-12-13  Patrik Torstensson <p@rxc.se>
21619
21620         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
21621         instead of unwrapped server.
21622
21623 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
21624
21625         * verify.c (check_corlib): Fix field index.
21626
21627 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
21628
21629         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
21630         GetGacPath icall.
21631
21632 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
21633
21634         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
21635         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
21636         cope with sizeof(size_t) != sizeof(guint32).
21637
21638 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21639
21640         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
21641         in case of failure.
21642
21643 2003-12-10  Mark Crichton <crichton@gimp.org>
21644
21645         * icall.c: removed the GetNonZeroBytes.  We now handle this case
21646         in managed code.
21647
21648         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
21649
21650 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
21651
21652         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
21653         marked as deleted.
21654
21655 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
21656
21657         * verify.c (check_corlib): Handle the case when the version field is 
21658         initialized by a static constructor.
21659
21660 2003-12-08  Patrik Torstensson  <p@rxc.se>
21661
21662     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
21663
21664 2003-12-08  Martin Baulig  <martin@ximian.com>
21665
21666         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
21667         a MonoReflectionGenericParameter, also take the parameter index
21668         and name as arguments.
21669         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
21670         (ves_icall_MonoGenericParam_initialize): New interncall.
21671         (ves_icall_Type_make_byref_type): New interncall.
21672
21673         * reflection.h (MonoReflectionGenericParam): Derive from
21674         MonoReflectionType, not just from MonoObject.  Added `refobj' and
21675         `index' fields.
21676
21677         * reflection.c (mono_reflection_define_generic_parameter): Create
21678         and return a new MonoReflectionGenericParam; don't initialize the
21679         constraints here.
21680         (mono_reflection_initialize_generic_parameter): New public method;
21681         initializes the constraints and creates the `param->pklass'.
21682
21683 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
21684
21685         * reflection.h reflection.c: Use the new fields 'num_types', 
21686         'num_fields' and 'num_methods' to track the number of types etc.
21687
21688         * verify.c (check_corlib): Check corlib version number.
21689
21690 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
21691
21692         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
21693         function works on all methods.
21694
21695 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
21696
21697         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
21698         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
21699         the custom_type_info flag of the transparent proxy.
21700         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
21701         objects that supports IRemotingTypeInfo.
21702         * object.h: Added custom_type_info field in transparent proxy.
21703
21704 2003-12-06  Martin Baulig  <martin@ximian.com>
21705
21706         * class.c (mono_class_create_from_generic): Removed.
21707         (mono_class_from_generic): Check `ginst->klass' before doing
21708         anything else.  This is important to fully support "recursive"
21709         generic types.
21710
21711         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
21712         empty `generic_inst->klass' before doing anything else.
21713
21714 2003-12-06  Dick Porter  <dick@ximian.com>
21715
21716         * verify.c: 
21717         * object.h:
21718         * icall.c:
21719         * locales.c: Use C structs to access class fields.  Don't do a
21720         conversion between MonoString and UChar because both are
21721         platform-endian UTF-16.  Compare now takes startindex and count
21722         parameters.  Add a char overload for IndexOf.  Speed up the
21723         invariant string IndexOf.
21724
21725 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
21726
21727         * Makefile.am (monosn_LDADD): Fix parallel build.
21728
21729 2003-12-04  Martin Baulig  <martin@ximian.com>
21730
21731         * icall.c
21732         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
21733         (ves_icall_Type_make_array_type): New interncall.       
21734
21735 2003-12-04  Martin Baulig  <martin@ximian.com>
21736
21737         * locales.c: also change it in the !HAVE_ICU case.
21738
21739 2003-12-04  Dick Porter  <dick@ximian.com>
21740
21741         * icall.c:
21742         * locales.c: construct_compareinfo is now in CompareInfo, not
21743         CultureInfo.
21744
21745 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
21746
21747         * image.c (mono_image_load_file_for_image): Cache loaded images in the
21748         image->files array.
21749
21750         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
21751         table as well.
21752
21753         * assembly.c (mono_assembly_load_references): Only load references
21754         once.
21755
21756         * class.c (mono_class_from_name): Avoid linear search of the 
21757         EXPORTEDTYPE table.
21758
21759         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
21760
21761 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
21762
21763         * image.h (MonoImage): Add 'field_cache' field.
21764
21765         * loader.c (mono_field_from_token): Cache field lookups.
21766         
21767         * reflection.c (mono_module_get_object): Fix name property.
21768
21769         * icall.c (ves_icall_get_enum_info): Update after changes to 
21770         mono_metadata_get_constant_index ().
21771
21772         * icall.c: Get rid of get_type_info icall, use a separate icall for
21773         each type property to avoid needless memory allocations. Fixes #51514.
21774
21775         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
21776         to avoid needless binary searches.
21777
21778         * class.c (class_compute_field_layout): Move the initialization of
21779         field->def_value to mono_class_vtable ().
21780
21781         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
21782         non-corlib types.
21783
21784         * object.c (mono_object_allocate): Make it inline.
21785
21786         * object.c (mono_object_allocate_spec): Make it inline.
21787         
21788 2003-12-02  Dick Porter  <dick@ximian.com>
21789
21790         * locales.c (create_NumberFormat): NumberFormatInfo construction.
21791         Patch by Mohammad DAMT (mdamt@cdl2000.com).
21792
21793 2003-12-01  Dick Porter  <dick@ximian.com>
21794
21795         * threads.c: Fix signature and call in CreateMutex and
21796         CreateEvent.
21797
21798 2003-12-01  Dick Porter  <dick@ximian.com>
21799
21800         * icall.c: 
21801         * locales.c: Implement string compares and searching
21802
21803         * object.h: Add extra Thread field
21804
21805 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
21806
21807         * reflection.c (fixup_method): Add support for MonoCMethod.
21808
21809 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
21810
21811         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
21812
21813         * reflection.c (assembly_name_to_aname): Allow extra characters in
21814         assembly names. Fixes #51468.
21815
21816 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
21817
21818         * exception.c (mono_exception_from_name_domain): New helper function.
21819
21820         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
21821         exception object in the correct domain.
21822
21823         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
21824         formatting + make a copy a the input data.
21825
21826         * loader.c (mono_get_method_from_token): Methods which contain
21827         native code do not have entries in the ImplMap.
21828
21829         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
21830         Thanks to Gonzalo for spotting this.
21831         
21832         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
21833         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
21834
21835         * assembly.h (mono_assembly_load_from): Split the second part of 
21836         assembly loading into a new public function.
21837
21838         * exception.h (mono_get_exception_bad_image_format): New function.
21839
21840 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
21841
21842         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
21843         Enumerate all modules inside a dynamic assembly. Fixes #51293.
21844         
21845         * icall.c: Add new icall for creating dynamic methods.
21846
21847         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
21848
21849         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
21850
21851         * reflection.c (mono_reflection_create_dynamic_method): New icall to
21852         create a dynamic method.
21853
21854         * reflection.c (resolve_object): New helper function.
21855
21856         * reflection.c: Generalize ReflectionMethodBuilder and the functions
21857         which manipulate it so they can also work on dynamic methods.
21858
21859         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
21860         creating the MonoReflectionMethodAux structure if it is not needed.
21861         
21862         * reflection.h verify.c: Update after changes to object layout.
21863
21864         * reflection.c (method_builder_encode_signature): Fix compilation on
21865         gcc 2.95.x.
21866
21867 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
21868
21869         * appdomain.h: Added support for context static fields. Added static_data
21870           field to MonoAppContext and renamed thread_static_fields to a more
21871           generic special_static_fields in MonoAppDomain, since it can now contain
21872           context static fields.
21873         * domain.c: Updated hashtable name.
21874         * object.c: Replaced field_is_thread_static() for a more generic
21875           field_is_special_static() which also checks for context static attribute.
21876           In mono_class_vtable(), added support for static context fields.
21877         * threads.c: Changed methods that manage thread static fields to more
21878           generic methods so they can be reused both for thread and context static
21879           data.
21880         * threads.h: Declared some new methods.
21881
21882 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
21883
21884         * reflection.h: Update after changes to the managed types.
21885
21886         * reflection.c (encode_custom_modifiers): New helper function.
21887
21888         * reflection.c (method_encode_signature): Emit custom modifiers.
21889
21890         * reflection.c (field_encode_signature): Emit custom modifiers.
21891
21892 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
21893
21894         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
21895
21896         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
21897         implementation.
21898
21899         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
21900         icall.
21901
21902         * object.c (mono_field_get_value_object): New function.
21903
21904         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
21905         specific.
21906
21907 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
21908
21909         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
21910         return a preallocated out-of-memory exception instance.
21911
21912         * object.c (out_of_memory): Use the new function.
21913
21914         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
21915         flag is before the custom modifiers. Fixes #49802.
21916
21917 2003-11-16  Martin Baulig  <martin@ximian.com>
21918
21919         * class.c (mono_class_is_open_constructed_type): Implemented the
21920         MONO_TYPE_GENERICINST case.
21921
21922 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
21923
21924         * assembly.c (mono_assembly_fill_assembly_name): New function to
21925         fill out the MonoAssemblyName structure.
21926         (mono_assembly_open): Use the new function.
21927
21928         * icall.c (fill_reflection_assembly_name): New helper function.
21929
21930         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
21931         new function.
21932
21933         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
21934
21935 2003-11-15  Martin Baulig  <martin@ximian.com>
21936
21937         * class.c (mono_class_is_open_constructed_type): New public
21938         function; checks whether a type is an open constructed type,
21939         ie. whether it still contains type parameters.
21940         (mono_class_inflate_generic_type): If we're a type parameter and
21941         the inflated type is also a MONO_TYPE_(M)VAR, return the original
21942         type.
21943
21944         * class.h (MonoGenericInst): Added `guint32 is_open'.
21945
21946         * loader.c (method_from_methodspec): Check whether we're an open
21947         or closed constructed type and set `ginst->is_open'.
21948
21949         * reflection.c (mono_reflection_bind_generic_parameters): Check
21950         whether we're an open or closed constructed type and set
21951         `ginst->is_open'.
21952         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
21953         from open constructed types.
21954
21955 2003-11-15  Martin Baulig  <martin@ximian.com>
21956
21957         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21958         a generic instance (instead of a generic type declaration) with
21959         unbound generic parameters, bind them to our actual types.
21960
21961 2003-11-14  Martin Baulig  <martin@ximian.com>
21962
21963         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
21964
21965         * reflection.c (mono_reflection_bind_generic_parameters): If we're
21966         an interface type, populate `res->interfaces' with instantiated
21967         versions of all the interfaces we inherit.
21968
21969 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
21970
21971         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
21972         when MONO_PATH is set but doesn't contain the install dir.
21973
21974 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
21975
21976         * icall.c:
21977         (ves_icall_Type_GetInterfaces): don't return an interface twice when
21978         it's also implemented in base classes. Fixes bug #50927.
21979
21980 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
21981
21982         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
21983         if this method is called from a finalizer. Fixes #50913.
21984
21985 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
21986
21987         * threads.c: Implement VolatileRead/VolatileWrite
21988
21989         * icall.c: Add new icalls for VolatileRead/VolatileWrite
21990
21991 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
21992
21993         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
21994         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
21995         2.95.3.
21996
21997         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
21998         from Peter Ross (pro@missioncriticalit.com).
21999         
22000 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
22001
22002         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
22003
22004 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
22005
22006         * assembly.c (mono_assembly_load_references): Disable check because it
22007         triggers on older corlibs which lots of people have.
22008
22009 2003-11-12  Jackson Harper  <jackson@ximian.com>
22010
22011         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
22012         load corlib.dll if mscorlib.dll is not found.
22013         * assembly.h: Remove corlib name define.
22014         * class.c:
22015         * domain.c:
22016         * image.c: Change corlib name to mscorlib.
22017         
22018 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
22019
22020         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
22021
22022 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
22023
22024         * appdomain.h: Added loader_optimization here to sync with the C#
22025         code, and add disallow_binding_redirects field.
22026
22027 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
22028
22029         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
22030
22031         * reflection.c (mono_image_build_metadata): Fix crash on modules
22032         with no types.
22033
22034         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
22035
22036         * icall.c (ves_icall_get_method_info): Return callingConvention as
22037         well.
22038
22039         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
22040         namespaces from the EXPORTEDTYPE table as well.
22041
22042         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
22043         from all modules inside the assembly.
22044         
22045 2003-11-11  Martin Baulig  <martin@ximian.com>
22046
22047         * reflection.c (mono_reflection_bind_generic_parameters): Make
22048         this work for interfaces.
22049
22050 2003-11-11  Martin Baulig  <martin@ximian.com>
22051
22052         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
22053
22054 2003-11-11  Martin Baulig  <martin@ximian.com>
22055
22056         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
22057         "MonoInflatedMethod" and "MonoInflatedCtor".
22058
22059 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
22060
22061         * reflection.c (resolution_scope_from_image): Use the assembly table
22062         from the manifest module, since other modules don't have it.
22063
22064         * debug-helpers.c (mono_type_full_name): New helper function.
22065
22066         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
22067
22068         * image.c (mono_image_load_file_for_image): New public function which
22069         is a replacement for the load_file_for_image in class.c.
22070
22071         * assembly.c (mono_assembly_load_module): A wrapper for the function
22072         above which does assembly association and reference loading too.
22073
22074         * class.c (mono_class_from_name): Call mono_assembly_load_module.
22075
22076 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22077
22078         * appdomain.c: not all of the attributes for the full assembly name
22079         are required and the order doesn't matter. Fixes bug #50787.
22080
22081 2003-11-10  Dick Porter  <dick@ximian.com>
22082
22083         * locales.c: Use platform-endian UTF16
22084
22085 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
22086
22087         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
22088         
22089 2003-11-10  Martin Baulig  <martin@ximian.com>
22090
22091         * metadata.c
22092         (mono_metadata_load_generic_params): Make this actually work.
22093
22094         * reflection.c (mono_reflection_bind_generic_parameters): If our
22095         parent is a generic instance, pass all the `types' to it, no
22096         matter whether it has the same number of type parameters or not.
22097
22098 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
22099
22100         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
22101
22102         * assembly.c (mono_assembly_load_references): Move the image<->assembly
22103         assignment code to this function so it gets called recursively for all
22104         modules.
22105
22106         * image.c (load_modules): Remove the assembly assignment since it is
22107         now done by mono_assembly_load_references.
22108         
22109         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
22110         Add 'module' argument.
22111         (mono_module_get_types): New helper function.
22112         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
22113
22114 2003-11-08  Martin Baulig  <martin@ximian.com>
22115
22116         * class.c (mono_class_inflate_generic_method): Interface method
22117         don't have a header.
22118
22119         * reflection.c (mono_image_get_methodspec_token): Take an
22120         additional `MonoGenericInst *' argument instead of reading it from
22121         the header; this is necessary to support interfaces.
22122         (mono_image_create_token): Pass the `MonoGenericInst *' from the
22123         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
22124         (inflated_method_get_object): Take an additional `MonoGenericInst *'
22125         argument.
22126
22127         * reflection.h (MonoReflectionInflatedMethod): Added
22128         `MonoGenericInst *ginst'.
22129
22130 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
22131
22132         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
22133
22134 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
22135
22136         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
22137
22138 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
22139
22140         * reflection.c 
22141         (reflection_methodbuilder_from_method_builder):
22142         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
22143         initialize a ReflectionMethodBuilder structure.
22144         (mono_image_get_methodbuilder_token):
22145         (mono_image_get_ctorbuilder_token): New functions to emit memberref
22146         tokens which point to types in another module inside the same assembly.
22147
22148         * reflection.c: Use the new helper functions.
22149         
22150         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
22151
22152         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
22153         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
22154
22155         * reflection.c (resolution_scope_from_image): Emit a moduleref if
22156         neccesary.
22157
22158         * reflection.c (mono_image_build_metadata): Emit metadata only for the
22159         current module. Emit the manifest only for the main module.
22160
22161         * reflection.c (mono_image_create_token): Add assertion when a 
22162         memberref needs to be created.
22163
22164         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
22165
22166         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
22167         larger buffer for the custom attribute blob. Fixes #50637.
22168         
22169 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22170
22171         * threadpool.c: notify listener on async processing handles after
22172         invoking the async callback. Thanks to Zoltan.
22173
22174 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
22175
22176         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
22177         avoid code duplication.
22178
22179         * reflection.h (MonoDynamicImage): New type which is currently unused,
22180         but will be used through the ref.emit code in place of 
22181         MonoDynamicAssembly.
22182
22183         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
22184         object layout.
22185
22186         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
22187         a MonoDynamicImage instead of just a MonoImage.
22188         
22189         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
22190         icalls to ModuleBuilder but keep their semantics, so they will work
22191         with moduleb->assemblyb. This will change later.
22192         
22193 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
22194
22195         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
22196         object layout.
22197
22198         * reflection.c (mono_image_build_metadata): Avoid creation of a default
22199         main module, since it is now done by the managed code.
22200
22201 2003-11-03  Martin Baulig  <martin@ximian.com>
22202
22203         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
22204         `ginst->klass' here.
22205         (method_encode_methodspec): Don't use the `ginst->generic_method's
22206         klass if it's a generic instance, use `ginst->klass' in this case.
22207
22208 2003-11-03  Martin Baulig  <martin@ximian.com>
22209
22210         * reflection.c (mono_image_get_generic_method_param_info):
22211         Removed, use mono_image_get_generic_param_info() instead.
22212         (mono_image_get_type_info): Write the GenericParam table before
22213         the Method table.  This is neccessary because in the GenericParam
22214         table, type parameters of the class (ie. '!0' etc.) must come
22215         before the ones from its generic methods (ie. '!!0' etc).
22216
22217 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
22218
22219         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
22220
22221 2003-11-02  Martin Baulig  <martin@ximian.com>
22222
22223         * reflection.c (create_generic_typespec): Take a
22224         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
22225         the generic parameters from it.
22226
22227 2003-11-02  Martin Baulig  <martin@ximian.com>
22228
22229         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
22230         instead of a `MonoClassField *' since we just need the type.
22231         (create_generic_typespec): New static function.  Creates a
22232         TypeSpec token for a generic type declaration.
22233         (mono_image_get_generic_field_token): New static function.
22234         (mono_image_create_token): If we're a FieldBuilder in a generic
22235         type declaration, call mono_image_get_generic_field_token() to get
22236         the token.
22237
22238 2003-11-02  Martin Baulig  <martin@ximian.com>
22239
22240         * reflection.h
22241         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
22242         `MonoReflectionGenericInst *declaring_type' and
22243         `MonoReflectionGenericInst *reflected_type' fields.
22244
22245         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
22246         `MonoReflectionGenericInst *declaring_type' and a
22247         `MonoReflectionGenericInst *reflected_type' argument instead of a
22248         single `MonoReflectionGenericInst *type' one.  Set
22249         `res->declaring_type' and `res->reflected_type' from them.
22250         (mono_reflection_inflate_field): Likewise.      
22251
22252 2003-11-02  Martin Baulig  <martin@ximian.com>
22253
22254         * class.c (mono_class_setup_vtable): Don't store generic methods
22255         in the vtable.  
22256
22257 2003-11-02  Martin Baulig  <martin@ximian.com>
22258
22259         * reflection.h (MonoReflectionGenericInst): Added
22260         `MonoReflectionType *declaring_type'.
22261
22262         * reflection.c (mono_reflection_bind_generic_parameters): Use
22263         `if (tb->parent)' instead of `klass->parent'.
22264
22265 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
22266
22267         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
22268         with an empty ASSEMBLY table.
22269
22270         * reflection.c (mono_image_build_metadata): Avoid using the same loop
22271         variable in the inner and outer loops.
22272
22273 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
22274
22275         * metadata.h (mono_metadata_make_token): Put parentheses around macro
22276         argument.
22277
22278         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
22279         
22280         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
22281         icalls. Instead, do everything in managed code. This is needed since
22282         it is hard to restore the original domain etc. in unmanaged code in the
22283         presence of undeniable exceptions.
22284
22285         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
22286         New icalls to push and pop appdomain refs.
22287
22288 2003-10-31  Martin Baulig  <martin@ximian.com>
22289
22290         * class.c (inflate_generic_type): Renamed to
22291         mono_class_inflate_generic_type() and made it public.
22292
22293         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
22294         New interncall.
22295
22296         * loader.c (mono_field_from_memberref): Also set the retklass for
22297         typespecs.
22298
22299         * fielder.c (mono_image_get_inflated_field_token): New static
22300         method; creates a metadata token for an inflated field.
22301         (mono_image_create_token, fixup_method): Added support for
22302         "MonoInflatedField".
22303         (fieldbuilder_to_mono_class_field): New static function.
22304         (mono_reflection_inflate_field): New public function.
22305
22306         * reflection.h
22307         (MonoReflectionGenericInst): Added `MonoArray *fields'.
22308         (MonoReflectionInflatedField): New typedef.     
22309
22310 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
22311
22312         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
22313         for Solaris and other platforms without s6_addr16
22314
22315 2003-10-30  Martin Baulig  <martin@ximian.com>
22316
22317         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
22318         argument instead of two.
22319         (mono_class_inflate_generic_signature): Likewise.
22320         (inflate_generic_header): Likewise.
22321         (mono_class_inflate_generic_method): Likewise.  In addition, if
22322         `ginst->klass' is set, it becomes the new `method->klass'.
22323
22324         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
22325         field.
22326
22327         * reflection.c (encode_generic_method_sig): Write a 0xa as the
22328         first byte. [FIXME]
22329         (method_encode_methodspec): If we have generic parameters, create
22330         a MethodSpec instead of a MethodRef.
22331         (fixup_method): Added support for "MonoInflatedMethod" and
22332         "MonoInflatedCtor".
22333         (mono_image_create_token): Added support for "MonoInflatedMethod"
22334         and "MonoInflatedCtor".
22335         (inflated_method_get_object): New static function; returns a
22336         managed "System.Reflection.MonoInflatedMethod" object.
22337         (mono_reflection_bind_generic_method_parameters): Return a
22338         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
22339         (mono_reflection_inflate_method_or_ctor): Likewise.
22340         (mono_image_get_generic_method_param_info): Initialize unused
22341         fields to zero.
22342         (mono_image_get_generic_param_info): Likewise.
22343
22344         * reflection.h (MonoReflectionInflatedMethod): New public
22345         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
22346         "S.R.MonoInflatedCtor" classes.
22347
22348         * loader.c (method_from_memberref): If we're a TypeSpec and it
22349         resolves to a generic instance, inflate the method.
22350
22351 2003-10-28  Dick Porter  <dick@ximian.com>
22352
22353         * object.c (mono_runtime_run_main): Convert command-line arguments
22354         into utf8, falling back to the user's locale encoding to do so.
22355
22356 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
22357
22358         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
22359         at this time.
22360
22361         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
22362
22363         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
22364         up icalls at method definition time. Partially fixes #33569.
22365
22366 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
22367
22368         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
22369         marshalling of arrays. Fixes #50116.
22370
22371         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
22372
22373         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
22374         points to a vtable in the dying appdomain.
22375
22376         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
22377         listeners into unmanaged code inside the lock.
22378
22379         * object.c (mono_class_vtable): Turn off typed allocation in non-root
22380         domains and add some comments.
22381
22382 2003-10-25  Martin Baulig  <martin@ximian.com>
22383
22384         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
22385
22386         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
22387
22388         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
22389         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
22390         currently parsing.  Create the generic class and store it in
22391         `generic_inst->klass' before parsing the type arguments.  This is
22392         required to support "recursive" definitions; see mcs/tests/gen-23.cs
22393         for an example.
22394         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
22395         to support recursive typespec entries.
22396
22397         * class.c (mono_class_setup_parent): If our parent is a generic
22398         instance, we may get called before it has its name set.
22399         (mono_class_from_generic): Splitted into
22400         mono_class_create_from_generic() and mono_class_initialize_generic().
22401
22402 2003-10-25  Martin Baulig  <martin@ximian.com>
22403
22404         * icall.c (ves_icall_Type_BindGenericParameters): Return a
22405         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
22406         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
22407         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
22408
22409         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
22410         (create_typespec): Likewise.
22411         (mono_reflection_bind_generic_parameters): Return a
22412         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
22413         (mono_reflection_inflate_method_or_ctor): New public function.
22414
22415         * reflection.h (MonoReflectionGenericInst): New typedef.        
22416
22417 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
22418
22419         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
22420         inside the domain lock. Fixes #49993.
22421         
22422         * object.c (mono_class_vtable): When typed allocation is used, 
22423         allocate vtables in the GC heap instead of in the mempool, since the
22424         vtables contain GC descriptors which are used by the collector even
22425         after the domain owning the mempool is unloaded.
22426
22427         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
22428
22429         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
22430         reflect what it does. Also invalidate mempools instead of freeing
22431         them if a define is set.
22432
22433         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
22434         of the appdomain.
22435         
22436         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
22437         hold the finalizable objects in this domain.
22438
22439         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
22440         appdomain.
22441
22442         * appdomain.c (mono_domain_set): New function to set the current
22443         appdomain, but only if it is not being unloaded.
22444
22445         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
22446         appdomain which is being unloaded.
22447         
22448         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
22449         unloading of the root appdomain.
22450
22451         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
22452         icall to execute a method in another appdomain. Intended as a 
22453         replacement for InternalSetDomain, which can confuse the code 
22454         generation in the JIT.
22455
22456         * appdomain.c (mono_domain_is_unloading): New function to determine
22457         whenever an appdomain is unloading.
22458
22459         * appdomain.c (mono_domain_unload): New function to correctly unload
22460         an appdomain.
22461
22462         * assembly.c (mono_assembly_load_references): Check that an assembly
22463         does not references itself.
22464
22465         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
22466         domain manually, it asks the finalizer thread to do it, then waits for
22467         the result. Also added a timeout.
22468
22469         * icall.c: Register the new icalls.
22470
22471         * threads.h threads.c: Export the mono_gc_stop_world and 
22472         mono_gc_start_world functions.
22473         
22474         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
22475         function to fill out the mempool with 0x2a.
22476
22477 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
22478
22479         * reflection.h (MonoReflectionMethodAux): New structure to store
22480         information which is rarely used, thus is not in the MonoMethod
22481         structure.
22482
22483         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
22484         store the aux info.
22485
22486         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
22487         and marshalling info into the aux structure.
22488
22489         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
22490         from the aux structure.
22491
22492         * loader.c (mono_method_get_param_names): Retrieve the param names from
22493         the aux structure.
22494         
22495 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
22496
22497         * exception.h exception.c: Add AppDomainUnloadedException && fix 
22498         warning.
22499
22500 2003-10-21  Dick Porter  <dick@ximian.com>
22501
22502         * socket-io.c
22503         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
22504         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
22505
22506 2003-10-21  Martin Baulig  <martin@ximian.com>
22507
22508         * reflection.c (mono_reflection_bind_generic_parameters):
22509         `klass->parent' is NULL for interfaces.
22510
22511 2003-10-21  Martin Baulig  <martin@ximian.com>
22512
22513         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
22514
22515 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
22516
22517         * exception.c (mono_exception_from_name_msg): New helper function for
22518         creating exceptions and initializing their message field.
22519
22520         * exception.c: Simplify functions using the new helper.
22521
22522         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
22523         New function.
22524
22525         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
22526         mono_raise_exception, since otherwise gcc doesn't generate the function
22527         epilog for raise_exception, confusing the stack unwinding in the JIT.
22528         Fixes #45043.
22529
22530         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
22531         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
22532         Fixes #49499.
22533
22534 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22535
22536         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
22537         utf8.
22538
22539 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
22540
22541         * icall.c: Removed GetUninitializedObject method because
22542           AllocateUninitializedClassInstance does the same.
22543
22544 2003-10-18  Martin Baulig  <martin@ximian.com>
22545
22546         * class.c (inflate_generic_signature): Renamed to
22547         mono_class_inflate_generic_signature() and made it public.
22548         (my_mono_class_from_generic_parameter): New static function; if we
22549         don't already have the generic parameter's MonoClass, create a
22550         very simple one which is just used internally in the runtime and
22551         not passed back to managed code.
22552
22553         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
22554
22555         * metadata.h (MonoMethodSignature): Moved the
22556         `MonoGenericParam *gen_params' to the MonoMethodHeader.
22557         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
22558
22559         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
22560         ves_icall_MonoMethod_GetGenericArguments(); this is now an
22561         interncall on the MonoMethod class, not on MethodInfo.
22562         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
22563         calling mono_reflection_bind_generic_method_parameters() directly.
22564
22565         * loader.c (mono_method_get_signature): If this is a MethodSpec;
22566         return the already computed `method->signature'.
22567         (method_from_methodspec): New static function to load a method
22568         from a MethodSpec entry.
22569         (mono_get_method_from_token): Call the new method_from_methodspec()
22570         for MethodSpec tokens.  
22571         (mono_get_method_from_token): If we're a generic method, load the
22572         type parameters.
22573
22574         * reflection.c (mono_image_get_memberref_token): Allow
22575         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
22576         table.
22577         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
22578         (mono_image_create_token): First check whether it's a generic
22579         method (so we'd need to create a MethodSpec), then do the other
22580         two alternatives.
22581         (mono_reflection_bind_generic_method_parameters): Return a
22582         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
22583         called directly from the interncall.
22584
22585 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
22586
22587         * reflection.c (load_public_key): Move loading of the public key
22588         into managed code.
22589
22590         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
22591
22592         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
22593         fields.
22594
22595         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
22596         culture, hash_alg and public_key. Fixes #49555.
22597
22598 2003-10-17  Martin Baulig  <martin@ximian.com>
22599
22600         * class.h (MonoGenericInst): Moved this declaration here and added
22601         `MonoMethod *generic_method'.
22602
22603         * icall.c
22604         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
22605         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
22606
22607         * metadata.c (mono_metadata_type_equal): Two types of
22608         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
22609         index; ie. don't compare the address of the `MonoGenericParam'
22610         structure.
22611         (mono_metadata_load_generic_params): Removed the `MonoMethod
22612         *method' argument.
22613
22614         * metadata.h (MonoGenericInst): Moved declaration to class.h.
22615         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
22616
22617         * reflection.c (method_encode_signature): Encode the number of
22618         generic parameters.
22619         (encode_generic_method_sig): New static function.
22620         (method_encode_methodspec): New static function; creates an entry
22621         in the MethodSpec table for a generic method.
22622         (mono_image_get_methodspec_token): New static function.
22623         (mono_image_create_token): Call mono_image_get_methodspec_token()
22624         for generic methods.
22625         (mono_reflection_bind_generic_method_parameters): New public
22626         function.  Instantiates a generic method.
22627
22628 2003-10-16  Martin Baulig  <martin@ximian.com>
22629
22630         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
22631         *gen_params' here from MonoMethodHeader.
22632
22633         * metadata.c (mono_metadata_parse_method_signature): If we have
22634         generic parameters, initialize `method->gen_params' and then set
22635         the correct `type->data.generic_param' in all the parameters.
22636
22637 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
22638
22639         * threads.c (mono_threads_get_default_stacksize): New function to 
22640         return the default stacksize.
22641
22642         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
22643         termination of the finalizer thread, since the previous method had
22644         race conditions. Fixes #49628.
22645
22646         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
22647         as for the other managed threads.
22648
22649 2003-10-16  Martin Baulig  <martin@ximian.com>
22650
22651         * class.c (inflate_generic_signature): Copy `generic_param_count'
22652         and `gen_params'.
22653
22654         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
22655         New interncall.
22656
22657         * metadata.c (mono_metadata_parse_method_signature): Actually set
22658         the `method->generic_param_count' here.
22659         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
22660
22661 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
22662
22663         * object.h: Add a new field to TypedRef to simplify the implementation
22664         of the REFANY opcodes in the JIT.
22665
22666         * icall.c: Make use of the new field.
22667
22668         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
22669         dynamically.
22670
22671 2003-10-15  Martin Baulig  <martin@ximian.com>
22672
22673         * class.c (mono_class_from_gen_param): Renamed to
22674         mono_class_from_generic_parameter() and moved most of the
22675         functionality from mono_reflection_define_generic_parameter()
22676         here; ie. we create a "real" class here.
22677         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
22678         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
22679         previously been called.
22680
22681         * class.h (MonoGenericParam): Moved the declaration of this struct
22682         here from metadata.h and added `MonoMethod *method'.
22683
22684         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
22685         interncall.
22686
22687         * loader.c (mono_get_method_from_token): If we have any generic
22688         parameters, call mono_metadata_load_generic_params() to read them
22689         from the MONO_TABLE_GENERICPAR.
22690
22691         * metadata.c (mono_metadata_load_generic_params): Added
22692         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
22693
22694         * metadata.h (MonoMethodSignature): Replaced
22695         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
22696         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
22697
22698         * reflection.c (mono_reflection_define_generic_parameter): Moved
22699         most of the functionality into the new
22700         mono_class_from_generic_parameter(); set the `method' field if
22701         we're a method parameter.       
22702
22703 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
22704
22705         * marshal.c (emit_struct_conv): if native size is 0
22706         emit no code.
22707
22708 2003-10-14  Martin Baulig  <martin@ximian.com>
22709
22710         * icall.c: The generics API has changed in the spec since it was
22711         added to System.Type; these modifications make it match the spec
22712         again.
22713         (ves_icall_Type_GetGenericParameters): Renamed to
22714         `ves_icall_Type_GetGenericArguments'.
22715         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
22716         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
22717         `ves_icall_MonoType_get_HasGenericArguments'.
22718         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
22719         `ves_icall_MonoType_get_IsGenericParameter'.
22720         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
22721         this is no interncall anymore.
22722         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
22723         `ves_icall_TypeBuilder_get_IsGenericParameter'.
22724
22725 2003-10-14  Martin Baulig  <martin@ximian.com>
22726
22727         * reflection.c (mono_reflection_bind_generic_parameters): Also
22728         inflate generic methods if we're reading the class from IL.
22729
22730 2003-10-13  Martin Baulig  <martin@ximian.com>
22731
22732         * reflection.c (mono_reflection_define_generic_parameter): This
22733         method isn't called directly from the icall anymore; take a
22734         `MonoReflectionAssemblyBuilder *' so we can use this for type and
22735         method generic parameters.
22736         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
22737         (method_builder_encode_signature): Encode generic parameters.
22738         (mono_image_get_method_info): Write generic params to the
22739         MONO_TABLE_GENERICPARAM table.
22740
22741         * reflection.h (MonoReflectionMethodBuilder): Added
22742         `MonoArray *generic_params'.
22743
22744         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
22745
22746         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
22747         wrapper for mono_reflection_define_generic_parameter().
22748         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
22749
22750 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
22751
22752         * marshal.h: Add missing function to fix build.
22753
22754         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
22755         the SetLastError pinvoke attribute.
22756
22757         * marshal.c (mono_marshal_set_last_error): New helper function called
22758         by the generated code.
22759         
22760         * marshal.c (mono_mb_emit_branch): New helper function.
22761
22762         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
22763
22764         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
22765         classes as parameters and return values of delegates. Fixes #29256. 
22766
22767 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
22768
22769         * locales.c: use gint32 in non HAVE_ICU case
22770
22771 2003-10-11  Martin Baulig  <martin@ximian.com>
22772
22773         * mono-debug.c (mono_debug_add_method): Added a workaround for
22774         bug #48591.
22775
22776 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
22777
22778         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
22779         delegates passed to native code must use the STDCALL calling 
22780         convention. Fixes #35987.
22781
22782 2003-10-10  Martin Baulig  <martin@ximian.com>
22783
22784         * class.c (inflate_generic_type): If we're inflating for a generic
22785         type instance (and not for a generic method), return
22786         MONO_TYPE_MVAR unchanged.
22787
22788 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22789
22790         * string-icalls.c: Join ignores null strings in the source array.
22791         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
22792         * threads.c: GetAvailableTheads is slightly more accurate.
22793
22794 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
22795
22796         * threads.h threads.c : add mono_threads_set_default_stacksize
22797         and pass default to CreateThread calls.
22798
22799 2003-10-09  Dick Porter  <dick@ximian.com>
22800
22801         * icall.c:
22802         * locales.h:
22803         * locales.c: Internal calls for constructing CultureInfo and
22804         related objects from libicu (if its available.)
22805
22806 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
22807
22808         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
22809
22810 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22811
22812         * threadpool.c: added an argument to async_invoke_thread that is the
22813         item to process, pass the MonoAsyncResult to the thread start function
22814         when creating a new thread. This way we don't need to acquire any lock
22815         when we're creating a new thread. Readded a semaphore for faster
22816         response times (instead of that Sleep i added).
22817
22818 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
22819
22820         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
22821         get daylight change dates better on Windows, fix handling
22822         of platforms without tm_gmtoff.
22823
22824 2003-10-06  Martin Baulig  <martin@ximian.com>
22825
22826         * class.c (inflate_generic_method): Renamed to
22827         mono_class_inflate_generic_method() and made public.
22828         (mono_class_init): Don't inflate the generic methods here.
22829         (mono_class_from_generic): Added `gboolean inflate_methods'
22830         argument.  Inflate the methods here.
22831
22832         * loader.c (mono_method_get_param_names): Ignore instances of
22833         generic types for the moment.
22834
22835         * reflection.c (fixup_method): Added support for inflated methods.
22836         (mono_image_create_token): Use mono_image_get_methodref_token()
22837         for inflated methods.
22838         (mono_custom_attrs_from_param): Ignore instances of generic types
22839         for the moment.
22840         (mono_reflection_bind_generic_parameters): New public function.
22841         Moved all the functionality from
22842         ves_icall_Type_BindGenericParameters() here and added support for
22843         dynamic types.
22844         (mono_reflection_define_generic_parameter): Initialize
22845         `klass->methods' here.
22846
22847         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
22848         functionality into mono_reflection_define_generic_parameter().
22849         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
22850         TypeBuilder, return that TypeBuilder.
22851
22852 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22853
22854         * appdomain.c: removed mono_delegate_semaphore.
22855
22856         * threadpool.c:
22857         (mono_thread_pool_add): moved hash table creation inside and the thread 
22858         creation outside of the critical region.
22859         (mono_thread_pool_finish): removed obsolete code.
22860         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
22861         continue or exit the thread depending on the queue.
22862
22863 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
22864
22865         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
22866         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
22867         handle more bool marshalling options
22868
22869 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
22870
22871         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
22872         arrays of structs. Also add a more descriptive error message when
22873         a structure member is marshalled as LPArray.
22874
22875 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
22876
22877         * marshal.c (mono_marshal_get_native_wrapper): Add support for
22878         marshalling arrays of complex types. Fixes #29098. Also remove an
22879         usused and incomplete function.
22880
22881 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
22882
22883         * gc.c: report heap_size - free_bytes as total memory allocated
22884         (bug#49362).
22885
22886 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
22887
22888         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
22889         fix timezone handling problems on Windows.
22890         
22891         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
22892         asserts when the year is outside the range handled by ms the functions.
22893
22894         * class.c (setup_interface_offsets): If the class is an interface,
22895         fill out its interface_offsets slot.
22896
22897 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22898
22899         * threadpool.c: mark threadpool threads as background.
22900
22901 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
22902
22903         * decimal.c - define DECINLINE to nothing if not using GCC
22904
22905 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
22906
22907         * assembly.c: More refcount fixes.
22908
22909 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22910
22911         * string-icalls.c: if we're not trimming, return the same string.
22912         When not splitting, don't create a new string.
22913
22914 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22915
22916         * image.c:
22917         (mono_image_open): increment the ref_count inside the critical section.
22918
22919 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
22920
22921         * image.c (mono_image_open): Fix reference counting bug.
22922
22923 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
22924
22925         * marshal.c (mono_marshal_type_size) struct alignment changed for 
22926         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
22927         64bits. Avoid leak in mono_marshal_get_native_wrapper when
22928         mono_lookup_pinvoke_call throws.        
22929
22930 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
22931
22932         * reflection.c (mono_reflection_parse_type): Fix #49114.
22933
22934         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
22935         temporary workaround for cygwin header problem.
22936
22937         * object.c (mono_object_isinst): Synchronize this with the code
22938         generated by the JIT for casts.
22939
22940 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
22941
22942         * reflection.c (encode_type): Fix #38332.
22943
22944 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
22945
22946         * marshal.c (mono_marshal_method_from_wrapper): New function to return
22947         the original method from the wrapper method.
22948
22949 2003-09-25  Martin Baulig  <martin@ximian.com>
22950
22951         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
22952         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
22953         (ves_icall_Type_get_IsGenericInstance): New interncall.
22954
22955 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
22956
22957         * object.c: fix cast warning in big endian code.
22958
22959 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
22960
22961         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
22962         
22963 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
22964
22965         * assembly.c: don't call check_env from mono_assembly_load. It's
22966         already done once in mono_assemblies_init and may cause headaches when
22967         multiple threads are loading assemblies.
22968
22969 2003-09-19  Martin Baulig  <martin@ximian.com>
22970
22971         * reflection.c (mono_reflection_define_generic_parameter): Don't
22972         allocate `klass->methods', set `klass->flags' to
22973         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
22974
22975 2003-09-18  Martin Baulig  <martin@ximian.com>
22976
22977         * class.c (mono_class_init): Don't create `class->methods' if it's
22978         already initialized.
22979
22980         * metadata.c (mono_metadata_load_generic_params): Make this
22981         actually work.
22982
22983         * reflection.c (mono_reflection_define_generic_parameter): Set
22984         parent class and interfaces from the constraints.
22985
22986         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
22987         to keep this struct in sync with the declaration in TypeBuilder.cs.
22988
22989 2003-09-17  Martin Baulig  <martin@ximian.com>
22990
22991         * metadata.h (MonoType): Replaced the data's `int type_param'
22992         field with `MonoGenericParam *generic_param'.
22993         (MonoGenericParam): Added `MonoClass *klass'.
22994
22995         * class.c (mono_class_from_gen_param): Removed the
22996         `MonoImage *image' and `int type_num' arguments.
22997
22998         * metadata.c (mono_metadata_parse_generic_param): New static
22999         method; creates a MonoGenericParam which just contains the index.
23000         (do_mono_metadata_parse_type): Call
23001         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
23002         MONO_TYPE_MVAR.
23003
23004         * reflection.c (mono_image_typedef_or_ref): Generic type
23005         parameters may be in the same assembly, but never use a typedef
23006         for them.
23007         (mono_reflection_define_generic_parameter): We're now creating a
23008         "real" class for the type parameter; it's now safe to call
23009         mono_class_from_mono_type() on the class'es type, it'll do the
23010         right thing.
23011
23012 2003-09-16  Martin Baulig  <martin@ximian.com>
23013
23014         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
23015         `symfile->range_entry_size' and `symfile->class_entry_size' here;
23016         the `symfile' data structure must be fully initialized before it
23017         gets added to the table.
23018
23019 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
23020
23021         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
23022
23023         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
23024         class init trampolines.
23025
23026 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
23027
23028         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
23029         to the built-in profiler to turn off time and allocation profiling
23030         respectively.
23031
23032 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
23033
23034         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
23035         g_direct_equal.
23036
23037         * debug-helpers.c (mono_method_full_name): Print the wrapper type
23038         in human readable form.
23039
23040 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
23041
23042         * reflection.c icall.c: Fixed warnings.
23043
23044         * image.c (load_class_names): Use a temporary hash table to hold the
23045         namespaces in order to avoid doing many string comparisons.
23046
23047         * image.h: Fix typo.
23048
23049         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
23050         Pass NULL instead of g_direct_equal to the GHashTable constructor 
23051         since the NULL case is short-circuited inside g_hash_table_lookup, 
23052         leading to better performance.  
23053
23054         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
23055         obtain the first custom attribute for a given index. Depends on the
23056         CustomAttribute table being sorted by the parent field.
23057
23058         * reflection.c (mono_custom_attrs_from_index): Use the new function 
23059         for better performance.
23060
23061 2003-09-07  Martin Baulig  <martin@ximian.com>
23062
23063         * class.c (mono_class_init): If we're a generic instance, inflate
23064         all our methods instead of loading them from the image.
23065         (mono_class_from_generic): Set `class->methods = gklass->methods'.
23066
23067 2003-09-07  Martin Baulig  <martin@ximian.com>
23068
23069         * mono-debug-debugger.c: Added support for constructors.
23070
23071 2003-09-06  Martin Baulig  <martin@ximian.com>
23072
23073         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
23074         New interncall.
23075
23076         * reflection.c (mono_reflection_setup_generic_class): Call
23077         ensure_runtime_vtable() to create the vtable.
23078
23079 2003-09-05  Martin Baulig  <martin@ximian.com>
23080
23081         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
23082         MONO_TYPE_MVAR.
23083
23084 2003-09-04  Martin Baulig  <martin@ximian.com>
23085
23086         * reflection.c (mono_reflection_define_generic_parameter): Generic
23087         parameters start with zero.
23088
23089 2003-09-04  Martin Baulig  <martin@ximian.com>
23090
23091         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
23092
23093         * reflection.h (MonoReflectionGenericParam): New typedef.
23094         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
23095         the generic parameters from the managed TypeBuilder.
23096
23097         * reflection.c (mono_reflection_define_generic_parameter): New function.
23098         (mono_reflection_create_runtime_class): Encode generic parameters.
23099         (mono_reflection_setup_generic_class): New function; this is
23100         called after adding adding all generic params to the TypeBuilder.
23101         (encode_type): Added MONO_TYPE_VAR.
23102
23103 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
23104
23105         * class.h class.c (mono_class_needs_cctor_run): Moved this method
23106         here from the JIT.
23107
23108         * assembly.h assembly.c: Moved the AOT loading code into an assembly
23109         load hook.
23110
23111 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
23112
23113         * reflection.h reflection.c class.h class.c: Delete duplicate 
23114         definition of mono_type_get_name () from reflection.c and export the
23115         one in class.c.
23116
23117         * class.c: Class loading fixes from Bernie Solomon 
23118         (bernard@ugsolutions.com).
23119
23120         * reflection.c: Endianness fixes from Bernie Solomon 
23121         (bernard@ugsolutions.com).
23122         
23123 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
23124
23125         * assembly.h assembly.c: Define a file format version for AOT
23126         libraries.
23127         
23128         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
23129
23130         * appdomain.h (MonoJitInfo): New field to determine whenever the
23131         code is domain neutral.
23132         
23133 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
23134
23135         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
23136
23137 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
23138
23139         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
23140         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
23141         Avoid caching the result since strings must be domain specific. Fixes
23142         #48050.
23143
23144 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
23145
23146         * marshal.c (mono_marshal_init): Make this callable multiple times
23147         since it is hard to find a correct place to call it.
23148
23149         * object.c (mono_runtime_class_init): Execute static constructors in
23150         the correct appdomain.
23151
23152         * image.c (build_guid_table): Handle the case when multiple images have
23153         the same GUID.
23154
23155 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23156
23157         * icall.c: added a couple of icalls for System.Web.
23158
23159 2003-08-28  Martin Baulig  <martin@ximian.com>
23160
23161         * icall.c (ves_icall_Type_BindGenericParameters): Use
23162         `klass->generic_inst' instead of `&klass->byval_arg' in the
23163         mono_type_get_object() call.  The returned type must be
23164         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
23165
23166 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
23167
23168         * NOTES: New file.
23169
23170         * object.c (mono_class_proxy_vtable): Make it thread safe.
23171
23172         * pedump.c: Fix warning.
23173
23174         * object.c appdomain.h: Get rid of metadata_section. 
23175         It is no longer needed and it was causing deadlocks with domain->lock.
23176
23177         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
23178
23179 2003-08-26  Martin Baulig  <martin@ximian.com>
23180
23181         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
23182
23183 2003-08-26  Martin Baulig  <martin@ximian.com>
23184
23185         * pedump.c (main): Call mono_metadata_init(),
23186         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
23187         and mono_loader_init().
23188
23189 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
23190
23191         * loader.h: Add missing include to fix build.
23192
23193         * image.h: mono_image_load_references is no more.
23194
23195         * assembly.c: Reworked assembly loading to make it really thread safe.
23196         After these changes, the assembly returned by mono_assembly_open is
23197         fully initialized, i.e. all its references assemblies are loaded.
23198
23199         * assembly.c (mono_image_load_references): Renamed to 
23200         mono_assembly_load_references, and made private, since clients no
23201         longer need to call it.
23202
23203         * class.c: Removed calls to mono_assembly_load_references, since it was
23204         a source of deadlocks.
23205
23206         * loader.h loader.c class.h class.c: Protect data structures using a 
23207         new lock, the loader lock.
23208
23209         * class.c (mono_class_setup_vtable): Create temporary hash tables and
23210         GPtrArrays only when needed.
23211
23212         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
23213         into empty structures by mcs. Fixes pinvoke7.cs.
23214         
23215         * domain.c (mono_init): Call a new initialization function.
23216
23217         * appdomain.c (mono_runtime_init): Call the new initializer function
23218         of the marshal module.
23219
23220         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
23221         inserted into empty structures by mcs. Fixes pinvoke7.cs.
23222
23223         * marshal.h marshal.c: Added locks around the wrapper caches to make
23224         this module thread safe.
23225
23226         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
23227         this argument. Fixes pinvoke1.exe.
23228
23229 2003-08-25  Lluis Sanchez <lluis@ximian.com>
23230
23231         * object.h: Added call_type field to MonoMethodMessage and the corresponding
23232         enumeration of values. Removed fields to store remote call output values in
23233         MonoAsyncResult. Not needed any more.
23234         * object.c: Initialize call_type and async_result fields in mono_message_init.
23235         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
23236         dispatching the message.
23237         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
23238         async call to finish. To do it use a message with EndInvoke call type.
23239
23240 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
23241
23242         * loader.h loader.c (mono_method_hash_marhal_info): New function which
23243         determines whenever a method has marshalling info.
23244
23245 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23246
23247         * assembly.c: fix the build on windows.
23248
23249 2003-08-22 Lluis Sanchez <lluis@ximian.com>
23250
23251         * object.cs: Fixed bug #47785.
23252
23253 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
23254
23255         * string-icalls.c (StringReplace): If their are no occurances of
23256         the old string found return a reference to the supplied
23257         string. This saves some memory and matches MS behavoir.
23258         
23259 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23260
23261         * socket-io.c: fixed compilation for systems that define AF_INET6
23262         and don't define SOL_IP/SOL_IPV6.
23263
23264 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
23265
23266         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
23267         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
23268
23269         * rawbuffer.c rawbuffer.h: Make this module thread safe.
23270
23271         * domain.c: Make this module thread safe.
23272
23273         * domain.c (mono_init): Call new initialization function.
23274
23275         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
23276         reference types too. Fixes #38812.
23277
23278         * image.c (mono_image_init): Fixed warnings.
23279
23280         * class.c (mono_class_from_typeref): Handle assembly load failure
23281         correctly.
23282
23283         * appdomain.c (add_assemblies_to_domain): Handle the case when
23284         the references of an assembly are not yet loaded.
23285
23286         * metadata.c image.c assembly.c: Moved initialization of global
23287         variables to a separate function called at startup since lazy 
23288         initialization of these variables is not thread safe.
23289         
23290         * image.c assembly.c: Made this module thread safe by adding locks in 
23291         the appropriate places.
23292
23293         * domain.c (mono_init): Call the new initialization functions of the
23294         three modules.
23295
23296 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
23297
23298         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
23299           make a direct call. It is proxy's work to make the call asynchronous.
23300           mono_delegate_end_invoke(): If the targe is a proxy, just collect
23301           the return values.
23302         * object.cs: mono_method_call_message_new(): read AsyncResult and
23303           state object from parameters list, if this info is requested.
23304         * object.h: Added fields to store remote call output values in
23305           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
23306
23307 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23308
23309         * object.h: add needed fields to MonoThread.
23310         * threads.c, threads.h: allow registering a function to cleanup data
23311         allocated per thread by the JIT.
23312
23313 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
23314
23315         * loader.h: portability fix by Bernie Solomon
23316         * <bernard@ugsolutions.com>.
23317
23318 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
23319
23320         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
23321         return a MonoArray. This simplifies the code and also ensures that
23322         the cache allways contains an object reference as a value.
23323
23324         * icall.c (ves_icall_get_parameter_info): Simplified using the new
23325         function.
23326
23327 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23328
23329         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
23330         fixes a problem with byte ordering when getting the address family for
23331         a socket.
23332
23333 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
23334
23335         * .cvsignore: Added monosn.
23336
23337         * reflection.h reflection.c loader.c: Added support for parameter
23338         marshalling to dynamically created types. Fixes #47295.
23339
23340 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
23341
23342         * rand.c: remove useless warnings.
23343
23344 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
23345
23346         * class.c: implemented ldtoken for methods and fieldrefs.
23347
23348 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23349
23350         * threadpool.c: when mono_async_invoke was called, no one took care of
23351         monitoring the queue. So if the method invoked took some time and we
23352         got new async invoke requests after 500 ms (the thread created waited
23353         that long in WaitForSingleObject), the new async invoke was not called
23354         until the previous one finished.
23355
23356         This is fixed now. Thanks to Totte for helping with it.
23357
23358 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23359
23360         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
23361
23362 2003-08-11  Martin Baulig  <martin@ximian.com>
23363
23364         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
23365
23366 2003-08-06  Martin Baulig  <martin@ximian.com>
23367
23368         * mono-debug-debugger.c: Added support for static fields,
23369         properties and methods.
23370
23371 2003-08-06  Martin Baulig  <martin@ximian.com>
23372
23373         * mono-debug-debugger.c: Don't store the MonoString's vtable to
23374         make this work for applications with multiple application domains.
23375
23376 2003-08-04  Martin Baulig  <martin@ximian.com>
23377
23378         * mono-debug-debugger.c: Completely reworked the type support; the
23379         most important thing is that we're now just using one single
23380         `MonoType' instance per type.
23381
23382 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
23383
23384         * mono-endian.h, mono-endian.c, icall.c: Added icall
23385         ves_icall_System_Double_AssertEndianity to assert double word endianity
23386         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
23387
23388 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
23389
23390         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
23391         support, icalls and fixes.
23392
23393 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
23394
23395         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
23396         classes that are a punctuation character in .NET is not the same a
23397         g_unichar_ispunct.
23398
23399 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
23400
23401         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
23402
23403 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
23404
23405         * icall.c: Add new MemCopy internalcall.
23406         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
23407         Simplified code; It is not necessary to handle all the cases here,
23408         as the C# code takes care of it.  Only handle the case of the name
23409         resource embedded into the assembly.
23410
23411         Changed signature to return the data pointer and the size of the
23412         data. 
23413
23414 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
23415
23416         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
23417         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
23418
23419 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
23420
23421         * socket-io.c: ignore EINTR error in select.
23422
23423 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
23424
23425         * class.h, class.c: removed unused subclasses field in MonoClass.
23426
23427 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
23428
23429         * icall.c: improve fix of get_base_definition(). If the parent class
23430           doesn't have the mehod, look at the parent of the parent.
23431         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
23432           to check if a parameter is an in or out parameter
23433           (PARAM_ATTRIBUTE_IN is not set by default).
23434           mono_method_return_message_restore(): Use mono_class_value_size to
23435           get the size of a value type. mono_type_stack_size (parameterType)
23436           does not return the correct value if parameterType is byRef.
23437           mono_load_remote_field(), mono_load_remote_field_new(),
23438           mono_store_remote_field(), mono_store_remote_field_new():
23439           raise exception if the remote call returns an exception.
23440
23441 2003-07-28  Martin Baulig  <martin@ximian.com>
23442
23443         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
23444         method.  This is a wrapper around mono_runtime_invoke() which
23445         boxes the instance object if neccessary.
23446
23447 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
23448
23449         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
23450         metadata.h, row-indexes.h, verify.c: first cut of generics support.
23451
23452 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
23453
23454         * icall.c: disable mcs bug workaround.
23455
23456 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
23457
23458         * object.c (mono_runtime_class_init): Take the metadata_section
23459         mutex before obtaining the domain mutex.
23460
23461         * appdomain.h: Added definition of metadata_section mutex here. 
23462
23463         * object.c: define metadata_mutex here.
23464
23465 2003-07-24  Ravi Pratap  <ravi@ximian.com>
23466
23467         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
23468         fixed.
23469
23470 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
23471
23472         * reflection.c: Fix bug #46669
23473
23474 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23475
23476         * exception.c:
23477         * exception.h:
23478         * icall.c:
23479         * object.h: fill in the type name for TypeLoadException.
23480
23481 2003-07-23  Ravi Pratap  <ravi@ximian.com>
23482
23483         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
23484         relationship between TypeBuilders while compiling corlib) and bug
23485         45993 (Array types returned from the runtime while compiling
23486         corlib were from the loaded corlib).
23487
23488 2003-07-22  Martin Baulig  <martin@ximian.com>
23489
23490         * mono-debug-debugger.c: Reworked the type support a bit more;
23491         distinguish between types and classes.
23492
23493 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
23494
23495         * icall.c: add IsArrayImpl icall.
23496
23497 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
23498
23499         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
23500         initializing real_size only once. Also fix bug #46602.
23501
23502 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
23503
23504         * object.c: Renamed mono_metadata_section to metadata_section.
23505
23506 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
23507
23508         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
23509           empty array if the type is an array. Fixed.
23510           ves_icall_MonoMethod_get_base_definition: if the base method
23511           is abstract, get the MethodInfo from the list of methods of
23512           the class.
23513         * reflection.c: ParameterInfo.PositionImpl should be zero-based
23514           and it was 1-based. Fixed in mono_param_get_objects.
23515
23516 2003-07-20  Martin Baulig  <martin@ximian.com>
23517
23518         * mono-debug.h: Set version number to 31.
23519         (mono_debug_init): Added `MonoDomain *' argument.
23520
23521         * mono-debug-debugger.c: Reworked the type support; explicitly
23522         tell the debugger about builtin types; pass the `klass' address to
23523         the debugger.
23524
23525 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
23526
23527         * image.c: Allow new metadata tables to be loaded without a
23528         warning. Also update the warning message to give the new constant value.
23529                 
23530 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
23531
23532         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
23533         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
23534         array type representation changes.
23535
23536 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
23537
23538         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
23539         on Environment.Exit () call.
23540
23541 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
23542
23543         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
23544         requires a matching corlib.
23545
23546 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
23547
23548         * Changelog: My editor decided to add a CR to each line. Sorry about that.
23549           Committed again without the CRs.
23550         
23551 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
23552
23553         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
23554           getting it from the "this" socket instance. Did not work
23555           if the socket is a subclass of Socket.
23556           Also fixed bug #35371.
23557
23558 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
23559
23560         * metadata.c: fixed size for TypedByRef.
23561         * loader.c: when searching for a method, consider the vararg amrker.
23562         * unicode.c, decimal.c: constify some arrays.
23563
23564 2003-07-15  Dick Porter  <dick@ximian.com>
23565
23566         * socket-io.c: Fixed compilation for gcc < 3.2.
23567
23568         Fixed compilation for machines that don't have AF_INET6 (thanks to
23569         Bernie Solomon <bernard@ugsolutions.com> for that part.)
23570
23571         Fixed compile warnings.
23572         
23573         Fixed formatting and line endings.
23574
23575 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
23576
23577         * socket-io.h:
23578         * socket-io.c: Added IPv6 support.
23579
23580 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
23581
23582         * class.c (mono_class_is_assignable_from): New function to implement
23583         the is_assignable_from logic. Used by mono_object_isinst, 
23584         Type::IsAssignableFrom () and the interpreter.
23585
23586         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
23587         Object, even interfaces.
23588         
23589         * object.c (mono_object_isinst): Implement in terms of 
23590         is_assignable_from.
23591
23592         * icall.c (ves_icall_type_is_assignable_from): New icall.
23593
23594 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
23595
23596         * domain.c (foreach_domain): fix compiler warning.
23597
23598 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
23599
23600         * image.c (load_metadata_ptrs): use g_strndup because strndup is
23601         not available on all plattforms
23602
23603 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
23604
23605         * image.h image.c: Store the metadata version string in MonoImage.
23606         * icall.c: New icall to retrieve the image version.
23607         * reflection.c (create_dynamic_image): Fill in the image version field
23608         * reflection.c (build_compressed_metadata): Use the image version
23609         from the image structure.
23610
23611 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23612
23613         * appdomain.c: modified comment.
23614         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
23615         That will be its last iteration when mono_gc_cleanup is called from
23616         mono_runtime_cleanup and before the domain is unloaded.
23617
23618         Fixes bug #45962.
23619
23620 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
23621
23622         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
23623         attributes.
23624
23625 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
23626
23627         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
23628         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
23629         Bernie Solomon <bernard@ugsolutions.com>.
23630
23631 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
23632
23633         * object.c, object.h: provide mono_object_new_fast() for faster
23634         allocation in some special cases.
23635
23636 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
23637
23638         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
23639         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
23640
23641 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
23642
23643         * threadpool.c: fix leaks.
23644
23645 2003-07-01  Dick Porter  <dick@ximian.com>
23646
23647         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
23648         using MonoGHashTables.  Fixes threadpool bug posted to list.
23649
23650 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
23651
23652         * image.h, image.c: added support to load an assembly from a byte array.
23653         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
23654         assembly bundle support.
23655
23656 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
23657
23658         * threadpool.c (mono_thread_pool_add): keep a reference to the
23659         AsyncResult to prevent GC
23660
23661 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
23662
23663         * class.c: leak fix.
23664
23665 2003-06-25  Dick Porter  <dick@ximian.com>
23666
23667         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
23668         for the async object, the WaitHandle object will close the handle.
23669         Fixes bug 45321.
23670
23671 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
23672
23673         * class.c: in mono_array_class_get (), lookup from the hash with the
23674         same type we insert: this works around a bug in
23675         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
23676         lluis. The real fix will have to wait for after the release.
23677
23678 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
23679
23680         * icall.c: fix memory leak when getting type members.
23681
23682 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
23683
23684         * reflection.c: added more pubtoken special cases.
23685
23686 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
23687
23688         * class.c: handle field offset correctly when class size
23689         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
23690
23691 2003-06-20  Martin Baulig  <martin@ximian.com>
23692
23693         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
23694         *image' field.
23695
23696 2003-06-20  Martin Baulig  <martin@ximian.com>
23697
23698         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
23699
23700 2003-06-20  Martin Baulig  <martin@ximian.com>
23701
23702         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
23703         just distinguish between variables in registers and variables at
23704         an offset relative to a register.
23705
23706 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23707
23708         * icall.c: #ifdef out latest changes until mcs is fixed.
23709
23710 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23711
23712         * icall.c: return members in metadata order.
23713
23714 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
23715
23716         * icall.c: avoid infinite loop in GetTimeZoneData.
23717
23718 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
23719
23720         * icall.c: added Marshal.Prelink/All icalls.
23721
23722 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
23723
23724         * object.c, object.h: fix warnings and do some overflow checking
23725         when creating arrays.
23726
23727 2003-06-17  Dick Porter  <dick@ximian.com>
23728
23729         * file-io.h:
23730         * file-io.c: File attributes need to be tweaked slightly when
23731         passed from the managed to the w32 world.
23732
23733 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
23734         * profiler.h profiler-private.h profiler.c: Rework last patch
23735         based on suggestion by Paolo.
23736         
23737 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
23738
23739         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
23740         instruction level coverage data collection.
23741         * profiler.h profiler.c (: Added new callback function which can be
23742         used by the profiler to limit which functions should have coverage
23743         instrumentation.
23744         * profiler.c (mono_profiler_load): Call g_module_build_path to
23745         generate the file name of the profiler library.
23746
23747 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
23748
23749         * profiler.c, profiler.h, profiler-private.h: added basic block 
23750         coverage profiling API.
23751
23752 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
23753
23754         * reflection.c (mono_reflection_create_runtime_class): Add support
23755         for events in dynamically generated code.
23756
23757         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
23758         not allocated.
23759
23760 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
23761
23762         * icall.c: when getting timezone info, return reasonable values if we
23763         can't get the actual data.
23764
23765 2003-06-14  Dick Porter  <dick@ximian.com>
23766
23767         * threads.c (start_wrapper): Remove the reference to the thread
23768         object in the TLS data, so the thread object can be finalized.
23769         This won't be reached if the thread threw an uncaught exception,
23770         so those thread handles will stay referenced :-( (This is due to
23771         missing support for scanning thread-specific data in the Boehm GC
23772         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
23773
23774 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
23775
23776         * reflection.c: ensure streams and tables are first allocated with
23777         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
23778
23779 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
23780
23781         * icall.c: fixed GetElementType for byrefs (bug# 44792).
23782
23783 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
23784
23785         * reflection.c (mono_reflection_create_runtime_class): Add support for
23786         properties to dynamically created classes.
23787         * reflection.c: Fix a few places where non-MonoObjects were inserted
23788         into the tokens hashtable.
23789
23790 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23791
23792         * object.c: some support to handle out of memory exceptions.
23793
23794 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
23795
23796         * marshal.c (mono_marshal_get_native_wrapper): support reference
23797         return types
23798
23799 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
23800
23801         * object.h, object.c: more portability stuff from Bernie Solomon.
23802         Unexport mono_object_allocate(). Added mono_object_unbox ().
23803         Set exitcode when an unhandled exception is thrown.
23804
23805 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
23806
23807         * marshal.c (mono_marshal_get_native_wrapper): use custom
23808         marshaler for return types.
23809
23810 2003-06-10  Dick Porter  <dick@ximian.com>
23811
23812         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
23813         ip_mreq is available
23814
23815 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
23816
23817         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
23818         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
23819         by Bernie Solomon <bernard@ugsolutions.com>.
23820
23821 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
23822
23823         * gc.c (mono_gc_init): Avoid error message on shutdown when
23824         GC_DONT_GC=1 is used.
23825
23826         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
23827         New icall to return the GUID of a module.
23828
23829 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
23830
23831         * class.c: ensure instance size always includes the parent's size
23832         even whem class size is set explicitly (fixes bug#44294).
23833
23834 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
23835
23836         * profiler.h, profiler.c: made the simple profiler thread-safe,
23837         get more accurate timing info. Allow the loading of an
23838         externally-developed profiler module.
23839
23840 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
23841
23842         * marshal.c (mono_marshal_get_native_wrapper): improved
23843         class/byref arguments.
23844         (mono_marshal_get_native_wrapper): better string marshaling support.
23845
23846 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
23847
23848         * class.c: ensure .pack and .size are handled correctly and
23849         simplified layout of static fields.
23850
23851 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
23852
23853         * appdomain.c
23854         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
23855
23856         * loader.c (mono_lookup_pinvoke_call): look for modules in the
23857         current directory (fix bug 44008)
23858
23859 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
23860
23861         * marshal.c (mono_marshal_get_native_wrapper): started support for
23862         custom marshalers.
23863         (mono_delegate_to_ftnptr): consider marshalling specifications
23864
23865 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
23866
23867         * reflection.c, reflection.h: emit custom marshal info.
23868
23869 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23870
23871         * object.c: free the GError.
23872         * icall.c: added CloseEvent_internal.
23873         * threads.[ch]:
23874         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
23875         call.
23876
23877 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
23878
23879         * loader.c (mono_method_get_signature): Add support for dynamic
23880         assemblies.
23881
23882 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
23883
23884         * reflection.c: fixed bug #43905.
23885
23886 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
23887
23888         * class.c, domain.c, icall.c, metadata.h, object.h: support for
23889         handling TypedReference and ArgIterator.
23890         * loader.c, loader.h: added function to get signature at call site.
23891
23892 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
23893
23894         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
23895         data readonly. Buglets and warning fixes. Some MethodSpec support.
23896
23897 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
23898
23899         * class.h, class.c, object.c: remove relative numbering support.
23900
23901 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
23902
23903         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
23904         free the string, until we get a chance to fix Gtk#
23905
23906 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
23907
23908         * marshal.c: revert last patch.
23909
23910 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
23911
23912         * icall.c: updates for new mono_class_vtable() not calling
23913         the type constructor anymore.
23914
23915 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
23916
23917         * object.h, object.c: separate vtable creation from type
23918         initialization. Make running the .cctor thread safe.
23919
23920 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
23921
23922         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
23923
23924 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
23925
23926         * loader.c (mono_get_method): consider calling convention
23927
23928 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
23929
23930         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
23931         to return the invisible global type for a module.
23932
23933         * reflection.c (mono_image_build_metadata): Emit global fields too.
23934
23935 2003-05-20  Peter Williams  <peterw@ximian.com>
23936
23937         * loader.c (mono_lookup_internal_call): Add a few newlines.
23938
23939 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
23940
23941         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
23942         literal strings.
23943
23944         * appdomain.c (set_domain_search_path): Recalculate search path when
23945         AppDomainSetup.PrivateBinPath changes.
23946
23947         * object.c (mono_class_compute_gc_descriptor): It turns out some
23948         parts of the class libs (like System.Thread) holds pointers to
23949         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
23950         to treat native int a pointer type here.
23951         
23952 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
23953
23954         * appdomain.h, domain.c: add hashtable for jump target resolution.
23955
23956 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
23957
23958         * reflection.h reflection.c icall.c: Added new icalls 
23959         GetManifestResourceInfoInternal, GetModulesInternal and support
23960         infrastructure.
23961
23962 2003-05-16  Dick Porter  <dick@ximian.com>
23963
23964         * icall.c:
23965         * file-io.h:
23966         * file-io.c: Implement System.IO.MonoIO::GetTempPath
23967
23968 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
23969
23970         * object.c: mono_store_remote_field: little fix to previous patch.
23971
23972 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
23973
23974         * class.c: add constructors to array classes.
23975         * icall.c: special case array construction for InternalInvoke (),
23976
23977 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
23978
23979         * class.h class.c reflection.c object.c: Added support for field
23980         defaults in dynamically generated classes.
23981
23982 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
23983
23984         * reflection.c: properly encode charset for ddlimport.
23985
23986 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
23987
23988         * threads.c: allow compiling without GC.
23989
23990 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
23991
23992         * appdomain.h, object.c, object.h, threads.c, threads.h: added
23993         handling of thread static data.
23994
23995 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
23996
23997         * reflection.h, reflection.c: added mono_custom_attrs_free ().
23998
23999 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
24000
24001         * class.c (mono_array_class_get): always set the serializable flags
24002         (mono_array_class_get): always set the SEALED attribute for array types
24003
24004 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
24005
24006         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
24007         attributes (fix for bug 42021).
24008
24009 2003-05-12  Dick Porter  <dick@ximian.com>
24010
24011         * gc.c: Don't run finalizers when the finalizer thread is
24012         finishing up, because the default domain has already been
24013         destroyed.
24014
24015 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
24016
24017         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
24018         value is null, we should throw an exception.   This is slightly
24019         different than the other conventions used for the constructor.
24020
24021 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24022
24023         * socket-io.c: fixed windows build.
24024
24025 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24026
24027         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
24028
24029 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
24030
24031         * object.c (mono_string_new_wrapper): Compatibility fix for MS
24032         compilers.
24033
24034 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
24035
24036         * class.c (mono_class_layout_fields): Add experimental GC aware
24037         auto layout facility. Requires class library changes to work correctly.
24038
24039         (mono_class_setup_vtable): Avoid overriding explicit interface
24040         method implementations. Fixes iface3.exe test.
24041
24042         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
24043         object reference.
24044         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
24045         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
24046
24047         * metadata.h: Add new type classification macro which determines
24048         whenever the type holds an object reference.
24049
24050 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
24051
24052         * marshal.c (mono_marshal_get_native_wrapper): cleanups
24053
24054 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
24055
24056         * gc.c (finalizer_thread): Work around a GC bug.
24057
24058 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
24059
24060         * marshal.c (emit_struct_conv): allow unions
24061
24062         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
24063
24064 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
24065
24066         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
24067
24068 2003-05-06  Martin Baulig  <martin@ximian.com>
24069
24070         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
24071
24072 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24073
24074         * socket-io.c:
24075         (Select_internal): allow NULLs, don't create arrays if not needed.
24076         Coupled with Socket.cs changes.
24077
24078         * threadpool.c:
24079         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
24080         register a finalizer for it that will close the semaphore handle. This
24081         fixes the leak and make Lupus' test run with > 4080 loops.
24082
24083 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
24084
24085         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
24086         Jerome Laban (bug #42287)
24087
24088 2003-05-02  Martin Baulig  <martin@ximian.com>
24089
24090         * debug-mono-symfile.h
24091         (MonoSymbolFile): Moved declaration into mono-debug.h.
24092         (MonoDebugMethodJitInfo): Likewise.
24093         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
24094         argument.
24095         (_mono_debug_address_from_il_offset): Take a
24096         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
24097
24098         * mono-debug.h
24099         (MonoDebugDomainData): New struct.
24100         (mono_debug_get_domain_data): New function.
24101         (mono_debug_add_method): Take an additional `MonoDomain *'
24102         argument.
24103         (mono_debug_source_location_from_address): Likewise.
24104         (mono_debug_il_offset_from_address): Likewise.
24105         (mono_debug_address_from_il_offset): Likewise.
24106
24107 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
24108
24109         * reflection.c: one more check for null type in custom attrs.
24110
24111 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24112
24113         * reflection.c: avoid warning (comparison is always false due to limited
24114         range of data type).
24115
24116 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24117
24118         * icall.c: throw an exception in Type.GetField if the argument 'name'
24119         is NULL.
24120
24121 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
24122
24123         * reflection.c: fixed handling of enums in named arguments to custom
24124         attributes (bug #42123).
24125
24126 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
24127
24128         * reflection.c: use the right array element type and handle
24129         a null for a Type argument, too.
24130
24131 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
24132
24133         * reflection.c: handle arrays as arguments to custom attributes.
24134
24135 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
24136
24137         * reflection.c: handle a string value in a custom attr
24138         ctor that takes an object.
24139
24140 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
24141
24142         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
24143         (fix bug #42063)
24144
24145 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
24146
24147         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
24148
24149 2003-04-27  Martin Baulig  <martin@ximian.com>
24150
24151         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
24152         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
24153         MONO_DEBUGGER_EVENT_BREAKPOINT.
24154         (mono_breakpoint_trampoline_code): Removed.
24155         (mono_debugger_event_handler): The last argument is now a
24156         `guint32'.
24157         (mono_debugger_insert_breakpoint_full): Removed the
24158         `use_trampoline' argument.
24159         (mono_debugger_method_has_breakpoint): Likewise.
24160         (mono_debugger_trampoline_breakpoint_callback): Renamed to
24161         mono_debugger_breakpoint_callback(); take the method and
24162         breakpoint number as arguments.
24163
24164 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
24165
24166         * metadata.c: fix off by one when loading parameters attributes.
24167
24168 2003-04-24  Martin Baulig  <martin@ximian.com>
24169
24170         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
24171
24172 2003-04-24  Martin Baulig  <martin@ximian.com>
24173
24174         * mono-debug-debugger.c: Moved all code which interacts with the
24175         Mono Debugger here.
24176
24177         * debug-mono-symfile.c: This code now just deals with the symbol
24178         file itself, the debugger code is now in mono-debug-debugger.c.
24179
24180 2003-04-23  Martin Baulig  <martin@ximian.com>
24181
24182         * mono-debug.c (mono_debug_source_location_from_il_offset):
24183         New method; like mono_debug_source_location_from_address(), but
24184         takes an IL offset instead of a machine address.
24185
24186 2003-04-23  Martin Baulig  <martin@ximian.com>
24187
24188         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
24189         `line' field; this is now computed by the debugger.
24190
24191 2003-04-23  Martin Baulig  <martin@ximian.com>
24192
24193         * mono-debug.[ch]: New files.  This is the new debugging interface.
24194
24195         * mono-debug-debugger.[ch]: New files.  Moved all code which
24196         interacts with the Mono Debugger here.
24197
24198 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
24199
24200         * domain.c (mono_init): initialize mono_defaults.monitor_class
24201
24202 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
24203
24204         * reflection.c (method_encode_code): Add a spicy exception to help
24205         future compiler authors.
24206
24207 2003-04-21  Martin Baulig  <martin@ximian.com>
24208
24209         * icall.c
24210         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
24211         Make this work with relative pathnames; g_filename_to_uri() needs
24212         an absolute filename.
24213
24214 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
24215
24216         * icall.c: Track name changes in Object and ValueType.
24217
24218 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
24219
24220         * metadata.c (mono_type_stack_size): size should be a multiple of
24221         sizeof (gpointer)
24222
24223 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24224
24225         * gc.c:
24226         (internal_domain_finalize): moved into mono_domain_finalize. No need
24227         to create another thread because the finalizers will be run in the
24228         finalizer thread.
24229         
24230         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
24231         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
24232         to be run (MS does this too).
24233
24234 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
24235
24236         * object.c (mono_class_compute_gc_descriptor): Update comment.
24237
24238         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
24239
24240         * image.h: Add synchronized wrapper cache.
24241
24242         * image.c (do_mono_image_open): Initialize cache.
24243
24244         * reflection.c (create_dynamic_mono_image): Initialize cache.
24245
24246 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24247
24248         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
24249         ves_icall_System_Buffer_ByteLengthInternal.
24250
24251 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
24252
24253         * reflection.c: setup klass->nested_in earlier. Allow
24254         a dash in the assembly name.
24255
24256 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
24257
24258         * metadata.c (mono_type_to_unmanaged): dont access
24259         type->data.klass for MONO_TYPE_OBJECT
24260         (mono_type_to_unmanaged): consider System.Delegate class
24261
24262 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
24263
24264         * class.c: just setup supertypes in the proper place instead of
24265         initializing the full element class for arrays.
24266
24267 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
24268
24269         * class.c: ensure the element class of arrays is initialized.
24270         Setup the supertype info for array classes, too.
24271
24272 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
24273
24274         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
24275
24276 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24277
24278         * Makefile.am: re-added -m option when running cygpath. This way,
24279         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
24280         separator.
24281         * mono-config.c: same codepath for locating mono config file for WIN32
24282         and the rest.
24283         * assembly.c: if mono_assembly_setrootdir is called, don't override
24284         the value set.
24285
24286 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24287
24288         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
24289         MONO_ASSEMBLIES variable.
24290
24291 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
24292
24293         * icall.c: added Assembly::GetNamespaces() icall.
24294
24295 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24296
24297         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
24298
24299 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
24300
24301         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
24302         * object.c: fixed bug in the construction of vtable for proxies
24303
24304 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
24305
24306         * object.c (mono_array_new): Mark mono_array_new as an icall.
24307
24308 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24309
24310         * class.c: fixed test for public method when overriding interfaces.
24311         Closes bug #40970.
24312
24313 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
24314
24315         * appdomain.h, domain.c: added mono_domain_foreach() to
24316         be able to access the currently loaded appdomains.
24317         * object.c: make string interning work across sppdomains.
24318         Mark some functions for use as icalls.
24319
24320 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
24321
24322         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
24323
24324         * reflection.h reflection.c: Allocate long living data using 
24325         GC_MALLOC_ATOMIC so the collector does not need to scan it.
24326
24327         * reflection.c: Double the allocation size in streams instead of
24328         increasing it, to prevent unneccesary copying on large assemblies.
24329         
24330         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
24331         creation if the assembly does not have the Run flag set.
24332
24333 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
24334
24335         * class.h: avoid the C++ keywords in header files (Jerome Laban
24336         spotted and fixed this).
24337
24338 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24339
24340         * object.c:
24341         (mono_unhandled_exception): fill in the arguments for the
24342         UnhandledException event. Only trigger that event for the default
24343         domain (as MS does).
24344
24345 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
24346
24347         * object.c: Improve typed allocation stuff based on suggestions from
24348         Paolo. Also turn it on if the GC library supports it.
24349
24350 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
24351
24352         * object.c object.h class.h: Added experimental typed allocation
24353         facility using the interfaces in gc_gcj.h.
24354
24355         * os/gc_wrapper.h: Added new include files.
24356         
24357 2003-04-03  Martin Baulig  <martin@ximian.com>
24358
24359         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
24360         which is not yet enabled by default.
24361
24362         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
24363         functions.
24364         (mono_gc_lock, mono_gc_unlock): New static functions.
24365
24366         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
24367         functions; stop/start the world for the garbage collector.  This
24368         is using the windows API; we need to complete the SuspendThread()/
24369         ResumeThread() implementation in the io-layer to make this work on Unix.
24370         (mono_gc_push_all_stacks): New public function; tells the garbage
24371         collector about the stack pointers from all managed threads.
24372
24373 2003-04-03  Martin Baulig  <martin@ximian.com>
24374
24375         * object.h (MonoThread): Added `gpointer stack_ptr'.
24376
24377         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
24378
24379 2003-04-03  Martin Baulig  <martin@ximian.com>
24380
24381         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
24382
24383 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
24384
24385         * reflection.c (typebuilder_setup_fields): Initialize field.first and
24386         field.last.
24387
24388 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
24389
24390         * loader.c (mono_lookup_internal_call): Report the corlib that is
24391         out of sync.
24392
24393 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
24394
24395         * icall.c (ves_icall_type_GetTypeCode): fixed check for
24396         System.DBNull (it's class not valuetype).
24397
24398 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
24399
24400         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
24401         if the array method was already assigned a token (fixes bug#40646).
24402
24403 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
24404
24405         * reflection.c (mono_reflection_get_type): Attempt type resolve even
24406         if no assembly is given.
24407
24408 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
24409
24410         * metadata.h: Added the new tables.
24411
24412         * row-indexes.h: Added definitions for new tables.
24413
24414         * metadata.c: Add schemas for new tables, and add support for
24415         computing the sizes of them.
24416
24417         * class.c: Update for handling the new type cases.
24418
24419 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
24420
24421         * metadata.h (MONO_TYPE_IS_VOID): new macro
24422
24423 2003-03-31  Martin Baulig  <martin@ximian.com>
24424
24425         * threads.h (MonoThreadCallbacks): Added `thread_created'.
24426
24427         * threads.c (mono_thread_new_init): Call `thread_created' in the
24428         mono_thread_callbacks.
24429
24430 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
24431
24432         * loader.h: added marshalbyrefobject_class to mono_defaults
24433         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
24434         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
24435           generation of output parameters.
24436           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
24437         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
24438           contextbound and the target object belongs to the context of the caller.
24439         * object.h: added context and unwrapped_server variables in MonoRealProxy.
24440         * object.c: Implemented support for interfaces and abstract classes
24441           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
24442           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
24443
24444 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
24445
24446         * class.h class.c (mono_class_is_subclass_of): New function.
24447         
24448         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
24449         routines for most common case (calls from ArrayList::ToArray).
24450
24451         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
24452         routine so programs which call Environment::Exit() can be profiled.
24453
24454         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
24455         Added MONO_ARCH_SAVE_REGS.
24456
24457         * icall.c (ves_icall_type_is_subtype_of): Use new function.
24458
24459 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
24460
24461         * blob.h: Add a couple of new MonoType types definitions.
24462
24463         * tabledefs.h: Add a couple of new call convs.
24464
24465 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
24466
24467         * reflection.h (MonoReflectionDynamicAssembly): track changes in
24468         the layout of the class.
24469
24470         * reflection.c (alloc_table): double the size on overflow to avoid
24471         unnecessary copying.
24472
24473         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
24474         avoid filling out metadata tables and blobs. Also set mb->ilgen to
24475         null so it can be garbage collected.
24476         
24477 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
24478
24479         * reflection.c (mono_reflection_get_type): Return the resolved type
24480         only if it is in the assembly we searched.
24481
24482         * reflection.c (ensure_runtime_vtable): Initialize method slots.
24483
24484         * class.c (mono_class_setup_vtable): Set the slot of the overriding
24485         method.
24486
24487 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24488
24489         * appdomain.c:
24490         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
24491         the right one is 'file:///blah', but MS allows it.
24492         * assembly.c:
24493         (mono_assembly_open): allow 'file://blah'
24494
24495         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
24496
24497 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
24498
24499         * socket-io.c: fixes bug #40310.
24500
24501 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
24502
24503         * reflection.c (mono_reflection_parse_type): handle deeply nested
24504         types correctly.
24505
24506         * reflection.c (mono_image_create_token): Use unique token values
24507         since they will be put into a hash table.
24508
24509         * class.c (mono_class_setup_vtable): If a method occurs in more than
24510         one place in the vtable, and it gets overriden, then change the
24511         other occurances too.
24512
24513         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
24514         object as return type.
24515
24516 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
24517
24518         * icall.c: Deleted "ToString" implementation for double and float
24519         because they are full implemented in managed code.
24520
24521 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
24522
24523         * reflection.c, reflection.h: implemented and exported functions
24524         to retrieve info about custom attributes.
24525
24526 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24527
24528         * appdomain.c: moved Uri handling to assembly.c
24529         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
24530         work when using a file Uri in *nix and windows.
24531
24532         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
24533         GetReferencedAssemblies.
24534
24535 2003-03-18  Dick Porter  <dick@ximian.com>
24536
24537         * icall.c: Rename a couple of internal calls
24538
24539         * threads.c: Set the thread state to Stopped when a thread exits.
24540         Fixes bug 39377.
24541
24542 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
24543
24544         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
24545         New icall.
24546
24547         * object.c (mono_class_vtable): fix warning.
24548
24549 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
24550
24551         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
24552
24553         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
24554         memory.
24555         (method_encode_clauses): Create exception info structures in the right
24556         order.
24557         (mono_reflection_setup_internal_class): Initialize supertypes field.
24558
24559         * class.c object.c: Handle interfaces which implement other interfaces 
24560         correctly.
24561
24562         * class.h class.c: Move the supertypes array initialization code into 
24563         a separate function so it can be used for dynamic types too. Also call
24564         it earlier, in mono_class_init(), since it can be used before the
24565         type is initialized.
24566
24567 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24568
24569         * Makefile.am:
24570         * assembly.c:
24571         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
24572
24573         * appdomain.c:
24574         * appdomain.h:
24575         * marshal.c:
24576         * object.c: remove warnings.
24577
24578 2003-03-13  Martin Baulig  <martin@ximian.com>
24579
24580         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
24581         (MonoDebugLexicalBlockEntry): New types.
24582
24583         * debug-mono-symfile.c
24584         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
24585
24586 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24587
24588         * process.c: ret can be any non-zero value accroding to MS doc.
24589
24590 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
24591
24592         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
24593         fixing a warning for a miss-used prototype, would have cause
24594         random memory corruption.
24595
24596 2003-03-07  Martin Baulig  <martin@ximian.com>
24597
24598         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
24599         getting really annoying ....
24600
24601 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
24602
24603         * reflection.c (fixup_method): added support for array methods.
24604
24605 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
24606
24607         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
24608         (pointed out by Michael Adams).
24609
24610 2003-03-04  Dick Porter  <dick@ximian.com>
24611
24612         * icall.c: Temporarily reverted the Double and Single ToString()
24613         change, because it broke nunit.
24614
24615 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
24616
24617         * object.h, threads.h: make include files compatible with C++
24618         (patch by Jerome Laban <jlaban@wanadoo.fr>).
24619
24620 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
24621
24622         * icall.c: Erased ToString helper functions for Double and Single.
24623         Now, that implementations ar all in managed code (Double and Single
24624         Formatters).
24625
24626 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
24627
24628         * appdomain.c: Added method for initializing the default context of
24629         a domain. Added internal call for getting the default context.
24630         * appdomain.h: Added context variable in MonoDomain struct.
24631         * domain.c: mono_domain_set also sets the default context of the domain
24632         * icall.c: Mapped internal method InternalGetDefaultContext.
24633         * object.c: mono_object_get_virtual_method returns always a remoting
24634         wrapper if the object is a transparent proxy.
24635         mono_runtime_invoke_array: when creating an object by calling the
24636         constructor, if the created object is a proxy, then the constructor should
24637         be called using the a remoting wrapper.
24638
24639 2003-03-03  Dick Porter  <dick@ximian.com>
24640
24641         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
24642         variable so it compiles on solaris.  Problem spotted by
24643         Christopher Taylor <ct@cs.clemson.edu>
24644
24645 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24646
24647         * appdomain.c:
24648         (get_info_from_assembly_name): don't leak value.
24649
24650         * icall.c:
24651         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
24652         result.
24653
24654 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
24655
24656         * assembly.c: export mono_image_load_references ().
24657         * class.c: handle function pointers. mono_class_from_name() now
24658         supports nested type names directly.
24659
24660 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
24661
24662         * reflection.h reflection.c: Encode already created dynamic methods 
24663         and fields correctly as a DEF instead of a REF.
24664
24665         * reflection.c: Get rid of the force_ref argument to 
24666         mono_image_typedef_or_ref since it was wrong in the first place.
24667
24668         * string-icalls.c: add error checking to string constructors according
24669         to the MSDN docs.
24670
24671         * reflection.c: Emit types in the order their TypeBuilders were 
24672         created. Previously, a new table index was assigned to each type before
24673         the tables were emitted. This was wrong because the signature blob
24674         might already refer to a type by its original table index.
24675
24676 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
24677
24678         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
24679         change.
24680         
24681 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24682
24683         * Makefile.am: make assemblies dir have \ instead of / on windows.
24684
24685 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
24686
24687         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
24688         iterate over the NESTEDCLASS table using a linear search since the
24689         table is not guaranteed to be sorted by the secondary key.
24690
24691         * class.c (mono_class_create_from_typedef): fixed up call to
24692         mono_metadata_nesting_typedef.
24693         
24694 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
24695
24696         * marshal.c (mono_string_to_byvalstr): clear the memory as
24697         suggested by Jerome Laban <jlaban@wanadoo.fr>
24698
24699 2003-02-26  Dick Porter  <dick@ximian.com>
24700
24701         * process.c: Cope with padding in .rsrc blocks
24702
24703 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
24704
24705         * metadata.h: reverted the filter_len change, it breaks reflection
24706         
24707 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
24708
24709         * metadata.h: added a new field to store the filter_len
24710         
24711
24712 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
24713
24714         * reflection.c: handle custom attributes for types and members
24715         created with Reflection.Emit (bug#38422).
24716
24717 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
24718
24719         * reflection.c: define RTSpecialName automatically for constructors for
24720         compatibility with MS.NET.
24721
24722         * reflection.c (mono_reflection_create_runtime_class): initialize
24723         nested_in field of dynamically created classes.
24724
24725 2003-02-22  Martin Baulig  <martin@ximian.com>
24726
24727         * debug-mono-symfile.h: Incremented version number.
24728
24729 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
24730
24731         * object.h icall.c process.c: fix warnings.
24732
24733 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
24734
24735         * appdomain.h appdomain.c:
24736         (mono_domain_try_type_resolve): split the 
24737         name_or_tb argument into a name and a tb argument.
24738         (mono_domain_has_type_resolve): new function to check whenever the
24739         application has registered a TypeResolve event handler.
24740         
24741         * icall.c reflection.h reflection.c: move the type resolve logic into
24742         mono_reflection_get_type () so it will be invoked when 
24743         Assembly::GetType () is called.
24744
24745         * reflection.c:
24746         (mono_reflection_get_type): renamed to get_type_internal.
24747         (mono_reflection_get_type): fixed type name generation so it works 
24748         for nested types too.
24749         (mono_reflection_get_type): call has_type_resolve () to avoid the 
24750         costly type name generation if there is no resolve event handler.
24751
24752 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
24753
24754         * class.c, image.c: load exported types from file references.
24755
24756 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
24757
24758         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
24759           used to cache the managed methods used to create proxies and make 
24760           remote invocation of methods.
24761         * class.h: Added in MonoVTable a flag to indicate that a class needs 
24762           to be remotely created.
24763         * object.c: Modified the method mono_class_vtable(). It now initializes 
24764           the remote flag of the vtable. Modified mono_object_new_specific(), 
24765           so now it checks the remote flag.
24766         * icall.c: Added a couple of internal methods, one for enabling instance 
24767           creation interception for a type, and one for creating objects bypassing
24768           the remote check.
24769
24770 2003-02-18  Martin Baulig  <martin@ximian.com>
24771
24772         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
24773         New interncall to get a method's metadata token.
24774
24775         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
24776         New interncall for the debugger.
24777
24778 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
24779
24780         * class.c (mono_class_setup_vtable): allocate supertype array
24781
24782 2003-02-18  Martin Baulig  <martin@ximian.com>
24783
24784         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
24785
24786 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24787
24788         * reflection.c:
24789         (assembly_name_to_aname): jump over unknown properties (i've found
24790         something like: 'type, assembly, version=xxx, custom=null, public...',
24791         so now will ignore custom=null and still get the rest of the values).
24792
24793 2003-02-17  Dick Porter  <dick@ximian.com>
24794
24795         * threads.c: Have Thread.Start() wait for a semaphore to signal
24796         that the thread has set up all its local data.  This fixes bug
24797         34323, where Abort() raced the new thread's TLS data.
24798
24799         Also removes the handle_store() call from start_wrapper, because
24800         threads are now always created suspended and there is no longer a
24801         race between the parent and child threads to store the info.
24802
24803 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
24804
24805         * image.c: explain the #- heap issue in a message, hopefully
24806         avoiding FAQs on mono-list.
24807
24808 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24809
24810         * icall.c:
24811         (GetEntryAssembly): if the domain has not invoked
24812         AppDomain.ExecuteAssembly yet, return the assembly of the default
24813         AppDomain.
24814
24815 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
24816
24817         * class.c (mono_ldtoken): make it work in dynamic assemblies.
24818
24819 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
24820
24821         * metadata.c, reflection.c: simple speedup to type hash
24822         and equals code.
24823
24824 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
24825
24826         * image.c, image.h, class.c, assembly.c: move module loading
24827         to MonoImage. When loading metadata, consider alignemnet from
24828         the start of metadata, not from the metadata address in memory.
24829
24830 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
24831
24832         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
24833         AssemblyBuilder objects. Factored out custom attribute creation into
24834         a separate function.
24835         (create_custom_attr): new function to create custom attributes.
24836
24837 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
24838
24839         * Makefile.am: Got tired of typing the full pathname to pedump.
24840         Until there is another option, am installing this.
24841
24842 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
24843
24844         * class.c (class_compute_field_layout): always set field->parent 
24845         (mono_ldtoken): use mono_defaults.fieldhandle_class;
24846
24847 2003-02-11  Dick Porter  <dick@ximian.com>
24848
24849         * threads-types.h:
24850         * monitor.c: Rewrote Monitor, making lock much faster and
24851         Pulse/Wait work as specified.  Also uses much fewer handles, and only
24852         creates them as needed.
24853
24854         * exception.c: Added SynchronizationLockException
24855
24856         * threads.c: Deleted old Monitor implementation.  The new one is
24857         in a new file.
24858
24859 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
24860
24861         * class.c: handled TypedReference type code. Set the correct size for
24862         class data. Setup interface_offsets for interface classes, too.
24863
24864 2003-02-09  Martin Baulig  <martin@ximian.com>
24865
24866         * debug-mono-symfile.h: Reflect latest symbol writer changes.
24867
24868 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
24869
24870         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
24871         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
24872         * object.c: fixed mono_object_get_virtual_method () for interfaces.
24873         * verify.c: check for code that runs after the end of the method.
24874
24875 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
24876
24877         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
24878         "System.Math::Round2".
24879         * sysmath.h: Added Floor, Round and Round2 definitions.
24880         * sysmath.c: Modified certain functions that were not 100% compliant
24881         with MS.NET (math precision) and added the implementation of Floor,
24882         Round and Round2.
24883
24884 2003-02-07  Martin Baulig  <martin@ximian.com>
24885
24886         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
24887
24888 2003-02-07  Martin Baulig  <martin@ximian.com>
24889
24890         * debug-mono-symfile.c: Reflected latest symwriter changes.
24891         (mono_debug_create_mono_symbol_file): Removed.
24892         (mono_debug_open_mono_symbol_file): Take an argument which
24893         specifies whether to create a dynamic symbol file.
24894
24895 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
24896
24897         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
24898
24899 2003-02-05  Martin Baulig  <martin@ximian.com>
24900
24901         * reflection.c (mono_image_build_metadata): Make this public,
24902         protect it against being called multiple times, don't create
24903         resources and don't build the compressed metadata here.
24904         (mono_image_create_pefile): Do this here.
24905
24906         * icall.c
24907         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
24908
24909 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24910
24911         * socket-io.c: fixed bug #36322.
24912
24913 2003-02-06  Piers Haken <piersh@friskit.com>
24914
24915         * appdomain.[ch]:
24916         * class.h:
24917         * debug-mono-symfile.c:
24918         * icall.c:
24919         * loader.c:
24920         * mono-config.c:
24921         * monosn.c:
24922         * reflection.c:
24923         * socket-io.c: warning cleanups
24924
24925 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
24926
24927         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
24928         function. works like remoting invoke, but does a check for the Proxy first.
24929
24930 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
24931
24932         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
24933
24934 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
24935
24936         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
24937         array of pointers.
24938         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
24939         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
24940
24941         * object.c (mono_store_remote_field_new): used by the new jit
24942         instead of mono_store_remote_field
24943         (mono_load_remote_field_new): used by the new jit
24944         instead of mono_load_remote_field
24945
24946 2003-02-05  Patrik Torstensson
24947
24948         * appdomain.c: changed unload to take the domain id instead
24949         of domain
24950         
24951         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
24952
24953
24954 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24955
24956         * appdomain.c: don't look for assemblies in ApplicationBase if
24957         PrivateBinPathProbe is set.
24958
24959 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24960
24961         * object.c: make the first argument in main_args contain the absolute
24962         path to the assembly. Fixes bug #37511.
24963
24964 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24965
24966         * icall.c: get correct UTC offset for countries not using daylight
24967         time saving. Fixes bug #30030.
24968
24969 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24970
24971         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
24972         and 1 are the family).
24973
24974 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
24975
24976         * icall.c (ves_icall_InternalExecute): removed wrong assertion
24977
24978         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
24979
24980 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
24981
24982         * reflection.c: added support for SignatureHelper tokens, which is
24983         needed by the Calli opcode.
24984
24985         * reflection.h: track changes to SignatureHelper class.
24986
24987         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
24988
24989 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
24990
24991         * appdomain.c: fixed loading assemblies from PrivateBinPath.
24992
24993 2003-02-03  Patrik Torstensson
24994         * appdomain.[c|h], domain.c : 
24995          - Added support for getting a domain via domain id
24996          - Support for setting and getting domain from System.AppDomain 
24997            (used in cross appdomain channel)
24998          - Added support for get/set for a MonoAppContext on a thread 
24999            (Context class in System.Runtime.Remoting.Contexts),
25000          - Removed hack in Get/SetData and ExecuteAssembly.
25001         
25002         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
25003         the managed world to get control when a proxy is created.
25004
25005         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
25006         
25007 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
25008
25009         * icall.c
25010         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
25011         Populate the codebase field as well.
25012
25013 2003-02-02  Martin Baulig  <martin@ximian.com>
25014
25015         * debug-mono-symfile.c
25016         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
25017         (mono_debug_symfile_add_method): Allow interncalls.
25018
25019 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25020
25021         * icall.c: throw parse exception if strtod fails or the string is empty.
25022
25023 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
25024
25025         * marshal.c: handle object type separately from defined
25026         class types.
25027
25028 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
25029
25030         * marshal.c: handle NATIVE_LPSTR for strings when it's
25031         explicitly specified.
25032
25033 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
25034
25035         * reflection.c, reflection.h, icall.c: setup the reflection
25036         handle cache for ModuleBuilders and AssemblyBuilders.
25037
25038 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
25039
25040         * reflection.c (reflection_methodbuilder_to_mono_method): set
25041         pinvoke flag
25042
25043 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25044
25045         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
25046
25047 2003-01-29  Dick Porter  <dick@ximian.com>
25048
25049         * threads.c: No need for the fake_thread kludge now that Thread
25050         doesn't run a class constructor
25051         
25052 2003-01-29  Dick Porter  <dick@ximian.com>
25053
25054         * threads.c: Use g_direct_hash instead of the rather bogus
25055         g_int_hash
25056
25057 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
25058
25059         * marshal.c (mono_marshal_get_native_wrapper): add check for null
25060         (fix pinvoke12.exe)
25061         (mono_marshal_get_struct_to_ptr): generate valid IL code
25062         (mono_marshal_get_ptr_to_struct): generate valid IL code
25063         (*): correctly set sig->pinvoke, we need to memdup the signature
25064         to do that
25065
25066 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
25067
25068         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
25069         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
25070
25071 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
25072
25073         * profiler.c: provide more callers information.
25074
25075 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
25076
25077         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
25078
25079         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
25080
25081         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
25082
25083 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
25084
25085         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
25086         exception instead of going into an infinite loop on dates which it 
25087         can't yet handle.
25088
25089         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
25090         out-of-range exception if needed.
25091
25092         * class.c (mono_class_setup_vtable): allow a virtual method to provide
25093         an implementation for an interface method and to override an inherited
25094         method at the same time. 
25095         Imagine a scenario when a virtual method is used to override a
25096         virtual abstract method in a parent class, and this same method 
25097         provides an implementation for an method inherited from an interface. 
25098         In this case, the interface resolution code will set im->slot, which 
25099         means that the virtual method override pass will skip this method 
25100         which means a pointer to the abstract method inherited from the parent
25101         will remain in the vtable of this non-abstract class.
25102
25103         * class.c: (mono_class_setup_vtable): continue search for a real 
25104         method if only an abstract method is found.     
25105
25106 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
25107
25108         * reflection.c: add size to encoding for ByValStr and ByValArray
25109         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
25110
25111 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
25112
25113         * class.c (mono_class_setup_vtable): pass the override info as an
25114         argument.
25115
25116         * class.c (mono_class_setup_vtable): set the slot of overriding methods
25117         correctly.
25118         
25119         * reflection.c (ensure_runtime_vtable); add support for method 
25120         overrides.
25121         
25122 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
25123
25124         * reflection.c (resolution_scope_from_image): Hack to work to work with
25125         dynamic assemblies.
25126
25127         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
25128         added a 'force_ref' argument to force this function to allways return 
25129         a TypeRef. This is needed by mono_image_get_memberref_token ().
25130         
25131 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
25132
25133         * reflection.c (mono_image_get_type_info): interfaces really don't have
25134         a parent.
25135
25136         * reflection.c (mono_image_basic_init): fill out missing fields of
25137         image structure.
25138
25139         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
25140         dynamic assemblies. This is required so dynamic assemblies show up in
25141         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
25142         Type::GetType() etc. This is consistent with MS behaviour.
25143
25144         * image.c image.h reflection.c: add newly created classes to the name 
25145         cache so mono_class_get () will find them.      
25146
25147 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
25148
25149         First part of changes to get IKVM.NET running under mono.
25150         
25151         * appdomain.h, appdomain.c: added new function 
25152         mono_domain_try_type_resolve() which will emit TypeResolve events. 
25153         This function will call AppDomain::DoTypeResolve to do the actual work.
25154
25155         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
25156         moved existing code dealing with dynamic tokens to a new function 
25157         called mono_reflection_lookup_dynamic_token (). This function will 
25158         raise TypeResolve events when appropriate. Since reflection.c is not 
25159         part of libmetadata, a new hook function called 
25160         mono_lookup_dynamic_token() is added to class.c which will call this.
25161
25162         * assembly.h assembly.c: make the invoke_load_hook function public,
25163         so it can be called for dynamic assemblies.
25164
25165         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
25166
25167         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
25168         type isn't found.
25169
25170         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
25171         MonoGHashTable, since it contains pointers to objects which the GC 
25172         needs to track.
25173
25174         * assembly.c (search_loaded): remove unused variable.
25175         
25176 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
25177
25178         * object.c: fixed issue exposed by gcc-generated IL programs
25179         that use RVA data for pointers.
25180
25181 2003-01-25  Martin Baulig  <martin@ximian.com>
25182
25183         * threads.c (start_wrapper): Moved the initialization of
25184         `start_func' above the mono_new_thread_init() call to which we
25185         pass it as argument.
25186
25187 2003-01-24  Martin Baulig  <martin@ximian.com>
25188
25189         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
25190         the MonoThread pointer.
25191
25192 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
25193
25194         * icall.c: Rename `PowImpl' to Pow.
25195
25196 2003-01-23  Dick Porter  <dick@ximian.com>
25197
25198         * threads.c (start_wrapper): Create a Thread object if needed, so
25199         the Main() thread can do the class initialisation in a subthread
25200         that has been set up to allow managed code execution.
25201
25202         Pass the thread ID instead of the MonoThread pointer to the thread
25203         start and attach callbacks.  This change is required, because the
25204         jit thread start callback must be called _before_ the Thread
25205         object can be created.
25206         
25207         (mono_thread_init): Removed much object creation code that is no
25208         longer needed.  No managed code is called from here now.
25209
25210         * object.c (mono_runtime_exec_managed_code): Create a subthread
25211         for Main, and call back to the runtime to use it.
25212         Set the exit code when Main exits.
25213
25214         * gc.c: Make sure domain finalisation happens in a subthread.
25215         Re-enable threaded GC, fixing bug 31333 (again).
25216
25217         * environment.c: System.Environment internall calls (so far just
25218         ExitCode is here, the others are still in icall.c)
25219
25220         * appdomain.c (mono_runtime_cleanup): All threads running managed
25221         code should have finished before mono_runtime_cleanup() is
25222         reached, so no need to clean up threads.
25223
25224 2003-01-22  Martin Baulig  <martin@ximian.com>
25225
25226         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
25227         `gpointer func' arguments.      
25228         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
25229         but added `MonoThread *thread' argument.
25230         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
25231
25232         * threads.c (mono_new_thread_init): Added `gpointer func' argument
25233         and pass it to the mono_thread_start_cb callback.
25234         (mono_install_thread_callbacks): New public function to install a
25235         set of callbacks which are set by the debugger.
25236         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
25237
25238 2003-01-22  Martin Baulig  <martin@ximian.com>
25239
25240         * Makefile.am: Install debug-mono-symfile.h.
25241
25242 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
25243
25244         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
25245
25246 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
25247
25248         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
25249         * class.c (mono_ptr_class_get): correctly set access levels of pointers
25250         (mono_array_class_get): correctly set access levels of arrays
25251
25252 2003-01-20      Patrik Torstensson
25253         * image.h (MonoAssemblyName): changed major, minor, build, revision
25254         from signed to unsigned.
25255
25256 2003-01-20  sean kasun <skasun@azstarnet.com>
25257
25258         * reflection.c (load_cattr_value): Now this handles
25259         MONO_TYPE_SZARRAY.  Fixes bug #35629
25260
25261 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
25262
25263         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
25264         integer value
25265
25266 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25267
25268         * decimal.c: fixed bug #26056.
25269
25270 2003-01-17  Martin Baulig  <martin@ximian.com>
25271
25272         * gc.c: Raise an ExecutionEngineException instead of using g_error().
25273
25274 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25275
25276         * exception.[ch]:
25277         (mono_get_exception_type_initialization): new function.
25278
25279         * object.c: throw a TypeInitializationException when an exception is
25280         thrown invoking the class constructor.
25281
25282 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25283
25284         * reflection.c: fixed attribute reading.
25285
25286 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25287
25288         * icall.c:
25289         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
25290         provided, look for the type in the calling assembly and then in
25291         mscorlib; if the assembly name is provided, only try that one.
25292
25293 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
25294
25295         * object.c: register the vtable before there is a chance it's
25296         queried again recursively.
25297
25298 2003-01-13  Duncan Mak  <duncan@ximian.com>
25299
25300         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
25301         gc-internal.h. 
25302         
25303 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
25304
25305         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
25306
25307 2003-01-11  Martin Baulig  <martin@ximian.com>
25308
25309         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
25310         this to 20 for the release.
25311
25312 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
25313
25314         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
25315
25316         * loader.c (mono_method_get_marshal_info): bug fix
25317
25318         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
25319         structures with explicit layout
25320
25321 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
25322
25323         * profiler.c: made the output more readable (and sorted). 
25324         Added caller information for the allocation profiler.
25325
25326 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
25327
25328         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
25329
25330 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25331
25332         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
25333         to get value types.
25334         
25335 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
25336
25337         * object.c, profiler.h, profiler.c, profiler-private.h:
25338         Added object allocation profiler.
25339
25340 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
25341
25342         * reflection.h, reflection.c: handle global methods.
25343         Compress blob entries.
25344
25345 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
25346
25347         * marshal.c: fix compilation.
25348
25349 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
25350
25351         * loader.c (mono_method_get_marshal_info): impl.
25352
25353         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
25354
25355 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25356
25357         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
25358         for reference types.
25359
25360 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
25361
25362         * loader.c: fixed off by one error in loaded parameter names.
25363
25364 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
25365
25366         * marshal.c (mono_marshal_get_icall_wrapper): like
25367         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
25368         instead of a MonoMethod.
25369
25370 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25371
25372         * decimal.c: fixed bug #36537.
25373
25374 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
25375
25376         * marshal.c: throw a missing method exception if a
25377         P/Invoke method is not found.
25378
25379 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
25380
25381         * icall.c: allow a null this for constructors.
25382
25383 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
25384
25385         * icall.c: raise the proper exceptions if the arguments to the
25386         internal Invoke are incorrect.
25387
25388 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
25389
25390         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
25391
25392 2003-01-03  Martin Baulig  <martin@ximian.com>
25393
25394         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
25395
25396 2002-12-31  Martin Baulig  <martin@ximian.com>
25397
25398         * debug-mono-symfile.c: Completely rewrote the type section.
25399         Instead of using individual malloc()ed fields, we use one big
25400         continuous memory area and offsets into this area.
25401         See the comments in the source code for details.
25402
25403 2002-12-30  Martin Baulig  <martin@ximian.com>
25404
25405         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
25406
25407 2002-12-30  Martin Baulig  <martin@ximian.com>
25408
25409         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
25410         line number table in this data blob instead of using an external
25411         pointer.
25412
25413 2002-12-28  Martin Baulig  <martin@ximian.com>
25414
25415         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
25416
25417 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
25418
25419         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
25420         as a boxed return type.
25421
25422 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
25423
25424         * appdomain.c
25425         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
25426         g_build_filename to properly get separators on the filename created.
25427
25428         * object.h: Small change, introduce MonoMarshalByRefObject to
25429         track the layout of that structure in the C# universe as we make
25430         changes there.
25431
25432 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
25433
25434         * object.c: removed assert to allow static fields on interfaces.
25435         * loader.c: a TypeSpec may be used for any type, not just arrays.
25436
25437 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
25438
25439         * class.c, class.h: added mono_class_array_element_size ().
25440         Ignore static methods in interfaces.
25441
25442 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25443
25444         * threads.c: fixed the build under cygwin.
25445
25446 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
25447
25448         * reflection.c: handle nullref constants. Allocate keys for
25449         reflection handles with the GC.
25450
25451 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
25452
25453         * threads.c, threads.h: added mono_thread_get_abort_signal()
25454         to get a suitable signal for thread abort.
25455
25456 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
25457
25458         * metadata.c: fix handling of ExportedType table.
25459
25460 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25461
25462         * icall.c: added WriteWindowsDebugString internal call.
25463
25464 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25465
25466         * reflection.h: added fields to match C# implementation.
25467
25468 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25469
25470         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
25471
25472 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
25473
25474         * gc.h, gc-internal.h: Rename header for GC internal calls to
25475         gc-internal.h from gc.h as to not clash with Boehm GC having its
25476         header installed as <gc.h> in outside include paths.
25477         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
25478         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
25479
25480 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25481
25482         * icall.c: assign minor, build and revision in FillName.
25483
25484 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
25485
25486         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
25487         Added support for running code generated by Reflection.Emit.
25488
25489 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25490
25491         * appdomain.c: check for NULL argument in LoadFrom.
25492
25493 2002-12-10  Dick Porter  <dick@ximian.com>
25494
25495         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
25496
25497 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25498
25499         * appdomain.c: fix buglet when building exe file name.  Handle full
25500         assembly name (needed after latest changes to AssemblyName).
25501         * image.c:
25502         (mono_image_close): free some hashtables.
25503
25504 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
25505
25506         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
25507         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
25508         on some systems (redhat 7.3) 
25509
25510 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
25511
25512         * threads.c: delete the critical section of a sync block,
25513         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
25514
25515 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
25516
25517         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
25518
25519 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25520
25521         * appdomain.[ch]: handle the assembly preload event to try loading the
25522         assemblies using the paths we have in the current domain.
25523
25524         * assembly.[ch]: created an assembly preload hook that is called to try
25525         loading the assembly by other means that the ones provided here.
25526
25527         * domain.c: initialize the domain search path.
25528
25529         From now on, assemblies (TODO: except corlib and System) are loaded
25530         according to these rules when using mono_assembly_load ():
25531
25532                 1. It tries to load the assembly from the ApplicationBase
25533                 of the current domain appending .dll and .exe (TODO: have to
25534                 try loading from name/name.dll and name/name.exe).
25535
25536                 2. It tries the search path specified in PrivateBinPath for the
25537                 current domain (if any).
25538
25539                 3. Previous behavior.
25540
25541 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
25542
25543         * icall.c: implemented GetInterfaceMap() related icall.
25544         * domain.c, loader.h: load MethodInfo in mono_defaults.
25545
25546 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
25547
25548         * gc.c: disable the finalizer thread for now, untill all the issues
25549         with it are resolved.
25550
25551 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
25552
25553         * string-icalls.c: handle embedded nulls in string ctor when the
25554         length is specified.
25555
25556 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
25557
25558         * class.c: look for explicit interface implementation in parent
25559         classes, too.
25560
25561 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
25562
25563         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
25564
25565 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
25566
25567         * gc.c: protect handles with a critical section.
25568
25569 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25570
25571         * icall.c:
25572         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
25573         parameters. If no assembly specified, try getting the type from all
25574         the assemblies in the current domain, else, load the assembly and get
25575         the type from it.
25576
25577 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25578
25579         * marshal.c: applied patch from Aleksey Demakov that fixes
25580         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
25581
25582 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25583
25584         * icall.c: fixed get_location.
25585
25586 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
25587
25588         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
25589         declarations to make it work with older gcc. 
25590
25591         * loader.c (mono_get_method): set signature->pinvoke for native calls
25592
25593 2002-11-20  Dick Porter  <dick@ximian.com>
25594
25595         * threads.c (mono_thread_init): Set the main thread's handle
25596
25597 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
25598
25599         * gc.c: allow compilation without GC support. Changed to match the
25600         mono coding style.
25601
25602 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
25603
25604         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
25605
25606 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
25607
25608         * reflection.c: set a public key token on the core assemblies.
25609
25610 2002-11-18  Dick Porter  <dick@ximian.com>
25611
25612         * threads.c: Split out some thread initialisation so that other
25613         files can set the start callback function.
25614
25615         * gc.c: Run finalisers in a separate thread, to avoid stack
25616         overflow.  Fixes bug 31333.
25617
25618         * appdomain.c: Set up GC finalisation thread.
25619
25620         * reflection.c: 
25621         * object.c: 
25622         * domain.c: Use gc.h macros for GC_malloc
25623         
25624 2002-11-15  Dick Porter  <dick@ximian.com>
25625
25626         * threadpool.c: 
25627         * threads.c:
25628         * appdomain.c: Removed mono_runtime_init_with_attach(),
25629         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
25630         merging the extra parameter with the existing function.  Removed
25631         unneeded code in mono_thread_attach().
25632
25633 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
25634
25635         * image.c (mono_image_loaded_by_guid): a method to get loaded
25636         images by guid. 
25637         (load_metadata_ptrs): we store the guid as string.
25638
25639 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
25640
25641         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
25642
25643         * metadata.c (mono_guid_to_string): imported method form Zoltan
25644         Varga (slightly modified)
25645
25646         * assembly.c (mono_assembly_open): load precompiled code
25647
25648         * loader.h (MonoMethod): we store the method token for use in the
25649         aot compiler. 
25650
25651 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25652
25653         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
25654         the hook function called when an assembly is loaded.
25655         
25656         * domain.c: Modified file.
25657         (mono_domain_assembly_load): removed hash table insertion of assemblies.
25658
25659         Fixes bug #33196.
25660
25661 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
25662
25663         * reflection.c: Map PEFileKind to the value expected by the WinNT
25664         image loader. 
25665
25666 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25667
25668         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
25669         Read until the buffer is filled completely.
25670
25671 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25672
25673         * icall.c: implemented MonoType.InternalGetEvent ().
25674
25675 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25676
25677         * appdomain.c: implemented InitAppDomainSetup. Delayed
25678         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
25679         the entry_assembly.
25680
25681         * assembly.c: base_dir is now an absolute path ending with
25682         G_DIR_SEPARATOR.
25683
25684         * icall.c: modified get_location according to the above changes.
25685
25686         * object.c: init AppDomain.SetupInformation for the default domain after
25687         we have the entry assembly.
25688
25689         * domain.c: when unloading a domain, setup = NULL.
25690
25691 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
25692
25693         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
25694
25695 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
25696
25697         * object.h, object.c: introduced mono_object_get_virtual_method ()
25698         to lookup the method invoked on an object when a callvirt is done on
25699         a method.
25700         * icall.c: make MethodInfo::Invoke() always do a virtual call.
25701
25702 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25703
25704         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
25705         current domain when loaded an assembly and failed to load it.
25706
25707         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
25708
25709 2002-10-31  Dick Porter  <dick@ximian.com>
25710
25711         * icall.c: 
25712         * file-io.h: 
25713         * file-io.c: Return the error status in a parameter, as the
25714         GetLastError() value has long since been blown away if we try and
25715         look it up in a subsequent internal call invocation.  Delete the
25716         GetLastError() internal call, because it's useless.
25717
25718 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
25719
25720         * class.[ch]: added cast_class to fix bug 29517
25721
25722 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
25723
25724         * marshal.c: create valid IL code in the filter clause:
25725         the new JIT is less forgiving:-)
25726
25727 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25728
25729         * icall.c: removed get_property internal call.
25730
25731 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
25732
25733         * appdomain.h domain.c: Added an ID to appdomains.
25734         
25735         * threads.c threads.h icall.c: Implement icall
25736         Thread:GetDomainID(), and remove unused icall 
25737         CurrentThreadDomain_internal.
25738
25739 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25740
25741         * icall.c: Don't recurse through the base types in GetConstructor.
25742         Fixes bug #32063. 
25743
25744 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
25745
25746         * mempool.h, mempool.c: added mono_mempool_empty() and
25747         mono_mempool_stats().
25748
25749 2002-10-23  Dick Porter  <dick@ximian.com>
25750
25751         * file-io.c: 
25752         * file-io.h: 
25753         * icall.c: Added MonoIO.GetFileType internal call
25754
25755 2002-10-17  Dick Porter  <dick@ximian.com>
25756
25757         * appdomain.c (mono_runtime_cleanup): Don't signal the async
25758         delegate semaphore before waiting for all threads to finish,
25759         because new threads can also call async delegates.  Fixes bug
25760         32004.
25761
25762         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
25763         of 3 seconds, in case another async job is queued.  (This part is
25764         needed because the bug fix reintroduced the 3s exit lag.)  This
25765         makes the mono_runtime_shutdown flag superfluous.
25766
25767 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
25768
25769         * reflection.c: include ehader size in method section headers.
25770         Really check for suplicated modules entries.
25771
25772 2002-10-17  Martin Baulig  <martin@gnome.org>
25773
25774         * debug-mono-symfile.c: Added back support for locals.
25775
25776 2002-10-14  Martin Baulig  <martin@gnome.org>
25777
25778         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
25779         MONO_TYPE_VOID.
25780
25781 2002-10-14  Martin Baulig  <martin@gnome.org>
25782
25783         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
25784         mono_class_get() instead of looking in the class cache. 
25785
25786 2002-10-13  Martin Baulig  <martin@gnome.org>
25787
25788         * debug-mono-symfile.c: Set version number to 28, include the
25789         signature in method names.
25790
25791 2002-10-13  Martin Baulig  <martin@gnome.org>
25792
25793         * debug-mono-symfile.h: Set version number to 27.
25794
25795 2002-10-11  Martin Baulig  <martin@gnome.org>
25796
25797         * gc.c: Don't register/unregister NULL pointers as disappearing links.
25798
25799 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
25800
25801         * metadata.c, metadata.h: added helper function to allocate signatures.
25802
25803 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25804
25805         * icall.c: added internal call to get the location of machine.config.
25806
25807 2002-10-08  Martin Baulig  <martin@gnome.org>
25808
25809         * debug-mono-symfile.c: Ignore classes with a pending init for the
25810         moment.
25811
25812 2002-10-03  Dick Porter  <dick@ximian.com>
25813
25814         * threads.c: Freebsd pthread_t is a pointer
25815
25816 2002-10-03  Dick Porter  <dick@ximian.com>
25817
25818         * socket-io.c: Implemented GetHostName_internal
25819
25820 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25821
25822         * mono-config.c:
25823         (mono_config_parse_file): don't leak the text.
25824
25825 2002-10-02  Martin Baulig  <martin@gnome.org>
25826
25827         * debug-mono-symfile.c: Added support for methods.
25828
25829 2002-10-01  Martin Baulig  <martin@gnome.org>
25830
25831         * debug-mono-symfile.c: Don't emit methods and line numbers for
25832         the dynamic symbol file, just write the type table.  We can easily
25833         have an external helper program which creates a symbol file for an
25834         IL file.        
25835
25836 2002-10-01  Dick Porter  <dick@ximian.com>
25837
25838         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
25839         Only add the handle to the cleanup array when we're about to
25840         launch the thread.  Bug 31425 deadlocked when the test was run on
25841         mono under w32.
25842
25843 2002-10-01  Martin Baulig  <martin@gnome.org>
25844
25845         * debug-mono-symfile.c: Added support for properties.
25846
25847 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
25848
25849         * reflection.c: unaligned store fix from Mark Crichton
25850         <crichton@gimp.org>.
25851
25852 2002-09-27  Martin Baulig  <martin@gnome.org>
25853
25854         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
25855         New interncall.
25856
25857 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
25858
25859         * assembly.h, assembly.c: use a sane API to hook into the assembly
25860         loading process instead of a useless special-purpouse hack
25861         (ngen needs a hook, too, for example).
25862
25863 2002-09-27  Dick Porter  <dick@ximian.com>
25864
25865         * threads.c (mono_thread_init): Call GetCurrentProcess() so
25866         io-layer can set up some process handle info.  Not needed on w32,
25867         but doesn't hurt either.
25868
25869         * process.c: Pass the program name in the second parameter to
25870         CreateProcess, so the path is searched.  Include the working
25871         directory. Implemented process name, process enumeration, and some
25872         process detail internal calls.
25873         
25874         * icall.c: Added internal calls for process lookup, and some
25875         process details
25876
25877 2002-09-26  Martin Baulig  <martin@gnome.org>
25878
25879         * assembly.c (mono_install_open_assembly_hook): New global
25880         function to install a function to be invoked each time a new
25881         assembly is loaded.
25882         (mono_assembly_open): Run this callback function if set.
25883
25884         * debug-mono-symfile.c: Put back line numbers for the dynamic
25885         symbol file and also record the .il file as source file.  This
25886         allows us to install the temporary symbol file as `file.dbg' just
25887         like a compiler-generated one.
25888
25889 2002-09-26  Nick Zigarovich <nick@chemlab.org>
25890
25891         * Corrected typo in gc.c (BOHEM vs BOEHM).
25892
25893 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
25894
25895         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
25896         GetProperties. Also avoid calling g_slist_length in GetProperties and
25897         GetMethods.
25898
25899 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
25900
25901         * reflection.c: avoid unaligned stores (bug spotted by
25902         Mark Crichton  <crichton@gimp.org>).
25903
25904 2002-09-25  Martin Baulig  <martin@gnome.org>
25905
25906         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
25907         instead of guint64 for addresses and added prologue/epilogue info.
25908
25909 2002-09-25  Martin Baulig  <martin@gnome.org>
25910
25911         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
25912         store line number info.  For the dynamic symbol file, we only need
25913         to provide the JIT generated dynamic line number info for the dynamic
25914         symbol file.
25915
25916 2002-09-25  Martin Baulig  <martin@gnome.org>
25917
25918         * debug-mono-symfile.h: Incremented version number.
25919
25920 2002-09-24  Martin Baulig  <martin@gnome.org>
25921
25922         * class.c (mono_debugger_class_init_func): New global function
25923         pointer variable.
25924         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
25925         call it.
25926
25927         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
25928         function.  This is called via the mono_debugger_class_init_func
25929         hook to add all types to the dynamic type table.
25930         (ves_icall_MonoDebugger_GetType): New interncall to get a class
25931         from its metadata token.
25932
25933         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
25934         New interncall for the debugger.
25935
25936 2002-09-24  Nick Drochak <ndrochak@gol.com>
25937
25938         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
25939         before using it in case it is null.
25940         
25941 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
25942
25943         * metadata.c: allow custom modifiers in local var signatures
25944         (bug spotted by Zoltan Varga).
25945
25946 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
25947
25948         * class.c: deal with the <Module> class that may have a NULL vtable.
25949         Eliminate warnings.
25950
25951 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
25952
25953         * image.c, image.h: more strong name helpers.
25954         * monosn.c: more work: convert pem keys to cryptoapi format.
25955
25956 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
25957
25958         * string-icalls.c: speedup IndexOf.
25959
25960 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
25961
25962         * icall.c: updates from Zoltan.2.Varga@nokia.com.
25963
25964 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
25965
25966         * icall.c: cleanup: use mono_object_domain ().
25967
25968 2002-09-23  Martin Baulig  <martin@gnome.org>
25969
25970         * debug-mono-symfile.c: Improved type support.
25971
25972 2002-09-22  Martin Baulig  <martin@gnome.org>
25973
25974         * debug-mono-symfile.c: Added support for reference types and strings.
25975
25976 2002-09-22  Martin Baulig  <martin@gnome.org>
25977
25978         * debug-mono-symfile.c: Started to work on the type table.
25979
25980 2002-09-21  Martin Baulig  <martin@gnome.org>
25981
25982         * debug-mono-symfile.c: Largely reworked the symbol table format.
25983         The symbol table is now incrementally updated each time a new
25984         method is added.  We're now also using our own magic and version
25985         so that you don't need to recompile all your classes if the
25986         dynamic table changes.
25987         (mono_debug_update_mono_symbol_file): Removed.
25988         (mono_debug_symfile_add_method): New function to add a method.
25989
25990 2002-09-21  Martin Baulig  <martin@gnome.org>
25991
25992         * icall.c
25993         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
25994         New interncall.
25995
25996         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
25997         New interncall to get a method from its metadata token.
25998
25999 2002-09-21  Martin Baulig  <martin@gnome.org>
26000
26001         * debug-mono-symfile.c: Create type table.
26002
26003 2002-09-20  Martin Baulig  <martin@gnome.org>
26004
26005         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
26006
26007 2002-09-20  Martin Baulig  <martin@gnome.org>
26008
26009         * debug-mono-symfile.c: Provide information about params and locals.
26010
26011 2002-09-20  Martin Baulig  <martin@gnome.org>
26012
26013         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
26014         New interncall.
26015
26016         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
26017         interncall to get a method from its metadata token.
26018
26019 2002-09-20  Martin Baulig  <martin@gnome.org>
26020
26021         * debug-mono-symfile.c: Added a few checks for method->header
26022         being non-NULL.  This should never happen, but for the moment
26023         let's use a g_warning() rather than a g_assert().
26024
26025 2002-09-19  Mark Crichton  <crichton@gimp.org>
26026
26027         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
26028         even if support for it isn't present.  Added an #ifdef to fix this.
26029
26030         * socket-io.c: Added checks back for Solaris support.
26031
26032 2002-09-19  Martin Baulig  <martin@gnome.org>
26033
26034         * debug-mono-symfile.c (read_string, write_string): Reflect latest
26035         changes in the symbol file format.
26036
26037 2002-09-18  Martin Baulig  <martin@gnome.org>
26038
26039         * debug-mono-symfile.c: Set version number to 21.
26040
26041 2002-09-18  Dick Porter  <dick@ximian.com>
26042
26043         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
26044         on netbsd.  Fixes bug 30051.
26045
26046 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26047
26048         * reflection.c:
26049         (set_version_from_string): little fix.
26050
26051 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
26052
26053         * monosn.c, Makefile.am: added strong name utility.
26054         * reflection.h, reflection.c: implemented delayed signing,
26055         locale, version and hash id assembly attributes.
26056
26057 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26058
26059         * loader.c, metadata.c: load param attributes in signatures.
26060
26061 2002-09-16  Martin Baulig  <martin@gnome.org>
26062
26063         * debug-mono-symfile.c: Added string table with all method names.
26064
26065 2002-09-14  Martin Baulig  <martin@gnome.org>
26066
26067         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
26068         fast method lookup.
26069
26070 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
26071
26072         * reflection.c: record the public key token of referenced assemblies.
26073
26074 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26075
26076         * image.c, image.h: added functions to get the strong name and the
26077         public key of an assembly.
26078         * pedump.c: use them.
26079
26080 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
26081
26082         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
26083
26084 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
26085
26086         * marshal.c (mono_marshal_get_managed_wrapper): Added
26087         MONO_TYPE_BOOLEAN 
26088
26089 2002-09-11  Martin Baulig  <martin@gnome.org>
26090
26091         * gc.c: Call GC_unregister_disappearing_link() on all links when
26092         finalizing them, this is necessary to aviod a crash in boehm's
26093         finalize handler.
26094
26095 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
26096
26097         * gc.c: handle GetTarget for finalized objects spotted and fixed by
26098         nick@chemlab.org.
26099
26100 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
26101
26102         * icall.c: implemented MonoType::Module.
26103         * reflection.c, reflection.h: mono_module_get_object () from
26104         Tomi Pakarinen <tomi.pakarinen@welho.com>.
26105
26106 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
26107
26108         * icall.c: ignore overridden methods in GetMethods ().
26109         Fix for FieldInfo::SetValue().
26110         * object.c: handle float/double in runtime invoke.
26111
26112 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
26113
26114         * object.c: allow a constructor to be called again on an object.
26115
26116 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
26117
26118         * class.h, class.c: move field layout code to it's own function and
26119         export it. Get an interface id earlier. Move fields in MonoClass
26120         so they are more cache friendly and align the bitfields.
26121         * loader.c: temporary handle get_param_names() for a runtime method.
26122         * reflection.c, reflection.h: more code to handle runtime creation of
26123         types.
26124
26125 2002-09-09  Martin Baulig  <martin@gnome.org>
26126
26127         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
26128         signature with the pinvoke field being set for the actual call.
26129
26130 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26131
26132         * icall.c: removed some unused icalls. Start of map of glib charsets
26133         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
26134
26135 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
26136
26137         * debug-helpers.c: break infinite loop (found and fixed by
26138         Holger Arnold <harnold@gmx.de>).
26139
26140 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
26141
26142         * icall.c: target may be null in create_delegate.
26143
26144 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
26145
26146         * marshal.c: handle a boolean return type.
26147
26148 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
26149
26150         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
26151
26152 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26153
26154         * gc.c: fix weakreferences.
26155
26156 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
26157
26158         * icall.c: added icall to get default codepage.
26159
26160 2002-09-03  Dick Porter  <dick@ximian.com>
26161
26162         * threads.h: 
26163         * threads.c: Use MonoThread instead of MonoObject where
26164         apropriate.
26165
26166         Store running thread objects in a hash table, so that we have all
26167         the info to hand when waiting for them to finish
26168         (means we don't need OpenThread() any more, so mingw builds should
26169         be fully functional again.)
26170
26171         * verify.c:
26172         * object.h: Added thread ID to MonoThread
26173
26174 2002-09-03  Martin Baulig  <martin@gnome.org>
26175
26176         * icall.c (System.Reflection.Assembly::get_location): New interncall.
26177
26178 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26179
26180         * icall.c: fixed leak in get_temp_path. Thanks lupus.
26181
26182 2002-09-03  Martin Baulig  <martin@gnome.org>
26183
26184         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
26185         argument to store the end address of the disassembled instruction.
26186
26187         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
26188         here from debug-symfile.h.
26189         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
26190         JIT into this struct.
26191         (MonoSymbolFile): Added `char *image_file' field.
26192         (MonoDebugGetMethodFunc): Removed.
26193         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
26194         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
26195         (mono_debug_find_method): New method.
26196
26197         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
26198         create a full symbol file.
26199         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
26200         and static symbol files.
26201         (mono_debug_find_method): The symbol file keeps an internal method hash,
26202         call this to get a MonoDebugMethodInfo from a MonoMethod.
26203
26204         * debug-symfile.[ch]: Removed.
26205
26206 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
26207
26208         * image.c (do_mono_image_open): Remove linker version check.
26209
26210 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
26211
26212         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
26213         wrappers for instance methods.
26214         
26215 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26216
26217         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
26218
26219 2002-08-28  Dick Porter  <dick@ximian.com>
26220
26221         * Makefile.am: Export HOST_CC for w32 builds
26222
26223 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
26224
26225         * file-io.c process.c: MonoString are null terminated, no
26226         need for mono_string_to_utf16() anymore.
26227
26228 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26229
26230         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
26231
26232 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
26233
26234         * icall.c, reflection.h: speedup System.MonoType.
26235
26236 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
26237
26238         * reflection.c: allow null as the value of a string argument in
26239         custom attributes constructors.
26240
26241 2002-08-27  Martin Baulig  <martin@gnome.org>
26242
26243         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
26244         `trampoline_address' field.
26245
26246 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
26247
26248         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
26249         check (fixes bug #29486) 
26250
26251 2002-08-27  Martin Baulig  <martin@gnome.org>
26252
26253         * debug-mono-symfile.c: Changed the file format in a way that allows us
26254         open it read-only and to use a specially malloced area for all the
26255         dynamic data.  We can now also generate a symbol file on-the-fly if we're
26256         debugging IL code and there is no MCS generated symbol file for it.
26257
26258 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
26259
26260         * object.c: added a define for a good string and array
26261         creation speedup (not enabled by default because we need to deal with
26262         the synch stuff).
26263
26264 2002-08-26  Martin Baulig  <martin@gnome.org>
26265
26266         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
26267         function to create a dynamic symbol file.  This is used by the
26268         debugger to create a symbol file for IL code on-the-fly.
26269
26270 2002-08-26  Martin Baulig  <martin@gnome.org>
26271
26272         * loader.c (mono_lookup_pinvoke_call): Include the error message
26273         from g_module_error() in the error message.
26274
26275 2002-08-24  Martin Baulig  <martin@gnome.org>
26276
26277         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
26278         function to update the symbol file.  The symbol file is mmap()ed
26279         writable, but private.  This allows us to install the symbol file
26280         together with the assembly.
26281
26282 2002-08-24  Martin Baulig  <martin@gnome.org>
26283
26284         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
26285         but they can read the new symbol file format which mcs is now creating.
26286
26287         * debug-symfile.c (mono_debug_find_source_location): Moved to
26288         debug-mono-symfile.c; this is now operating on the new symbol file.
26289
26290 2002-08-23  Martin Baulig  <martin@gnome.org>
26291
26292         * debug-helpers.c (mono_method_desc_from_method): New function to get
26293         a MonoMethodDesc from a MonoMethod.
26294
26295 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
26296
26297         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
26298         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
26299
26300 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
26301
26302         * string-icalls.[ch]: make helper methods static.
26303
26304 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26305
26306         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
26307         types to it and to SetValueInternal.
26308
26309         * object.c: Moved handle_enum label to its proper place. This was the
26310         f... bug! ;-)
26311
26312         This time i compiled mcs and gtk-sharp and they both work.
26313
26314 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26315
26316         * icall.c: reverted partially my previous patch until 
26317         object.c:set_value handles enums correcly.
26318
26319 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26320
26321         * icall.c:
26322         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
26323         (ves_icall_System_Environment_get_MachineName): removed warning when
26324         compiling under cygwin.
26325
26326 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26327
26328         * object.c: fixed field_get_value() for reference types.
26329
26330 2002-08-22  Dick Porter  <dick@ximian.com>
26331
26332         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
26333         Don't free a buffer while it's still needed.  Patch from Jonathan
26334         Liger <Jonathan.liger@wanadoo.fr>
26335
26336 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
26337
26338         * icall.c (ves_icall_System_Environment_get_Platform): Add new
26339         internal call.
26340
26341 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
26342
26343         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
26344         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
26345
26346         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
26347         we call unmanaged code which throws exceptions.
26348
26349 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
26350
26351         * appdomain.h: added per-domain entry_assembly.
26352         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
26353         arguments.
26354         * icall.c: Assembly::GetEntryAssembly icall.
26355         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
26356         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
26357
26358 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
26359
26360         * appdomain.h, gc.c: added mono_domain_finalize ().
26361
26362 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26363
26364         * object.c:
26365         (mono_print_unhandled_exception): changed g_warning by g_printerr
26366         because g_log has a 1024 characters limit (yeah, i got a big stack
26367         trace). Don't print exception name, that should be in ToString 
26368         returned string.
26369
26370 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26371
26372         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
26373         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
26374
26375 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26376
26377         * object.c:
26378         (mono_print_unhandled_exception): after previous commit, i realized
26379         that MS calls ToString on the exception. I changed this function to
26380         do that. This way we get stack_trace for free.
26381
26382 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26383
26384         * object.c:
26385         (mono_print_unhandled_exception): invoke Message property instead of
26386         getting 'message' field from Exception. Don't allocate memory for
26387         'trace' and 'message' if not needed.
26388
26389 2002-08-18  Dick Porter  <dick@ximian.com>
26390
26391         * unicode.c: Fix asserts to match Encoder.cs checks
26392
26393 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26394
26395         * marshal.c: fix unaligned store issue and a few wrong
26396         opcode argument types.
26397
26398 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26399
26400         * icall.c: added GetUninitializedObjectInternal internal call.
26401
26402 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
26403
26404         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
26405         to the right domain.
26406
26407 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
26408
26409         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
26410
26411         * class.c (class_compute_field_layout): set blittable to false for Strings
26412
26413         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
26414
26415 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26416
26417         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
26418         first chunk of code to create types at runtime. Code to
26419         handle ReflectedType/DeclaringType. Make reflection handles
26420         domain specific.
26421
26422 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
26423
26424         * class.c: set correct name in arrays.
26425
26426 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
26427
26428         * appdomain.c (mono_domain_transfer_object): make it work with
26429         valuetypes. bug fixes.
26430
26431 2002-08-12  Dick Porter  <dick@ximian.com>
26432
26433         * object.h: Rename some parameters to avoid c++ keywords (Patch
26434         from Joseph Wenninger <kde@jowenn.at>)
26435
26436 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
26437
26438         * icall.c: added icall to implement Assembly.GetFile*.
26439
26440 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
26441
26442         * reflection.h, reflection.c: code to embed managed resources.
26443
26444 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
26445
26446         * class.c: move all the type size stuff into
26447         class_compute_field_layout().
26448
26449 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
26450
26451         * class.c: ensure enums have always the correct instance size.
26452         * unicode.c: remove wrong assert.
26453
26454 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
26455
26456         * assembly.c: fix mem corruption issue.
26457         * image.h, image.c: added mono_image_get_resource () to access
26458         managed resources.
26459         * icall.c: implemented Assembly.EntryPoint property and some
26460         Managed Resources related internalcalls.
26461
26462
26463 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
26464
26465         * image.c, image.h: impemented mono_image_get_entry_point ().
26466         * appdomain.c: use mono_image_get_entry_point.
26467
26468 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
26469
26470         * reflection.c: support the object type argument when loading
26471         custom attributes.
26472
26473 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
26474
26475         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
26476         String as return type.
26477
26478 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
26479
26480         * reflection.c: fix encoding of named args for custom attrs to match
26481         the ms implementation. Read them back when instantiating custom
26482         attributes.
26483
26484 2002-08-02  Radek Doulik  <rodo@ximian.com>
26485
26486         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
26487         by Dietmar as quick fix
26488         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
26489         16 as stack size, used on more places as quick fix before Dietmar
26490         will fix it properly
26491
26492 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
26493
26494         * object.h, object.c: added accessors for fields and properties.
26495
26496 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
26497
26498         * class.c, class.h: made mono_class_get_field_from_name ()
26499         loop on parent types.
26500         Added mono_class_get_property_from_name ().
26501
26502 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26503
26504         * class.c, class.h: move the code to setup the type vtable in its own
26505         function so that it can be reused also for types created at runtime.
26506         Eliminate the "class" identifier from the header file.
26507         * reflection.c: setup the vtable for enums so that we can create
26508         objects for use in SetConstant ().
26509
26510 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
26511
26512         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
26513         instead of the delegate itself as this pointer (bug #28383)
26514
26515 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
26516
26517         * marshal.c (mono_marshal_get_managed_wrapper): added return type
26518         conversions.
26519
26520 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26521
26522         * loader.c: don't set the pinvoke bit on icalls.
26523
26524 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
26525
26526         * debug-helpers.c (mono_method_full_name): only print a number to
26527         indicate wrapper type (so that the output is more readable in traces).
26528
26529 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
26530
26531         * class.c (mono_class_init): include method override patch from Paolo
26532
26533 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
26534
26535         * icall.c: fixed GetTypeCode().
26536
26537 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
26538
26539         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
26540         use real delegate invoke function to make it work with multicast
26541         delegates (fix bug# 28291).
26542
26543 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
26544
26545         * object.c: load constant strings.
26546
26547 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
26548
26549         * reflection.c: no magic numbers.
26550         * tabledefs.h: security action enum.
26551
26552 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26553
26554         * assembly.c: fix possible memory corruption.
26555
26556 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
26557
26558         * reflection.h, reflection.c: added support for linking resources.
26559         * verify.c: check we have an updated corlib.
26560
26561 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
26562
26563         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
26564         string arrays.
26565         (mono_marshal_string_array): null terminate unmanaged string arrays.
26566         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
26567
26568 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
26569
26570         * icall.c: Type.GetType () can now return also types from the
26571         calling assembly.
26572
26573 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
26574
26575         * loader.h, loader.c: stack walking support.
26576         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
26577         GetCallingAssembly.
26578
26579 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
26580
26581         * marshal.c: added optimisations for blittable types 
26582
26583         * class.c (mono_array_class_get): do not set blittable attribute on arrays
26584         (mono_class_setup_mono_type): set blittable attribute for single
26585         and double.
26586
26587         * marshal.c (mono_string_utf8_to_builder): impl.
26588         (mono_string_builder_to_utf8): impl.
26589         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
26590
26591 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
26592
26593         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
26594         (mono_marshal_get_managed_wrapper): impl. byref types
26595
26596 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26597
26598         * icall.c:
26599         (search_method): don't display debug message. 
26600
26601 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
26602
26603         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
26604
26605 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
26606
26607         * appdomain.c: set the missing filename when throwing exception.
26608
26609 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
26610
26611         * metadata.c (mono_type_size): code cleanup
26612         (mono_type_stack_size): removed some test code
26613
26614 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
26615
26616         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
26617         mono_get_exception_file_not_found now.
26618
26619         * exception.c (mono_exception_from_name_two_strings): New version
26620         that will call a constructor with two string arguments. 
26621         (mono_get_exception_file_not_found): New helper routine, used to
26622         report file-not-found errors.
26623
26624 2002-07-20  Dick Porter  <dick@ximian.com>
26625
26626         * process.h:
26627         * process.c: Pass file handles to CreateProcess
26628         
26629         * icall.c:
26630         * file-io.h:
26631         * file-io.c: Implemented CreatePipe
26632
26633 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
26634
26635         * metadata.c (mono_get_param_info): set alignment for value types
26636
26637 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
26638
26639         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
26640         Constify mono_domain_assembly_open().
26641         * loader.c: handle null namespace in icalls.
26642
26643 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
26644
26645         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
26646         (emit_str_to_ptr_conv): marshal object as structs
26647
26648         * metadata.c (mono_type_to_unmanaged): marshal object as structs
26649
26650         * marshal.c (mono_marshal_get_runtime_invoke): support value types
26651
26652 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
26653
26654         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
26655         (mono_marshal_get_native_wrapper): we an now return value types
26656
26657 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26658
26659         * verify.c: more checks implemented.
26660
26661 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
26662
26663         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
26664         (fix bug #27695)
26665         (mono_marshal_get_native_wrapper): allow byref arguments
26666         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
26667         impl. PtrToStringXXX methods
26668         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
26669         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
26670         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
26671         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
26672         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
26673
26674 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26675
26676         * reflection.c: fix buglet in parsing an assembly name.
26677
26678 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
26679
26680         * marshal.c (emit_ptr_to_str_conv): first impl.
26681
26682 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
26683
26684         * object.c, class.h: cache the vtable in the class as suggested by
26685         vargaz@freemail.hu (Zoltan Varga).
26686
26687 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26688
26689         * class.h, loader.c: added mono_field_from_token().
26690         * verify.c: first cut of type checking code.
26691
26692 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
26693
26694         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
26695
26696 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
26697
26698         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
26699         (fix bug #27782)
26700         (mono_marshal_get_remoting_invoke): impl.
26701         (mono_delegate_begin_invoke): impl.
26702         (mono_mb_emit_save_args): impl.
26703         (mono_delegate_end_invoke): impl.
26704         (mono_marshal_get_delegate_begin_invoke):
26705         (mono_marshal_get_delegate_end_invoke):
26706         (mono_marshal_get_delegate_invoke): generate a special name for
26707         those methods (including the signature) and associate them whith
26708         the delegate class. 
26709
26710 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
26711
26712         * reflection.[ch]: 
26713         (mono_reflection_type_from_name): now it has a MonoImage parameter
26714         which is used as the default image to search the type in. If the image
26715         is NULL or getting the type from it fails, it defaults to corlib.
26716
26717         * icall.c: changed 1 call to mono_reflection_type_from_name to match
26718         new parameter.
26719
26720 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
26721
26722         * reflection.c: update the parameter table index.
26723
26724 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26725
26726         * domain.c: don't include the mark byte in the string hash.
26727
26728 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26729
26730         * icall.cs: icall for Type.GetTypeCode ().
26731         * verify: a couple of fixes and disabled local initialization checks.
26732
26733 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
26734
26735         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
26736
26737         * debug-helpers.c (mono_method_full_name): print the type of the
26738         runtime wrapper
26739
26740         * metadata.c (mono_signature_hash): a hash function for signatures
26741         (mono_signature_hash): better hash algorithm
26742
26743         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
26744
26745         * debug-helpers.c (mono_method_full_name): this can now generate
26746         method names with signatures
26747
26748         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
26749         method dont have this pointers.
26750
26751 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
26752
26753         * reflection.c: fixup typebuilder tokens.
26754         * image.c: fix buglet.
26755         * marshal.h: remove whitespace.
26756         * metadata.h, metadata.c: reinstate code that was removed.
26757         * verify.c: handle catch directives and fix another couple of bugs.
26758
26759 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
26760
26761         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
26762         (mono_marshal_get_native_wrapper): make it comp. with the old code
26763         (mono_marshal_get_native_wrapper): support boolean
26764         (mono_marshal_get_managed_wrapper): support more types
26765
26766 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
26767
26768         * class.c (class_compute_field_layout): compute class->blittable attribute.
26769
26770 2002-07-09  Dick Porter  <dick@ximian.com>
26771
26772         * threads.c: Make the thread cleaning up cope with threads that
26773         call ExitThread()
26774
26775 2002-07-08  Radek Doulik  <rodo@ximian.com>
26776
26777         * reflection.c (method_encode_code): use non-translated values to
26778         compute finally_start, this fixes exception handling on ppc, yay!
26779
26780         * decimal.h (struct signscale): fix endianess
26781
26782 2002-07-07  Radek Doulik  <rodo@ximian.com>
26783
26784         * reflection.c: swap box_val and not val
26785
26786 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
26787
26788         * reflection.c, reflection.h: handle full assembly info in type name.
26789         Handle Type arguments when loading custom attributes.
26790         * icall.c: updated to use new mono_reflection_type_from_name () method.
26791
26792 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26793
26794         * loader.c:
26795         (method_from_memberref): also print assembly name when method not found.
26796
26797 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26798
26799         * icall.c:
26800         (ves_icall_TypeGetProperties): fixed bug #27473. 
26801
26802 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
26803
26804         * reflection.c: display image name and token when cannot find the
26805         .ctor for an attribute.
26806
26807 2002-07-05  Martin Baulig  <martin@gnome.org>
26808
26809         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
26810
26811 2002-07-04  Dick Porter  <dick@ximian.com>
26812
26813         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
26814         compile on mingw.  This will cause mingw builds to not wait for
26815         subthreads to terminate after the main thread does.  I've lodged a
26816         bug with the mingw developers for them to wrap OpenThread().
26817
26818 2002-07-03  Dick Porter  <dick@ximian.com>
26819
26820         * threads.c: Store thread IDs instead of handles, because
26821         GetCurrentThread() returns a pseudohandle and therefore stores
26822         useless values.  mono_thread_cleanup() continues checking the
26823         array of threads until it is empty, to cope with subthreads
26824         spawning new threads after the main thread has finished.
26825
26826         * profiler.h:
26827         * profiler.c:
26828         * profiler-private.h: Pass the thread ID to thread profiler
26829         functions, instead of a handle
26830
26831 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
26832
26833         * verify.c: fixes to make it more usable.
26834         * pedump.c: added --verify code to verify IL code in an assembly.
26835
26836 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26837
26838         * reflection.c: turn errors into warnings to allow compiling corlib.
26839
26840 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
26841
26842         * reflection.c: add special cases to compile corlib.
26843
26844 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26845
26846         * reflection.c: handle properties with only a set method.
26847
26848 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
26849
26850         * opcodes.h: add enum with opcodes in opval order.
26851
26852 2002-07-01  Dick Porter  <dick@ximian.com>
26853         
26854         * object.h:
26855         * object.c (mono_runtime_run_main): Removed unneeded argument
26856
26857 2002-06-28  Martin Baulig  <martin@gnome.org>
26858
26859         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
26860
26861 2002-06-27  Dick Porter  <dick@ximian.com>
26862
26863         * threads.c: Store the handle in both the parent thread and in the
26864         subthread, to minimise the time between starting a new thread and
26865         storing its ID.
26866
26867 2002-06-26  Dick Porter  <dick@ximian.com>
26868
26869         * appdomain.c (mono_runtime_cleanup): Close the socket library
26870         after all the threads have finished, not before
26871
26872 2002-06-26  Martin Baulig  <martin@gnome.org>
26873
26874         * debug-symfile.c (mono_debug_find_source_location): Added
26875         `guint32 *line_number' argument.  If it's not NULL, store the line number
26876         there and return the file name without the line number.
26877
26878 2002-06-25  Dick Porter  <dick@ximian.com>
26879
26880         * icall.c:
26881         * process.h:
26882         * process.c: Process forking and other support functions
26883
26884 2002-06-25  Dick Porter  <dick@ximian.com>
26885
26886         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
26887         things dont happen when the image is closed.
26888         (mono_image_lookup_resource): Walk the resource section looking
26889         for a particular entry
26890
26891         * cil-coff.h: PE resource section decoding
26892
26893 2002-06-25  Dick Porter  <dick@ximian.com>
26894         
26895         * assembly.h:
26896         * assembly.c: 
26897         (mono_assembly_foreach): Accessor functions to walk the list of
26898         loaded assemblies
26899         (mono_assembly_set_main):
26900         (mono_assembly_get_main): Process methods need to know which
26901         assembly is the "main" one
26902
26903         * object.c (mono_runtime_run_main): Record the main assembly
26904
26905         * debug-helpers.c: Fix typo
26906
26907 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
26908
26909         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
26910         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
26911
26912 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
26913
26914         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
26915
26916 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
26917
26918         * image.c (do_mono_image_open): Initialize reference count,
26919         otherwise we leak the MonoImage.
26920
26921 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
26922
26923         * reflection.c: small tweak to handle self-hosting.
26924
26925 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
26926
26927         * reflection.c: fix type name parse code.
26928
26929 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
26930
26931         * reflection.c: break out of the loop.
26932         * image.c: special case corlib.
26933
26934 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
26935
26936         * reflection.c: add all the custom attrs at the end to ensure the
26937         ctors have been properly initialized when the attributes are defined
26938         in the current assembly.
26939
26940 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26941
26942         * reflection.c: handle correctly multiple-nested types.
26943
26944 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
26945
26946         * row-indexes.h: fix typos.
26947         * reflection.c: adjust for typos and fix method_def_or_ref
26948         encoding in MethodImpl table.
26949
26950 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26951
26952         * reflection.c: fix entry point patching (thanks Serge!).
26953
26954 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
26955
26956         * verify.c: add check for System.Exception
26957
26958 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
26959
26960         * image.c, class.c: minifix for code just c&p'ed.
26961         * reflection.c: warning fix.
26962         * object.h, loader.h, domain.c: load also StringBuilder.
26963
26964 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
26965
26966         * marshal.h, marshal.c: some support code to handle complex marshaling.
26967
26968 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26969
26970         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
26971         Better signatures with vtable error dump.
26972
26973 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
26974
26975         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
26976
26977 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
26978
26979         * icall.c (ves_icall_Type_GetField): impl.
26980
26981 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
26982
26983         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
26984         to retrieve a marshal description blob for a field or param.
26985
26986 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
26987
26988         * reflection.h, reflection.c: change order of nested type emission
26989         to avoid table corruption. The NestedTypes table is sorted.
26990         * icall.c: change order of GetConstructor results to workaround mcs bug.
26991
26992 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
26993
26994         * reflection.h, reflection.c: handle field and param marshal
26995         information.
26996
26997 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
26998
26999         * icall.c, marshal.c marshal.h: more Marshal class implementation.
27000
27001 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
27002
27003         * reflection.c: fix call convention.
27004
27005 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
27006
27007         * reflection.h, reflection.c: mono_image_get_memberref_token()
27008         takes a type instead of a class, now. Added
27009         mono_image_get_array_token() to create tokens for the special
27010         multi-dim array methods.
27011
27012 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
27013
27014         * assembly.c: handle modules (no assembly table). Split
27015         loading references in its own function.
27016         * class.c: handle moduleref resolution scope.
27017         * image.c, image.h: cache module name in image.
27018
27019 2002-06-07  Martin Baulig  <martin@gnome.org>
27020
27021         * reflection.c (mono_image_get_type_info): Only add a class layout entry
27022         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
27023
27024 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
27025
27026         * icall.c: more signature fixes that used uint instead of int.
27027
27028 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
27029
27030         * reflection.c: fixed signature of field refs.
27031
27032 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27033
27034         * class.c, reflection.c: handle typerefs of nested types
27035         (both on read and when writing files).
27036
27037 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
27038
27039         * icall.c: fix method signatures that tried to workaround the previous
27040         typo, d'oh!
27041
27042 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
27043
27044         * debug-helpers.c: fix typo.
27045
27046 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
27047
27048         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
27049         rewrote the PE/COFF writing code (our programs are understood by the
27050         ms runtime, now).
27051
27052 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
27053
27054         * gc.c, gc.h, icall.c: weakreference support.
27055
27056 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
27057
27058         * Makefile.am, mono-config.c: use $(sysconfdir).
27059
27060 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
27061
27062         * icall.c: changed default precision of Double.ToString() to 15.
27063         Fixed memory leak. Unified with Single.ToString.
27064
27065 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
27066
27067         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
27068
27069 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
27070
27071         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
27072         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
27073         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
27074         and myself.
27075
27076 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
27077
27078         * debug-symfile.c, sysmath.c: yet more compilation fixes.
27079
27080 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
27081
27082         * reflection.c, socket-io.c: more compilation fixes.
27083
27084 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
27085
27086         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
27087         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
27088         unicode.c: warning and compiler compatibility fixes.
27089
27090 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
27091
27092         * class.h, metadata.c: fixed warnings/compilation errors.
27093
27094 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
27095
27096         * Makefile.am, mono-config.c, mono-config.h: configuration file
27097         support routines.
27098         * loader.c, loader.h: make Dll mapping configurable at runtime in the
27099         config file. Export methods to insert and lookup mappings.
27100
27101 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
27102
27103         * reflection.c: handle types and boxed objects in custom attr
27104         constructors.
27105
27106 2002-05-30  Martin Baulig  <martin@gnome.org>
27107
27108         * debug-symfile.c
27109         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
27110
27111 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
27112
27113         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
27114         to lookup the implmap row for a P/Invoke method.
27115         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
27116         P/Invoke method from the runtime on an as needed basis.
27117
27118 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
27119
27120         * metadata.c (mono_metadata_parse_signature): impl.
27121
27122 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
27123
27124         * class.c: handle .pack directive.
27125
27126 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
27127
27128         * object.c: initialize static fields with RVA data.
27129
27130 2002-05-25  Martin Baulig  <martin@gnome.org>
27131
27132         * debug-symfile.c
27133         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
27134
27135 2002-05-24  Martin Baulig  <martin@gnome.org>
27136
27137         * debug-symfile.c
27138         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
27139         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
27140         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
27141
27142 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
27143
27144         * object.c: special case string ctros in invoke.
27145         * gc.c: silly whitespace changes.
27146
27147 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
27148
27149         * threadpool.[ch]: impl. a threadpool that can
27150         be used by mint and mono.
27151
27152 2002-05-22  Martin Baulig  <martin@gnome.org>
27153
27154         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
27155         The first argument is now a `MonoReflectionModuleBuilder *', the return
27156         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
27157         `methods' field to get the method builder.  The `token' argument is the
27158         unfixed token.
27159
27160         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
27161         invalid characters instead of g_assert_not_reached()ing.  This seems
27162         to be the behaviour of mscorlib.
27163
27164 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
27165
27166         * object.c (mono_runtime_invoke_array): applied patch from Rachel
27167         Hestilow to fix bug #25104
27168
27169 2002-05-21  Martin Baulig  <martin@gnome.org>
27170
27171         * debug-symfile.c (mono_debug_find_source_location): New function.
27172         Looks up an IL offset in the line number table and returns the source
27173         location as a string.
27174
27175 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27176
27177         * icall.c:
27178         (mono_double_ToStringImpl): changed %f by %g until we have something
27179         better.
27180
27181 2002-05-21  Nick Drochak  <ndrochak@gol.com>
27182
27183         * icall.c : Use different name for Math.Pow's icall.  Needed to check
27184         parameters first in C#.
27185
27186 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
27187
27188         * icall.c, reflection.h: added icall to get info about an event.
27189
27190 2002-05-20  Radek Doulik  <rodo@ximian.com>
27191
27192         * object.c (mono_value_box): don't use memcpy for boxing on BIG
27193         endian
27194         (mono_value_box): don't use memcpy for small sizes on
27195         architectures with unaligned access
27196
27197 2002-05-20  Martin Baulig  <martin@gnome.org>
27198
27199         * reflection.c (mono_reflection_setup_internal_class): Don't crash
27200         if `tb->parent == NULL'.
27201         (mono_reflection_create_internal_class): New function.  This is
27202         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
27203         for enum types.
27204
27205         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
27206         New interncall.
27207
27208 2002-05-19  Martin Baulig  <martin@gnome.org>
27209
27210         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
27211         argument to get the length, don't default to the array length.
27212
27213 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
27214
27215         * assembly.c (mono_assembly_setrootdir): New function used to
27216         override the MONO_ASSEMBLIES directory.
27217
27218 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
27219
27220         * icall.c: ValueType_GetHashCode() initialize local var.
27221
27222 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
27223
27224         * reflection.c: sort custom attributes table.
27225
27226 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
27227
27228         * reflection.c: support named args in custom attributes (write support).
27229
27230 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
27231
27232         * reflection.c: fix finally position calculation.
27233
27234 2002-05-15  Radek Doulik  <rodo@ximian.com>
27235
27236         * reflection.c: fixed endianess at many places
27237
27238         * icall.c (ves_icall_InitializeArray): comment out debug msg
27239
27240 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
27241
27242         * object.c (mono_unhandled_exception): new function to handle
27243         unhandled exceptions.
27244         (mono_unhandled_exception): call the UnhandledException event.
27245         (mono_runtime_delegate_invoke): impl.
27246
27247 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
27248
27249         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
27250         returns the RVA, not the direct pointer to the data. Handle the case
27251         when the class size is fixed.
27252
27253 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
27254
27255         * reflection.c: fix some endianess issues.
27256
27257 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
27258
27259         * object.c (mono_runtime_invoke): is now able to catch exceptions.
27260
27261         * threads.c (mono_thread_init): added a callback which is invoked
27262         at thread start.
27263
27264 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
27265         
27266         * icall.c: make GetHashCode return non-negative values.
27267
27268 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
27269
27270         * object.c, icall.c, gc.c: revert to address-based hashcode.
27271
27272 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
27273
27274         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
27275
27276 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
27277
27278         * icall.c, class.c: special case <Module>.
27279
27280 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
27281
27282         * icall.c: fix bug in GetNow().
27283
27284 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
27285
27286         * object.c (mono_runtime_class_init): make sure that we call all
27287         static class constructors.
27288
27289 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
27290
27291         * reflection.c: sort methodsemantics table.
27292
27293 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
27294
27295         * reflection.h, reflection.c: honour init locals setting.
27296
27297 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
27298
27299         * icall.c: copied Double ToStringImpl for Single ToStringImpl
27300
27301 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
27302
27303         * reflection.c: support ContructorBuilders in attribute blob creation.
27304
27305 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27306
27307         * reflection.c: some changes to build a binary that can be run
27308         directly in windows.
27309
27310 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
27311
27312         * loader.c: print a big message when an icall can't be found.
27313
27314 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27315
27316         * string-icalls.c: fix bug 24248.
27317
27318 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
27319
27320         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
27321         icall.c, reflection.h: separate assembly loading by pathname and by
27322         assembly name. Use the MONO_PATH env var to search for assemblies.
27323
27324 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
27325
27326         * assembly.c, image.h: add some support for assemblies
27327         with multiple modules.
27328         * class.c, class.h: export mono_class_from_typeref().
27329         * loader.c: remove duplicated code and use mono_class_from_typeref(),
27330         instead.
27331
27332 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
27333
27334         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
27335         documentation says (the ECMA one is correct).
27336
27337 2002-05-02  Dick Porter  <dick@ximian.com>
27338
27339         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
27340         Don't name the synchronisation mutex.
27341
27342 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
27343
27344         * rand.c
27345         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
27346         Make the prototypes match.
27347         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
27348         Same.
27349
27350         * icall.c
27351         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
27352         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
27353         all systems have tm.tm_zone, so use strftime() with %Z to print
27354         the timezone abreviation into a temp string.
27355
27356         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
27357         rather than mono_array_addr() on a MonoString on Big Endian
27358         machines.
27359
27360 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
27361
27362         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
27363         fix bug 24041
27364
27365 2002-04-30  Dick Porter  <dick@ximian.com>
27366
27367         * socket-io.c: Cope with SOCKET being an integer rather than a
27368         pointer now.
27369
27370         * threads.c: Added Thread_free_internal, to deal with thread
27371         handle cleanup.  Moved calls to handle_store() and handle_remove()
27372         to start_wrapper(), so each can only be called once.  Allocate
27373         synchronisation blocks with GC_malloc(), and use GC finalisation
27374         to close the handles.
27375
27376         * icall.c: added System.Threading.Thread::Thread_free_internal
27377
27378 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
27379
27380         * icall.c: support Environment.Exit, CommandLineArgs().
27381
27382 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
27383
27384         * object.c, object.h: added mono_runtime_run_main () and
27385         mono_runtime_get_main_args () for use in System.Environment.
27386
27387 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
27388
27389         * gc.c: fix thinko, enable actual finalization since the jit is now
27390         fixed.
27391
27392 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
27393
27394         * gc.c, object.c: take into account that an object may be offset wrt the address
27395         returned by GC_malloc().
27396
27397 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
27398
27399         * image.c: handle files without entries in the assembly table (modules).
27400
27401 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
27402
27403         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
27404         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
27405         allowed to be null when it's System.Object class setup.
27406
27407 2002-04-27  Martin Baulig  <martin@gnome.org>
27408
27409         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
27410         if `tb->parent == NULL' rather than crashing.
27411
27412 2002-04-28  Nick Drochak  <ndrochak@gol.com>
27413
27414         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
27415         calling acos() where asin() should have been called.
27416
27417 2002-04-26  Martin Baulig  <martin@gnome.org>
27418
27419         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
27420         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
27421         there's a subdirectory called `System', but we don't want to read that
27422         subdirectory as an assembly.
27423
27424 2002-04-25  Martin Baulig  <martin@gnome.org>
27425
27426         * debug-symfile.c: Reflect latest MonoString changes.
27427
27428 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
27429
27430         * rand.c, rand.h: instance method icalls need to have an explicit
27431         this pointer as first argument in the C implementation.
27432
27433 2002-04-25  Nick Drochak <ndrochak@gol.com>
27434
27435         * icall.c: Fix typo in map for GetNonZeroBytes
27436
27437 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
27438
27439         * string-icalls.c : String does now passes unit tests without any 
27440         errors, the following changes has been made:
27441         
27442         Implemented replace methods.
27443         Renaming of methods to (try) follow the standard.
27444         Fixed compare ordinal
27445         Made all memory allocated directly to function instead of via icall function.
27446         Small performance fix in is_in_array function
27447                         
27448  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
27449
27450         c (mono_string_Internal_ctor_charp_int_int):
27451         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
27452         sindex < 0, throw ArgumentOutOfRangeException instead of
27453         ArgumentNullException.
27454
27455         Added new check for length == 0, however
27456         I need to make it return String.Empty from the C code.
27457         
27458         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
27459         that calculate the length for us here.
27460         
27461         (mono_string_Internal_ctor_sbytep_int_int): Replaced
27462         mono_string_new_utf16 with mono_string_new, since value is utf8.
27463
27464 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
27465
27466         * object.c: register the object for finalization if needed.
27467         Allocate one more char in the string for the terminating 0 char.
27468
27469 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
27470
27471         * class.c, class.h, image.c: check if a type implemenst a destructor.
27472         Use the proper key for array class lookups.
27473         * icall.c: register the icalls in the System.GC class.
27474         * gc.c, gc.h: GC-related functions and icalls.
27475
27476 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27477
27478         * icall.c:
27479         * socket-io.c:
27480         * unicode.c: free some strings gotten from mono_string_to_utf8 and
27481         changed a couple of free () by g_free ().
27482
27483         * decimal.c: one-liner in the comments for decimal2string ().
27484
27485 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
27486
27487         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
27488
27489 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
27490
27491         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
27492         * object.c (mono_runtime_invoke_array) : handle null in params
27493
27494 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
27495
27496         * string-icalls.c: fixed bug in split (one off bug)
27497
27498 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
27499
27500         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
27501         * icalls.c: added String::Equals as internal method
27502
27503 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
27504
27505         * threads.c: fixed bug in the double interlocked functions
27506
27507 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
27508
27509         * threads.c: implemented all of the new interlocked icalls.
27510         * string-icalls.c: fix a bug in insert.
27511         * icalls.c: added the icalls for interlocked, removed old string functions.
27512         
27513 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
27514
27515         * loader.c: fix off-by-one error when reading argument names.
27516
27517 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27518
27519         * profiler.c: win32 counter implementation (untested).
27520         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
27521         (the latter needs testing and more complete impl. from win32 folks).
27522
27523 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
27524
27525         * object.c: mono_array_new_full workaround mono_array_class_get
27526         problem.
27527
27528 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
27529
27530         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
27531         * object.h (mono_string_chars): Changed casting type.
27532
27533 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
27534
27535         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
27536                            method signatures to use gunichar2 instead of gint16.
27537
27538 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
27539
27540         * object.h, object.c: domain-specific versions of mono_object_new and
27541         mono_array_new.
27542
27543 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
27544
27545         * object.c: changed String layout
27546
27547         * string-icalls.c (mono_string_Internal_ctor_chara): added
27548         internal string constructors.
27549
27550 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
27551
27552         * threads.c: pass 'this' to the thread start routine.
27553
27554 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27555
27556         * string-icalls.c: fix IndexOf and LastIndexOf. Now
27557         InternalCompareStr don't call twice mono_string_cmp_char for the last
27558         character. Improved performance in mono_string_cmp_char.
27559
27560 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
27561
27562         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
27563         code into its own library: libmonoruntime.
27564
27565 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
27566
27567         * object.h, object.c: changed array format so that szarrays do not
27568         require a bounds structure.
27569         * icall.c, appdomain.c: support for new szarray format.
27570
27571 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
27572
27573         * metadata.c: compare also the retuns type when comparing signatures:
27574         we didn't do this as an optimization since really overloaded methods
27575         must differ also in the arguments, but this doesn't work with
27576         low-level IL code (or when using explicit conversion operators: see
27577         bug#23498 for an example).
27578
27579 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
27580
27581         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
27582
27583 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
27584
27585         * icall.c: make MonoType::GetElementType its own icall.
27586
27587 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
27588
27589         * icall.c: remove MonoMethod_get_Name().
27590         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
27591         object.
27592
27593 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
27594
27595         * string-icalls.c: optimized a few methods.
27596
27597 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
27598
27599         * icall.c: added all new string internal calls
27600         * string-icalls.c: added, new string internal call implementation.
27601         * object.c: added mono_string_new_size for allocating a string a size
27602
27603 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
27604
27605         * object.c (mono_object_isinst): use the same code as in the
27606         optimized x86 version.
27607
27608 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
27609
27610         * profiler.c: TSC-based timer code (faster and more accurate).
27611         Not hooked up in configure, yet (set USE_X86TSC to 1).
27612
27613 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
27614
27615         * profiler.c, profiler.h: track time spent compiling methods.
27616         * threads.c: track thread creation/destruction.
27617
27618 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
27619
27620         * profiler.c, profiler.h, profiler-private.h: profiling interface
27621         and sample implementation. Moved here so that it can be used also by
27622         the jit.
27623
27624 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
27625
27626         * reflection.c, reflection.h: keep types and other handles separate in
27627         the hash tables for referred tokens. Add guid for modules.
27628
27629 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
27630
27631         * assembly.c: fix bugs found with valgrind.
27632         * metadata.h, metadata.c: added mono_metadata_guid_heap().
27633
27634 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
27635
27636         * threads: added icall support for getting current domain for
27637                    the thread.
27638  
27639 2002-04-13  Martin Baulig  <martin@gnome.org>
27640
27641         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
27642         (MonoDebugVarInfo): Added `index' field for register based addresses.
27643         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
27644         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
27645         `MonoDebugVarInfo *params' and `guint32 this_offset' with
27646         `MonoDebugVarInfo *this_var'.
27647
27648         * debug-symfile.c (relocate_variable): New static function to write
27649         a location description for a local variable or method parameter.
27650
27651 2002-04-12  Martin Baulig  <martin@gnome.org>
27652
27653         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
27654         stack offset and begin/end scope address of a local variable.
27655         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
27656         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
27657         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
27658
27659         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
27660         Added new relocation types for start/end scope of a local variable.
27661
27662 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
27663
27664         * object.h: add mono_object_domain() macro.
27665         * reflection.c: handle typespecs.
27666         * icall.c: MonoMethod::get_Name() implementation.
27667
27668 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27669
27670         * icall.c: String::GetHashCode() icall implementation.
27671
27672 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
27673
27674         * icall.c: String::IndexOfAny icall.
27675         * object.c, object.h: make array->max_length more useful.
27676         Intrduced mono_object_class() and mono_string_length() macros.
27677
27678 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
27679
27680         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
27681         instead of g_unichar_isdigit.
27682
27683 2002-04-11  Nick Drochak  <ndrochak@gol.com>
27684
27685         * icall.c: Implement a simple Double.ToString().
27686
27687 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
27688
27689         * appdomain.h: only io-layer.h is supposed to be included.
27690         * icall.c: explicitly import environ. Fix warning.
27691
27692 2002-04-10  Nick Drochak  <ndrochak@gol.com>
27693
27694         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
27695                 return true even if it's not Daylight Savings time.
27696                 Only return false for the case where the function isn't
27697                 implemented for a plaform (read Windows).
27698
27699 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
27700
27701         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
27702         data with a mutex.
27703
27704 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
27705
27706         * mempool.c (mono_mempool_alloc): only use g_malloc when
27707         absolutely necessary.
27708
27709 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
27710
27711         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
27712
27713         * class.c (mono_class_vtable): use domain mempool to allocate vtable
27714         (mono_class_proxy_vtable): use domain mempool
27715
27716 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
27717
27718         * appdomain.h, appdomain.c: split initialization that requires the
27719         execution engine support into mono_runtime_init().
27720
27721 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
27722
27723         * class.c (mono_class_init): don't include vtable inside MonoClass
27724         to save some memory, gather some statistics.
27725         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
27726
27727 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
27728
27729         * icall.c: internalcall implementation for ValueType.Equals().
27730
27731 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
27732
27733         * object.c (mono_message_init): moved 
27734         (mono_runtime_exec_main): new arch. independent impl.
27735         (mono_runtime_invoke_array): new method - like
27736         mono_runtime_invoke, but you can pass an array of objects.
27737         (mono_remoting_invoke): new arch. independent impl.
27738         (mono_message_invoke): new arch. independent impl.
27739         (mono_runtime_class_init): new arch. independent impl.
27740         (mono_runtime_object_init): new arch. independent impl.
27741
27742 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
27743
27744         * metadata.c, object.c, reflection.c: documented the exported
27745         functions.
27746
27747 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
27748
27749         * icall.c: simpler code to pass the assembly builder data to corlib.
27750         Implement GetNestedTypes() internalcall.
27751
27752 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
27753
27754         * class.c: warn if a type can't be loaded.
27755
27756 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
27757
27758         * image.h: typedef MonoImageOpenStatus
27759         * types.h: removed unused file
27760         
27761 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
27762
27763         * icall.c: Enum_ToObject accepts enum value arguments.
27764
27765 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
27766
27767         * class.c: move initialization of properties, events and nested
27768         classes, so that they happen for interfaces, too.
27769
27770 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
27771
27772         * icall.c: cleanup some ugly casts in Array_SetValue*.
27773
27774 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
27775
27776         * icall.c: the values array fro enums is of the correct type, now.
27777         Implement (correctly) getFullName instead of assQualifiedName for
27778         MonoType.
27779         * reflection.h, reflection.c: added mono_type_get_name ().
27780
27781 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
27782
27783         * assembly.c, image.h: for each MonoImage, record from wich assembly
27784         it was loaded.
27785         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
27786         Make Type.Assembly work.
27787
27788 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
27789
27790         * debug-symfile.h: use char* instead of gpointer to avoid
27791         unnecessary casts.
27792
27793         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
27794
27795         * icall.c (ves_icall_InternalExecute): impl. FielSetter
27796         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
27797
27798 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
27799
27800         * icall.c (mono_message_init): impl. (code cleanup)
27801         (ves_icall_InternalExecute): impl. FieldGetter
27802
27803         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
27804         defined we call all (non-static)methods through the vtable. 
27805
27806 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
27807
27808         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
27809         finalizer even though the memory is still referenced (and the chunk of
27810         memory is not freed).
27811
27812 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
27813
27814         * assembly.c: fix brokeness.
27815
27816 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
27817
27818         * class.c: kill some warnings. Check explicit interface method
27819         implementation also without considering the namespace.
27820         Load also literal strings in static class data.
27821
27822 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
27823
27824         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
27825         (default_assembly_name_resolver): Make the resolver take the
27826         "base" directory where the assembly was originally defined, so we
27827         can load DLLs that are in the same directory as the assembly that
27828         is being referenced.
27829
27830 2002-03-28  Dick Porter  <dick@ximian.com>
27831
27832         * file-io.h: 
27833         * file-io.c:
27834         * socket-io.c: 
27835         * unicode.h: 
27836         * unicode.c: Warning cleanups
27837
27838 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
27839
27840         * object.h, reflection.h: use the correct type instead of MonoObject.
27841
27842 2002-03-28  Martin Baulig  <martin@gnome.org>
27843
27844         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
27845         (mono_debug_update_symbol_file): Initialize classes if necessary.
27846
27847 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
27848
27849         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
27850         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
27851
27852 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
27853
27854         * assembly.h: fix function prototype.
27855         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
27856         * mono-endian.h: use const cast.
27857
27858 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
27859
27860         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
27861
27862 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
27863
27864         * loader.c: don't assert when a typeref can't be loaded, give
27865         a chance to the runtime to trow an exception instead.
27866         * loader.h: fix warning.
27867
27868 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
27869
27870         * class.c (mono_class_proxy_vtable): added proxy support
27871
27872 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
27873
27874         * icall.c: removed last of PAL calls, added System.Environment
27875         * file-io.h, file-io.c: MonoIO implementation
27876         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
27877
27878 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
27879
27880         * appdomain.c: do not use the byte marker in ldstr table lookup.
27881         * debug-helpers.c: allow two ':' to separate class and method name.
27882         * object.c: allocate arrays bounds with the GC, too.
27883         * verify: add a few more checks.
27884
27885 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
27886
27887         * reflection.c: output also literal strings. Allocate parameter data
27888         with GC_malloc() (thanks, Martin, for catching this!).
27889
27890 2002-03-26  Martin Baulig  <martin@gnome.org>
27891
27892         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
27893         include the `this' offset in the `param_offsets'.
27894
27895 2002-03-25  Martin Baulig  <martin@gnome.org>
27896
27897         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
27898         mono_debug_get_class() function to get the classes. Added new
27899         relocation types for arrays and strings.
27900         (mono_debug_get_class): New static function to search in all
27901         referenced assemblies for a metadata token.
27902
27903         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
27904
27905 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
27906
27907         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
27908         hold gc-allocated objects. Make the string heap a stream like the
27909         others. Removed duplicated code when writing stream info.
27910         Added asserts to catch possible buffer overflows. Set the sorted map
27911         for tables that need sorting. Added some documentation.
27912
27913 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
27914
27915         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
27916         for interned strings and vtables.
27917
27918 2002-03-24  Martin Baulig  <martin@gnome.org>
27919
27920         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
27921         it in the array since it was created with g_slist_prepend().
27922
27923 2002-03-24  Martin Baulig  <martin@gnome.org>
27924
27925         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
27926         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
27927         (mono_debug_method_from_token): Renamed to
27928         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
27929         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
27930
27931         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
27932         relocation types.
27933
27934         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
27935
27936 2002-03-24  Martin Baulig  <martin@gnome.org>
27937
27938         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
27939         (mono_debug_method_from_token): New func.
27940
27941         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
27942         New interncall, calls mono_debug_local_type_from_signature().
27943         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
27944         calls mono_debug_method_from_token().
27945
27946 2002-03-23  Martin Baulig  <martin@gnome.org>
27947
27948         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
27949         specifies the number of bytes to be converted, not the array size.
27950         Return the number of chars, not the number of bytes.
27951         (ves_icall_iconv_get_chars): The `byteCount' argument
27952         specifies the number of bytes to be converted, not the array size.
27953
27954 2002-03-23  Martin Baulig  <martin@gnome.org>
27955
27956         * reflection.h (MonoReflectionSigHelper): New type.
27957
27958         * reflection.c (mono_reflection_sighelper_get_signature_local),
27959         (mono_reflection_sighelper_get_signature_local): New functions.
27960
27961         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
27962         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
27963         interncalls.
27964
27965 2002-03-23  Martin Baulig  <martin@gnome.org>
27966
27967         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
27968         is_writeable is set.
27969         (mono_raw_buffer_update): New function to write the modified map
27970         back to disk.
27971
27972         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
27973
27974         * debug-symfile.c (mono_debug_update_symbol_file): Call
27975         mono_raw_buffer_update() when done writing.
27976
27977 2002-03-23  Martin Baulig  <martin@gnome.org>
27978
27979         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
27980
27981         * debug-symfile.c: Added support for arguments and local variables.
27982
27983 2002-03-23  Dick Porter  <dick@ximian.com>
27984
27985         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
27986         protected by ifdefs, hence breaking the w32 build.
27987
27988 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
27989
27990         * object.c: implement is_interned() the right way.
27991
27992 2002-03-21  Martin Baulig  <martin@gnome.org>
27993
27994         * debug-symfile.[ch]: New files to handle debugging information
27995         files. There's also support to dynamically update these symbol
27996         files to include machine dependent information.
27997
27998 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
27999
28000         * threads.c (mono_thread_create): new function to create thread
28001         from C
28002
28003 2002-03-20  Martin Baulig  <martin@gnome.org>
28004
28005         * icall.c (ves_icall_InternalInvoke): Create a new object if the
28006         method is a constructor.
28007         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
28008         points to ves_icall_InternalInvoke().
28009
28010 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
28011
28012         * file-io.c: Flush shouldn't throw exceptions.
28013
28014 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
28015
28016         * file-io.c: FileStream flush support; FileSetLength now
28017         restores file pointer.
28018
28019 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
28020
28021         * class.c: set image for pointer classes.
28022
28023 2002/03/19  Nick Drochak <ndrochak@gol.com>
28024
28025         * sysmath.c: Forgot one.
28026
28027 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
28028
28029         * sysmath.c: Avoid redefining existing names.
28030
28031 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
28032
28033         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
28034         handled by runtime as icall rather than dllimport from libm.so
28035         * file-io.c, file-io.h: fixed handle argument type.
28036
28037 2002-03-18  Dick Porter  <dick@ximian.com>
28038
28039         * reflection.c (mono_image_get_type_info): rename interface to
28040         iface, because of "#define interface struct" on windows.
28041
28042 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
28043
28044         * class.c, class.h: rename and export mono_ptr_class_get().
28045         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
28046         * reflection.c, reflection.h, icall.c: better/saner type name
28047         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
28048         method signatures.
28049
28050 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
28051
28052         * class.c (mono_class_init): removed hardcoded GHC_SLOT
28053
28054         * icall.c (ves_icall_InternalInvoke): impl.
28055
28056 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
28057
28058         * reflection.c: output the interface map table, too.
28059
28060 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
28061
28062         * class.c (class_compute_field_layout): separate computation of 
28063         static field layout
28064
28065 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
28066
28067         * icall.c: added System.Buffer support.
28068         * file-io.c: moved file icalls from PAL to FileStream.
28069
28070 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
28071
28072         * icall.c (ves_icall_System_Object_GetHashCode): impl.
28073
28074 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
28075
28076         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
28077
28078 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28079
28080         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
28081
28082 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
28083
28084         * debug-helpers.{c,h}: moved here from monograph some useful functions
28085         to locate a method by name/signature in a class or image. Included
28086         also a small and flexible IL disassembler.
28087
28088 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
28089
28090         * reflection.c: fixup tokens in methods with small header size, too.
28091
28092 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
28093
28094         * object.c (mono_string_to_utf8): remove assert(!error), instead
28095         print a warning. 
28096
28097 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
28098
28099         * icall.c: update to the new mono_Array_class_get interface.
28100
28101 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
28102
28103         * appdomain.c, object.c: Boehm-GC enable.
28104         * icall.c: make get_data_chunk() support split data requests.
28105         Ensure a class is initialized in more cases. Return only the first
28106         property found in GetProperties() or the compiler gets confused. 
28107         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
28108         * reflection.h, reflection.c: add fixup mechanism for field and method
28109         tokens. Initialize assembly->typeref in a single place. Output
28110         properties after events. Support custom attributes for events, too.
28111         Typo fix for paramter custom attrs.
28112
28113 2002-03-07  Martin Baulig  <martin@gnome.org>
28114
28115         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
28116
28117 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
28118
28119         * class.c (mono_array_class_get): fix. for multi. dim. arrays
28120
28121 2002-03-06  Martin Baulig  <martin@gnome.org>
28122
28123         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
28124         non-zero lower bounds. See testcases #F10-#F13.
28125
28126 2002-03-05  Martin Baulig  <martin@gnome.org>
28127
28128         * exception.c (mono_get_exception_argument_out_of_range): New exception.
28129
28130         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
28131         ves_icall_System_Array_GetValue(), only calculate the absolute array position
28132         here.
28133         (ves_icall_System_Array_SetValue): Likewise.
28134         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
28135         as argument and does the actual work. This function is used when copying a
28136         multi-dimensional array.
28137         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
28138         now do all the widening conversions of value types.
28139         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
28140
28141 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28142
28143         * class.c: remove some magic numbers and use the smbolic names,
28144         instead. Added init_events() to load event info at class init time.
28145         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
28146         and mono_metadata_methods_from_event().
28147         * reflection.h, reflection.c: added support for writing out the evnets
28148         related information.
28149
28150 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
28151
28152         * reflection.h, icall.c: use a different method (GetInterfaces)
28153         to gather interface info and add isbyref, isprimitive and
28154         ispointer to the ves_icall_get_type_info() return value.
28155
28156 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
28157
28158         * class.h: stared adding support for events.
28159         * icall.c: split find_members implementation. Added debug icall to get
28160         the address of an object.
28161         * reflection.c: handle TypeBuilders in mono_type_get_object().
28162
28163 2002-03-01  Martin Baulig  <martin@gnome.org>
28164
28165         * icall.c (ves_icall_System_Array_GetLength): This must throw an
28166         ArgumentOutOfRangeException(), not an ArgumentException().
28167         (ves_icall_System_Array_GetLowerBound): Likewise.
28168         (ves_icall_System_Array_GetValue): Improved argument checking.
28169         (ves_icall_System_Array_SetValue): Improved argument checking.
28170
28171 2002-03-01  Martin Baulig  <martin@gnome.org>
28172
28173         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
28174         called with invalid arguments rather than just dying with g_assert().
28175         (ves_icall_System_Array_SetValue): Likewise.
28176         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
28177         raise a NotImplementedException instead.
28178         (ves_icall_System_Array_GetLength): Added argument checking.
28179         (ves_icall_System_Array_GetLowerBound): Added argument checking.
28180
28181 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
28182
28183         * object.h (mono_assert): new macros mono_assert and
28184         mono_assert_not_reached
28185
28186 2002-02-28  Martin Baulig  <martin@gnome.org>
28187
28188         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
28189         and "System::String::IsInterned" to "System::String::_IsInterned".
28190
28191 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
28192
28193         * icall.c: remove hacks for typebuilder. Added icall to create a
28194         modified type from a tybebuilder.
28195         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
28196         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
28197         to create a backing MonoClass for a TypeBuilder.
28198
28199 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28200
28201         * class.c, class.h: more refactoring of class init.
28202         Export mono_class_setup_mono_type() and mono_class_setup_parent().
28203
28204 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
28205
28206         * marshal.c, marshal.h: start of marshaling interface.
28207
28208 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
28209
28210         * icall.c: fix order in assembly qualified name icall.
28211
28212 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
28213
28214         * class.c: do not free str, since we store it in the hash table.
28215         * reflection.h: add label field to MonoILExceptionInfo.
28216         * reflection.c: handle references to more than one assembly. Handle
28217         case when there isn't a module created in the assembly.
28218
28219 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
28220
28221         * class.c: Fix typo. Start refactoring of class init code.
28222
28223 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
28224
28225         * appdomain.c: exit with 1 on error.
28226         * class.c: we already have the name in MonoClassField.
28227         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
28228         MonoStreamHeader instead of an offset of image->raw_metadata.
28229
28230 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
28231
28232         * appdomain.c (mono_init): Be even more descriptive about the error.
28233
28234 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
28235
28236         * appdomain.c: give the user an informative message when corlib can't
28237         be loaded.
28238
28239 2002-02-26  Martin Baulig  <martin@gnome.org>
28240
28241         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
28242         New icall to get the time zone data.
28243
28244 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28245
28246         * reflection.c: set virtual and raw size of section correctly.
28247         * threads.c: transfer domain information to newly created threads.
28248
28249 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
28250
28251         * class.c: when instancing a class in a domain, load the default
28252         vaules for static fields from the constant table. Fix System.Enum to
28253         not be an enum.
28254         * icall.c: implement Object::GetType() internalcall. Implemented
28255         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
28256         Fixed checking of binding flags in find_members().
28257         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
28258         * reflection.c: handle enumerations when writing to the constant
28259         table. Use a different object cache for types.
28260
28261
28262 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
28263
28264         * object.c (mono_object_isinst): fix for arrays
28265
28266         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
28267
28268 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
28269
28270         * object.c: don't use mprotect ()  and fix intern pool hash table
28271         lookup for big endian systems.
28272
28273 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
28274
28275         * icall.c: change type_is_subtype_of () signature.
28276
28277 2002-02-21  Mark Crichton  <crichton@gimp.org>
28278
28279         * rand.c, rand.h: Added random number generator for
28280         System.Security.Cryptography classes.
28281
28282         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
28283
28284         * icall.c: Added System.Security.Cryptography calls.
28285
28286 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
28287
28288         * class.c, icall.c, metadata.c: better support for pointer types.
28289         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
28290         * reflection.c: Add support for getting custom attrs for properties
28291         and simplify some code.
28292
28293 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
28294
28295         * icall.c: change getToken () and add custom attribute GetBlob()helper
28296         method.
28297         * reflection.h: add custom attrs array to the reflection builder structures.
28298         * reflection.c: encode and emit custom attributes for all the relevant
28299         reflection objects. Cache fieldref and methodref tokens. Change
28300         mono_image_create_token() interface to take a MonoDynamicAssembly.
28301         More complete custom attributes decoder. Load custom attributes for
28302         Assembly, Field, Method and Constructor objects, too. Make the
28303         returned array an Attribute[] one, not object[]. Added
28304         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
28305         custom attribute constructor.
28306
28307 2002-02-20  Dick Porter  <dick@ximian.com>
28308
28309         * icall.c:
28310         * rawbuffer.c:
28311         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
28312         problem code out for now).
28313
28314 2002-02-19  Radek Doulik  <rodo@ximian.com>
28315
28316         * object.c (mono_ldstr): use hash table to avoid multiple swapping
28317
28318 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
28319
28320         * icall.c: register the GetCustomAttributes method.
28321         * object.c, object.h: add mono_string_new_len ().
28322         * reflection.h, reflection.c: added mono_runtime_invoke(),
28323         mono_install_runtime_invoke(). Added
28324         mono_reflection_get_custom_attrs () to load custom attributes and
28325         create the attribute objects.
28326
28327 2002-02-19  Dick Porter  <dick@ximian.com>
28328         * threads-dummy-types.c:
28329         * threads-dummy-types.h:
28330         * threads-dummy.c:
28331         * threads-dummy.h:
28332         * threads-pthread-types.c:
28333         * threads-pthread-types.h:
28334         * threads-pthread.c:
28335         * threads-pthread.h:  Deleted obsolete files
28336
28337 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
28338
28339         * class.c (mono_class_vtable): runtime init the class when we
28340         allocate static class data.
28341
28342         * icall.c (ves_icall_System_Array_SetValue): check for null values.
28343
28344         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
28345         and String - but we will need generic marshalling support in the
28346         future. 
28347         (mono_init): set the domain name in a ms compatible way
28348
28349         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
28350         String[].
28351
28352 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
28353
28354         * object.c (mono_array_clone): use alloca() instead of g_malloc  
28355         for sizes
28356
28357         * appdomain.c (mono_domain_unload): impl.
28358
28359 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
28360
28361         * appdomain.c, object.c: fix intern pool implementation.
28362         * class.c: fix alignment code.
28363
28364 2002-02-16  Radek Doulik  <rodo@ximian.com>
28365
28366         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
28367         and s2 > s1, just copy lower bytes to be compatible with little
28368         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
28369         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
28370
28371         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
28372         force big_endian to be 1 for big endian machines 
28373         (ves_icall_iconv_new_decoder): ditto
28374
28375 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
28376
28377         * socket-io.c (convert_sockopt_level_and_name): If the system
28378         doesn't define SOL_IP or SOL_TCP, get them by hand using
28379         getprotobyname() and caching the values (because this could be a
28380         slow operation).
28381         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
28382         Use the appropriate struct when the system does support it. Ie,
28383         not all systems have struct ip_mreqn so use struct ip_mreq when
28384         appropriate.
28385
28386 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
28387
28388         * reflection.c: handle finally clauses.
28389
28390 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
28391
28392         * socket-io.c: use g_snprintf() instead of snprintf.
28393
28394 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
28395
28396         * reflection.c (mono_param_get_objects): Cast second argument to
28397         mono_method_get_param_names to a const char** to silence the
28398         compiler warning.
28399
28400         * appdomain.c (mono_domain_assembly_open): Put parens around the
28401         truth statement in the for-loop.
28402
28403         * unicode.c (iconv_convert): Got rid of a compiler warning about
28404         int i being unused when the system has a new iconv.
28405         (iconv_get_length): Same.
28406
28407         * image.c (load_class_names): Cast the second argument to
28408         g_hash_table_insert() to char* to hush compiler warnings about the
28409         arg being a const.
28410         (mono_image_open): Same here.
28411
28412         * socket-io.c: Don't conditionally include sys/filio.h or
28413         sys/sockio.h here anymore since we now get them from
28414         io-layer/io-layer.h
28415         (inet_pton): If the system doesn't support inet_aton, implement
28416         using inet_addr and also #define INADDR_NONE if it isn't defined
28417         by the system.
28418
28419 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
28420
28421         * metadata.c, metadata.h: added function to get packing and size info
28422         of a typedef.
28423         * reflection.h, reflection.c: handle field RVA data. Save info about
28424         the table layout if needed. Assign typedef indexes to all the types
28425         before dumping the info about them to avoid forward reference problems.
28426
28427 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
28428
28429         * socket-io.c (convert_sockopt_level_and_name): ifdef
28430         SO_ACCEPTCONN because it is not defined on my system (old debian)
28431
28432 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
28433
28434         * opcode.c: use stddef.h to get NULL.
28435
28436 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
28437
28438         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
28439         for FIONBIO, FIONREAD and SIOCATMARK.
28440         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
28441         define INADDR_NONE and besides, inet_addr() is deprecated and
28442         should not be used. Use inet_pton() instead - it also has the
28443         added bonus that it can easily handle IPv6 addresses as well.
28444         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
28445
28446 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
28447
28448         * decimal.c: remove _MSC_VER conditional.
28449
28450 2002-02-13  Dick Porter  <dick@ximian.com>
28451
28452         * socket-io.c: 
28453         * icall.c: Internal calls for Blocking, Select, Shutdown,
28454         GetSocketOption and SetSocketOption
28455
28456 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28457
28458         * assembly.cs: better resolver: use it instead of some kludgy
28459         code.
28460
28461 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
28462
28463         * reflection.c: the best way to speed-up the compiler is to avoid
28464         infinite loops.
28465
28466 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
28467
28468         * class.c (mono_class_vtable): changed the object layout
28469         (obj->vtable->class). 
28470         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
28471
28472 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
28473
28474         * assembly.c: look for assemblies in the assembly dir, too.
28475
28476 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28477
28478         * class.c: fix thinko in mono_class_from_type().
28479
28480 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
28481
28482         * exception.h, exception.c: added TypeLoadException.
28483         * object.h, object.c: added mono_array_clone ().
28484         * icall.c: handle throwOnError in AssemblyGetType().
28485         Added Array.Clone().
28486         * opcode.h, opcode.c: use a single value for the opcode val.
28487         Compile fix for non-gcc compilers.
28488
28489 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
28490
28491         * opcodes.c, opcodes.h: export interesting info about opcodes.
28492
28493 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
28494
28495         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
28496         icalls. 
28497
28498         * class.c (class_compute_field_layout): set element_class for enums
28499         (mono_class_create_from_typedef): set element_class for normal classes
28500
28501         * icall.c (ves_icall_System_Enum_get_value): impl.
28502
28503         * class.c (mono_class_create_from_typedef): do not set valuetype
28504         flag for System.ValueType and System.Enum
28505
28506 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
28507
28508         * unicode.c (iconv_convert): fix big endian problem.
28509
28510 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
28511
28512         * class.c: add asserts if we are ever going to scribble over memory.
28513         * socket-io.c: not all systems have AF_IRDA defined.
28514
28515 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
28516
28517         * class.c (class_compute_field_layout): do not consider static
28518         fields to compute alignment
28519
28520 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
28521
28522         * appdomain.c (mono_appdomain_get): impl.
28523         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
28524
28525 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
28526
28527         * icall.c: ignore "file://" prefix when loading an assembly.
28528
28529 2002-01-23  Dick Porter  <dick@ximian.com>
28530
28531         * socket-io.c:
28532         * icall.c:
28533         * Makefile.am: Added socket support
28534
28535 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
28536
28537         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
28538         code back.  This should return the assemblies that are loaded by
28539         the runtime on behalf of an application domain. 
28540
28541         The current implementation is still broken, it just returns every
28542         assembly loaded, but until we get real applications domain this
28543         will do.
28544
28545 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
28546
28547         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
28548         AppDomain object.
28549
28550 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
28551
28552         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
28553         the mono_class_from_name lookup.
28554         (ves_icall_get_parameter_info): ditto.
28555         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
28556         method.
28557         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
28558
28559 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
28560
28561         * class.c: load also nested classes on class init.
28562         System.ValueType instance methods gets passed boxed
28563         values, unless methods in derived classed that get a pointer to the
28564         data.
28565         * icall.c: use better name parsing code in GetType().
28566         * image.c, image.h: add mono_image_loaded ().
28567         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
28568         * reflection.c, reflection.h: added mono_reflection_parse_type().
28569
28570 2002-01-22  Veronica De Santis <veron78@interfree.it>
28571
28572         * icall.c : Added mapping of internal calls for Manual and Auto reset events
28573         * threads.c : Added the implementation of internal calls for events
28574         * threads.h : Added prototypes of internal calls for events
28575         
28576 2002-01-21  Radek Doulik  <rodo@ximian.com>
28577
28578         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
28579
28580 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
28581
28582         * class.c (mono_class_init): set min_align to 1 (instead of 0)
28583         (mono_class_value_size): use min_align
28584
28585 2002-01-20  Dick Porter  <dick@ximian.com>
28586
28587         * threads.h:
28588         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
28589         so it compiles on w32.
28590
28591 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
28592
28593         * metadata.c (mono_type_stack_size): impl.
28594
28595         * class.c (mono_class_get_field): impl. memberref token
28596
28597 2002-01-16 Veronica De Santis <veron78@@interfree.it>
28598
28599         * icall.h : Added the internal calls mapping for CreateMutex_internal
28600                     and ReleaseMutex_internal.
28601         * threads.h : Added the prototype of mutexes internal calls.
28602         * threads.c : Added the implementations of mutexes internal calls.
28603
28604 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
28605
28606         * metaparse.h: removed unused file.
28607         * reflection.c, reflection.h: added stream_data_align () function 
28608         to align data in streams and keep stream aligned. Add support for
28609         exception support in method headers.
28610
28611 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
28612
28613         * unicode.c: make iconv_convert () return the number of bytess written
28614         in the output buffer.
28615
28616 2002-01-15  Dick Porter  <dick@ximian.com>
28617         * threads.c: Make the runtime's idea of infinite timeouts coincide
28618         with the class library's
28619
28620         Fix a particularly egregious bug in mono_thread_cleanup(). That
28621         code was so utterly bogus it must have been written on a Monday.
28622
28623 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
28624
28625         * reflection.h: add subtypes field to TypeBuilder.
28626         * reflection.c: encode constants for literal fields.
28627         Handle subtypes. Fix user string token (and add a zero byte)
28628         at the end.
28629         
28630 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
28631
28632         * class.c (mono_class_init): bug fix: assign slot numbers for
28633         abstract methods.
28634
28635 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
28636
28637         * reflection.c: don't try to output a code RVA for abstract methods.
28638         Small fixes for method header format. Output parameter info to the
28639         ParamDef table. Save method overriding info to MethodImpl table.
28640         Fix property support. Allow typedef.extends to be a type in the
28641         building assembly.
28642         * verify.c: fix off-by-one error.
28643
28644 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
28645
28646         * class.c: fix mono_class_from_mono_type () for szarray types.
28647         Remove unused cache check in mono_class_from_type_spec().
28648         * icall.c: *type_from_name () functions handle simple arrays and byref.
28649         * reflection.c: handle byref and szarray types. Handle methods without
28650         body (gets P/Invoke compilation working). Handle types and fields in
28651         get_token ().
28652         * reflection.h: add rank to MonoTypeInfo.
28653
28654 2002-01-10  Dick Porter  <dick@ximian.com>
28655
28656         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
28657         internal calls
28658
28659 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
28660
28661         * icall.c: initialize class in type_from_handle ().
28662         Loop also in parent classes for get_method ().
28663         * reflection.c: properly encode class and valuetype types.
28664         Start on encoding TypeBuilder types. Handle fieldrefs.
28665         Use correct length when registering a user string.
28666         Handle ConstructorBuilder and MonoMethod in get_token ().
28667         Make mono_type_get_object () aware of cached types.
28668         * object.c: back out change to mono_string_new ().
28669
28670 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
28671         * object.c: mono_string_new should return a NULL when the string 
28672         passed in is NULL -- not try to deference it.
28673         
28674 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
28675
28676         * icall.c: hack to make IsSubType work for TypeBuilders.
28677         * reflection.c: emit constructors before methods.
28678         Retrieve param names in mono_param_get_objects().
28679
28680 2002/01/05  Nick Drochak  <ndrochak@gol.com>
28681
28682         * Makefile.am: fix list of headers and sources so automake 1.5
28683         doesn't complain. Removed \# at end of list.
28684
28685 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
28686
28687         * reflection.c: get token for a method ref. Set return type of
28688         constructor to void.
28689         * loader.c: debug message.
28690         * class.c: typo fix.
28691
28692 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
28693
28694         * icall.c: fix array init with rank > 1. FindMembers
28695         loops in parent class as well.
28696         * image.c: do not insert nested types in name cache.
28697         * reflection.c: warning fix.
28698         * reflection.h: add override method (for interface impl).
28699
28700 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
28701
28702         * metadata.c: fix customattr decoding.
28703
28704 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
28705
28706         * rawbuffer.cs: Added native Win32 implementation, avoids using
28707         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
28708
28709 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
28710
28711         * class.c: make the low-level routines handle the cache.
28712
28713 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
28714
28715         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
28716
28717 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
28718
28719         * class.c: fix mono_array_element_size() for objects.
28720         * class.h, class.c: add properties to MonoClass and load them
28721         at init time.
28722         * icall.c: check with isinst() when assigning a value to an array
28723         instead of requiring the classes to match exactly.
28724         Implemented icall for System.Type::GetType().
28725         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
28726         enums. Handle bindingflags when looking for methods and fields.
28727         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
28728         and mono_metadata_methods_from_property().
28729         * reflection.h, reflection.c: added structures for propreties,
28730         parameters and enums. Implemented mono_property_get_object() and
28731         mono_param_get_objects().
28732
28733 2001-12-18  Dick Porter  <dick@ximian.com>
28734
28735         * file-io.c: Use mono_string_to_utf16() instead of
28736         mono_string_chars()
28737
28738         * object.c: Added mono_string_to_utf16(), which copies the non
28739         NULL-terminated MonoString into a new double-null-terminated
28740         buffer.
28741
28742 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
28743
28744         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
28745
28746 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
28747
28748         * file-io.c: raise exceptions if handle is invalid.
28749
28750 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
28751
28752         * assembly.c: yet another check for mscorlib.
28753         * class.c, class.h: load nesting info for classes.
28754         * icall.c: many new functions to support the Reflection classes.
28755         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
28756         * reflection.h, reflection.c: mono_image_create_token(),
28757         mono_assembly_get_object(), mono_type_get_object(),
28758         mono_method_get_object(), mono_field_get_object(): methods to return
28759         objects that parallel the C representation of assemblies, types,
28760         methods, fields.
28761
28762 2001-12-11  Dick Porter  <dick@ximian.com>
28763
28764         * icall.c:
28765         * file-io.c: Internal calls for file IO.
28766
28767 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
28768
28769         * tabledefs.h: missing FileAttributes.
28770         * verify.h, verify.c: use is_valid_string () to simplify and check for
28771         valid strings more correctly. Fix warnings and speeling.
28772         Check more tables: Filed, File, ModuleRef, StandAloneSig.
28773         Check code: branches, maxstack, method calls.
28774
28775 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
28776
28777         * object.c (mono_object_allocate): removed static, so that the jit
28778         can allocate value types.
28779
28780         * icall.c (ves_icall_System_DateTime_GetNow): impl.
28781
28782 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28783
28784         * class.c: init enum types right away and register the
28785         token->MonoClass map in mono_class_create_from_typedef ().
28786         * verify.h, verify.c: first cut of the verifier.
28787         * pedump.c: add --verify switch to verify metadata tables.
28788         * tabledefs.h: add some missing enums.
28789
28790 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
28791
28792         * class.c (mono_install_runtime_class_init): impl.
28793         (mono_class_init): renamed mono_class_metadata_init to
28794         mono_class_init, also removed the metadata_inited flag
28795
28796         * object.c (mono_object_isinst): use faster algorithm
28797
28798 2001-11-30  Radek Doulik  <rodo@ximian.com>
28799
28800         * mono-endian.h: reverted last change
28801         added function prototypes
28802
28803         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
28804         add mono-endian.c back
28805
28806         * mono-endian.c: returned back, as Paolo pointed out, it's needed
28807         for unaligned access, I've mistaked it with endianess. I am
28808         sorry.
28809         (mono_read16): fix reverted endianess
28810         (mono_read64): ditto
28811         (mono_read32): ditto
28812
28813 2001-11-30  Dick Porter  <dick@ximian.com>
28814
28815         * exception.c: Implement mono_exception_from_name()
28816
28817 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
28818
28819         * metadata.h, metadata.c: remove params_size and locals_size and their
28820         calculation from the metadata code: they are only usefult to the
28821         interp.
28822
28823 2001-11-29  Radek Doulik  <rodo@ximian.com>
28824
28825         * object.c (mono_ldstr): swap bytes here, it's probably not the
28826         best place, but works for me now, I'll redo it once I know mono
28827         better, also note that I add PROT_WRITE and don't reset back, also
28828         note that it's only affects big endians, so x86 should be OK
28829
28830         * mono-endian.h (read16): use just glib macros for both endians
28831
28832         * mono-endian.c: removed as glib macros are used in in
28833         mono-endian.h so we don't need to care about endianess for read
28834         macros as glib does that for us already
28835
28836 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
28837
28838         * class.h, class.h: take minimum alignment into consideration so
28839         that the fields of a class remain aligned also when in an array.
28840
28841 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28842
28843         * loader.h, loader.c: add mono_method_get_param_names().
28844         * class.c: 0-init class fields.
28845
28846 2001-11-26  Dick Porter  <dick@ximian.com>
28847
28848         * icall.c:
28849         * threads-types.h:
28850         * threads.c: New file that handles System.Threading on all platforms
28851
28852         * object.c: 
28853         * object.h: Remove the synchronisation struct from MonoObject,
28854         replace it with a pointer that gets initialised on demand
28855
28856         * Makefile.am: Replace all the system-specific threading code with
28857         a single file that uses the new wrapper library
28858
28859 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
28860
28861         * class.c, class.h: add mono_install_trampoline() so that the runtime
28862         can register a function to create a trampoline: removes the ugly
28863         requirement that a runtime needed to export arch_create_jit_trampoline.
28864         * object.h, object.c: added mono_install_handler() so that the runtime
28865         can install an handler for exceptions generated in C code (with
28866         mono_raise_exception()). Added C struct for System.Delegate.
28867         * pedump.c: removed arch_create_jit_trampoline.
28868         * reflection.c: some cleanups to allow registering user strings and
28869         later getting a token for methodrefs and fieldrefs before the assembly
28870         is built.
28871         * row-indexes.h: updates and fixes from the new ECMA specs.
28872
28873 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
28874
28875         * class.h, class.c: add enum_basetype field to MonoClass.
28876         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
28877         to get index in the constant table reated to a field, param or
28878         property.
28879         * reflection.h, reflection.c: handle constructors. Set public-key and
28880         version number of the built assembly to 0.
28881         * row-indexes.h: update from new ECMA spec.
28882
28883 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
28884
28885         * class.h, class.c: add a max_interface_id to MonoClass.
28886         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
28887         since it's used to do that. Added mono_type_type_from_obj().
28888         Make GetType() return NULL instead of segfaulting if the type was not
28889         found. Handle simple arrays in assQualifiedName.
28890         * object.h: add a struct to represent an Exception.
28891         * reflection.c: output call convention in method signature.
28892         Add code to support P/Invoke methods and fixed offsets for fields.
28893
28894 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
28895
28896         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
28897         the value.
28898         * icall.c: use mono_array_addr instead of array->vector: fixes the
28899         reflection image writing.
28900         * reflection.c: init call convention byte to 0 in method signature.
28901         Encode the property signature. Don't output property-related methods
28902         twice. Really process the properties for a type (don't cast a field to
28903         a property, my mom always told me that).
28904         Fix 64 bit issues in pointer alignment in a different and more
28905         readable way.
28906
28907 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
28908
28909         * loader.h: Removed type class from MonoDefaults, added monotype
28910
28911         * loader.c: Loaded MonoType, removed loading of Type
28912
28913         * icall.c (my_mono_new_object): Now returns a System.MonoType,
28914         and fills in System.Type._impl with a RuntimeTypeHandle rather
28915         than the actual MonoClass *
28916
28917         (ves_icall_type_from_handle): change from type_class to
28918         monotype_class
28919
28920         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
28921         implemented
28922
28923         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
28924         implemented
28925
28926         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
28927
28928         (ves_icall_System_Reflection_Assembly_GetType): implemented
28929
28930         (ves_icall_System_MonoType_assQualifiedName): implemented
28931
28932         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
28933
28934 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
28935
28936         * assembly.c (mono_assembly_open): Implement a cache for the
28937         assemblies. 
28938
28939         (mono_assembly_close): only destroy the assembly when the last
28940         reference is gone.
28941         
28942 2001-11-09  Dick Porter  <dick@ximian.com>
28943
28944         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
28945
28946 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
28947
28948         * class.c (mono_class_metadata_init): bug fix: compute the right slot
28949
28950 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
28951
28952         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
28953         from Martin Weindel.
28954         * object.h: add mono_string_chars ().
28955
28956 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
28957
28958         * reflection.c (build_compressed_metadata): Eliminates warnings
28959         and uses 64-bit clean code.
28960
28961         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
28962         (mono_type_equal): Change signature to eliminate warnings.
28963
28964 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
28965
28966         * icall.c, loader.c: remove the internalcall array constructors.
28967         Changes to match the new MonoArray structure.
28968         * object.h, object.c: an array object doesn't allocate an extra
28969         vector. Add mono_array_new_full () to create jagged arrays easily.
28970
28971 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
28972
28973         * metadata.h, metadata.c: add mono_metadata_field_info () to
28974         retreive all the info about a field from vairous tables.
28975         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
28976         * class.h, class.c: augment MonoClassField with more info.
28977         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
28978         policy and load a field's RVA if needed.
28979
28980 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
28981
28982         * class.c (mono_class_metadata_init): create a trampoline for all
28983         virtual functions instead of actually compiling them.
28984
28985 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
28986
28987         * class.h, class.c: include name in MonoClassField.
28988         * class.c: fix fundamental type of System.Object and System.String.
28989         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
28990         tokens in ldtoken.
28991         * icall.c: remove internalcalls for the Reflection stuff that is now
28992         done in C# code.
28993         * loader.c: mono_field_from_memberref () implementation.
28994         * mono-endian.c: thinko (s/struct/union/g).
28995         * object.c, object.h: make the mono_string_* prototypes actually use
28996         MonoString instead of MonoObject.
28997         * reflection.c, reflection.h: updates for changes in the reflection
28998         code in corlib: we use C structures that map to the actual C# classes.
28999         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
29000         fat method header if needed and use the info from the ILGenerator for
29001         methods. Handle fields in types. Misc fixes.
29002
29003 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
29004
29005         * class.c (mono_class_metadata_init): bug fix: always allocate
29006         space for static class data
29007
29008 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
29009
29010         * class.c (mono_compute_relative_numbering): use relative
29011         numbering to support fast runtime type checks.
29012
29013 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
29014
29015         * class.c (mono_class_create_from_typeref): added debugging output
29016         to print class name when MonoDummy is returned instead of real class
29017
29018 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
29019
29020         * class.c (mono_class_metadata_init): interface offset table now
29021         contains pointers into the vtable - this is more efficient for the jit
29022
29023 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
29024
29025         * class.c (mono_class_metadata_init): use a temporary vtable (the
29026         old algorithm only worked for the interpreter, but not for the jit)
29027
29028 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
29029
29030         * loader.c (method_from_memberref): use mono_class_get to get the
29031         class of an array instead of using System.Array directly.
29032         (mono_get_method): also add MEMBERREF methods to the method cache
29033         which usefull for arrays.
29034
29035 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
29036
29037         * pedump.c (arch_compile_method): added to compute vtable entry
29038
29039         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
29040         number of interfaces.
29041         
29042         * class.h: merged MonoArrayClass into MonoClass
29043
29044         * class.c (mono_class_create_from_typedef): compute the vtable size and
29045         allocate space to include the vtable inside MonoClass
29046         (mono_class_metadata_init): initialize the vtable
29047
29048 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
29049
29050         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
29051         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
29052         * image.c: endian fixes by Laurent Rioux.
29053         * object.h, object.c: rename MonoStringObject to MonoString and
29054         MonoArrayObject to MonoArray. Change some function names to conform to
29055         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
29056         guint16* as first argument, so don't use char*.
29057         Provide macros to do the interesting things on arrays in a portable way.
29058         * threads-pthread.c: updates for the API changes and #include <sched.h>
29059         (required for sched_yield()).
29060         * icall.c: updates for the API changes above.
29061         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
29062         platforms that need them.
29063
29064 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
29065
29066         * class.c: set the correct type for all the fundamental
29067         type when loading the class.
29068
29069 2001-10-05  Dick Porter  <dick@ximian.com>
29070
29071         * threads-pthread.c (pthread_mutex_timedlock): Simple
29072         compatibility version for C libraries that lack this call.
29073
29074 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
29075
29076         * class.c: MonoTypes stored in MonoClass are stored as
29077         fundamental MonoTypes when the class represents a
29078         fundamental type (System.Int32, ...).
29079         The TypeHandle return by ldtoken is a MonoType*.
29080         * icall.c: ves_icall_get_data_chunk () write out all the
29081         PE/COFF stuff. Implement ves_icall_define_method (),
29082         ves_icall_set_method_body (), ves_icall_type_from_handle ().
29083         * image.c: properly skip unknown streams.
29084         * loader.h, loader.c: add type_class to mono_defaults.
29085         * metadata.c, metadata.h: export compute_size () as
29086         mono_metadata_compute_size () with a better interface.
29087         Typo and C&P fixes.
29088         * pedump.c: don't try to print the entry point RVA if there is no entry point.
29089         * reflection.c, reflection.h: many cleanups, fixes, output method
29090         signatures and headers, typedef and typeref info, compress the metadata
29091         tables, output all the heap streams, cli header etc.
29092         * row-indexes.h: typo fixes.
29093
29094 2001-10-04  Dick Porter  <dick@ximian.com>
29095
29096         * object.h: Add a synchronisation mutex struct to MonoObject
29097
29098         * object.c (mono_new_object): Initialise the object
29099         synchronisation mutexes
29100
29101         * icall.c: System.Threading.Monitor internal calls
29102         
29103         * threads-pthread.h:
29104         * threads-pthread.c: System.Threading.Monitor internal calls
29105
29106         * threads-types.h: New file, includes the system-specific thread
29107         structures
29108         
29109         * threads-pthread-types.h:
29110         * threads-pthread-types.c: New files, handle pthread-specific
29111         synchronisation types
29112
29113         * threads-dummy-types.h: 
29114         * threads-dummy-types.c: New files of dummy support for
29115         thread-specific types
29116
29117         * metadata.c:
29118         * image.c:
29119         * pedump.c: include mono-endian.h not endian.h
29120         
29121         * Makefile.am: More threads files.
29122         Name mono-endian.h not endian.h
29123
29124 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
29125
29126         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
29127         stuff and implement a few more bits.
29128         * icall.c: a field needs to be dereferenced twice. Do not use the same
29129         name for two variables in the same scope.
29130         * image.c, image.h: cleanups.
29131
29132 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
29133
29134         * class.c (mono_class_metadata_init): bug fix: compute the right size
29135
29136 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
29137
29138         * icall.c: implemented some of the Reflection internalcalls.
29139         * image.c, image.h: start writing out the PE/COFF image.
29140         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
29141         that does the reverse than decode_blob_size ().
29142         * object.c: use mono_metadata_encode_value (). Move here
29143         temporary implementation of mono_string_to_utf8 ().
29144         * rawbuffer.c: make malloc_map static.
29145
29146 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
29147
29148         * metadata.c: fix type comparison for arrays.
29149         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
29150         Added a couple of new classes to monodefaults.
29151         * icall.c: added a couple of Reflection-related internalcalls.
29152         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
29153         Added a byval_arg MonoType to MonoClass.
29154
29155 2001-09-28  Dick Porter  <dick@ximian.com>
29156
29157         * icall.c:
29158         * threads-pthread.h: 
29159         * threads-pthread.c: Implemented internal calls for
29160         LocalDataStoreSlot operations.  Applied mutexes around all shared
29161         data.  Reworked the thread creation and Start() operations to
29162         avoid a race condition.
29163         
29164         * threads-dummy.h:
29165         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
29166
29167 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
29168
29169         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
29170
29171 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
29172
29173         * class.c, loader.c: warn and return NULL instead of erroring out.
29174         * icall.c: added System.AppDomain::getCurDomain().
29175         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
29176
29177 2001-09-25  Dick Porter  <dick@ximian.com>
29178
29179         * threads-pthread.h:
29180         * threads-pthread.c: Implemented timed thread joining and added
29181         System.Threading.Thread::Join_internal internal call
29182
29183         * icall.c: Added System.Threading.Thread::Join_internal internal call
29184
29185         * threads-dummy.h:
29186         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
29187
29188 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
29189
29190         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
29191         mono_string_intern () to implement the semantics of the ldstr opcode
29192         and the interning of System.Strings.
29193         * icall.c: provide hooks to make String::IsIntern and String::Intern
29194         internalcalls.
29195
29196 2001-09-23  Dick Porter  <dick@ximian.com>
29197
29198         * threads-dummy.c: 
29199         * threads-dummy.h: New files of dummy threading routines
29200
29201         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
29202         support code based on system specifics
29203
29204         Rename PTHREAD_LIBS to THREAD_LIBS
29205         
29206 2001-09-23  Dick Porter  <dick@ximian.com>
29207
29208         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
29209         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
29210         internal calls.
29211         (mono_thread_init): Set up a Thread object instance to return when
29212         the main thread calls Thread.CurrentThread
29213         (mono_thread_cleanup): Wait for all subthreads to exit
29214
29215         * icall.c: New internal calls for System.Threading.Thread::Sleep
29216         (including Schedule) and CurrentThread
29217
29218         * threads.h: New file, to insulate thread-specific stuff from the
29219         rest of the code
29220
29221 2001-09-21  Dick Porter  <dick@ximian.com>
29222
29223         * threads-pthread.h: 
29224         * threads-pthread.c: New file, for handling pthreads-style
29225         threading support.  Start() now starts a new thread and executes
29226         the ThreadStart delegate instance.
29227
29228         * icall.c: Added the internalcall for
29229         System.Threading.Thread::Start_internal
29230
29231         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
29232
29233 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
29234
29235         * loader.c: work around the different signatures for delegates
29236         constructors csc generates in compiled code vs the ones compiled in mscorlib.
29237
29238 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
29239
29240         * class.h, class.c: add mono_class_get_field_from_name ().
29241         * *: Fix C comments and other ANSI C issues.
29242
29243 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
29244
29245         * endian.h, assembly.c: fix some endianness issues.
29246
29247 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
29248
29249         * loader.h, load.c: add delegate_class to mono_defaults.
29250         Handle runtime provided methods in mono_get_method ().
29251
29252 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
29253
29254         * loader.c (mono_get_method): use pinvoke for internal call
29255
29256         * icall.c: use pinvoke for internal call
29257
29258         * loader.c (method_from_memberref): set the method name
29259
29260 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
29261
29262         * metadata.c: help the compiler generate better code for
29263         mono_class_from_mono_type ().
29264
29265 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
29266
29267         * class.c (mono_class_metadata_init): delayed computing of the
29268         class size to mono_class_metadata_init ()
29269
29270 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
29271
29272         * class.c, class.h: add an interfaces member to MonoClass.
29273         * image.c, image.h: add assembly_name field to MonoImage
29274         from the assembly table.
29275         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
29276
29277 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
29278
29279         * class.c: Handle Array in mono_class_from_mono_type ().
29280         * metadata.c, pedump.c: some endian fixes.
29281
29282 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
29283
29284         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
29285         * metadata.c: fix small problem introduced with the latest commit.
29286
29287 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
29288
29289         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
29290         We don't need a MonoMetadata pointer anymore to compare signatures in
29291         mono_metadata_signature_equal (), update callers.
29292         Reduced memory usage an number of allocations for MonoMethodHeader and
29293         MonoMethodSignature.
29294
29295 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
29296
29297         * metadata.c: added compare for szarray.
29298
29299 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
29300
29301         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
29302         and add a couple more types to it and mono_defaults. Give an hint on
29303         classes that need implementing in our corlib and are referenced
29304         in mscorlib.
29305
29306 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
29307
29308         * class.h, class.c: keep track if a class is also an Enum.
29309         * loader.c: Implement a couple more types for use in libffi
29310         marshalling. Gives better diagnostics when failing to dlopen
29311         a library. Set method->klass for P/Invoke methods, too.
29312
29313 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
29314
29315         * class.c, class.h: add a MonoType this_arg to MonoClass that
29316         represents a pointer to an object of the class' type that
29317         can be used by the interpreter and later the type cache.
29318         Add best guess alignment info for valuetype objects.
29319
29320 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
29321
29322         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
29323         into MonoType: one less level of indirection and allocation and
29324         simplifies quite a bit of code. Added cache for MonoTypes that are
29325         used frequently, so that we don't need to allocate them all the time.
29326
29327 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
29328
29329         * class.c (mono_class_create_from_typedef): System.Enum is also a
29330         value type, although it does not derive from System.ValueType
29331         (maybe a bug in the ms compiler?)
29332
29333         * metadata.c (mono_type_size): return the right size for value types
29334
29335         * loader.c (mono_get_method): only initialize method header if not abstract
29336
29337         * class.c (mono_class_from_mono_type): use mono_default values. 
29338
29339 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
29340
29341         * *: use MonoClass pointers instead of <type_tokens>
29342         
29343         * class.h: new flag: metadata_inited.
29344
29345         * class.c (mono_class_metadata_init): impl.
29346         (mono_class_instance_size): impl.
29347         (mono_class_data_size): impl.
29348
29349 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
29350
29351         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
29352         MonoClass now has the name and name_space fields. 
29353         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
29354         mono_get_method () takes and optional MonoClass as argument.
29355         Removed mono_typedef_from_name() and added mono_class_token_from_name()
29356         instead that takes advantage of a map from class names to typedef
29357         tokens in MonoImage.
29358
29359 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
29360
29361         * metadata.c: zero is not a valid alignment boundary.
29362         Merge MONO_TYPE_VOID in default decoding code.
29363
29364 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
29365
29366         * image.h: merged MonoMetadata into MonoImage
29367
29368         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
29369         identify the type of elements.
29370
29371 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
29372
29373         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
29374         * cil-coff.h: split MonoMSDOSHeader and add size info.
29375         * image.c: add some consistency checks.
29376         * metadata.c: fix row size computation: one programmer
29377         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
29378         add explanation for the locator routine.
29379         Fix decoding of size in method header.
29380         
29381 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
29382
29383         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
29384         (g_concat_dir_and_file): Bring g_concat_dir_and_file
29385         function from gnome-libs.  This uses the right path separator
29386         based on the OS, and also works around a bug in some systems where
29387         a double slash is not allowed. 
29388         (default_assembly_name_resolver): Use g_concat_dir_and_file
29389         (mono_assembly_open): ditto.
29390
29391 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
29392
29393         * metadata.c (mono_metadata_signature_equal): impl.
29394
29395         * *: void is now a realy MonoType (instead of using NULL)
29396         
29397         * metadata.c (do_mono_metadata_parse_type): use
29398         mono_metadata_parse_type to parse void value.
29399
29400 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
29401
29402         * metadata.c, metadata.h: in the signature and method header store
29403         only the space required for holding the loca vars and incoming arguments.
29404
29405 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
29406
29407         * metadata.c (do_mono_metadata_parse_type): treat void like any
29408         other type (instead of assigning NULL);
29409
29410 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
29411
29412         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
29413
29414 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
29415
29416         * image.c (do_mono_image_open): added a cache for arrays.
29417
29418 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
29419
29420         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
29421         decode a single column from a row in a metadata table and changes
29422         to take advantage of it in the typedef locator (gives a nice speed up).
29423         Store offset info for function params.
29424
29425 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
29426
29427         * image.h (MONO_IMAGE_IS_CORLIB): removed 
29428
29429 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
29430
29431         * assembly.c: how could mono_assembly_close () had ever worked?
29432         * metadata.c, metadata.h: provide offset info for local vars.
29433         Implement mono_type_size () to take care of alignment as well
29434         as size (it was mono_field_type_size in cli/class.c before).
29435
29436 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
29437
29438         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
29439
29440         * assembly.h (CORLIB_NAME): set to corlib.dll
29441
29442         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
29443
29444 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
29445
29446         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
29447         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
29448         tokentype.h: massive namespace cleanup.
29449
29450 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
29451
29452         * metadata.h, metadata.c: decode exception clauses when parsing method header.
29453
29454 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
29455
29456         * metadata.c (mono_metadata_free_type): added check for type !=
29457         NULL (void) before calling mono_metadata_free_type()
29458
29459 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
29460
29461         * metadata.h, row_indexes.h: added header with enumerations to use
29462         to index in the columns from tables in metadata and to decode coded
29463         tokens: we should start using this instead of embedding magic numbers
29464         all over the code.
29465
29466 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
29467
29468         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
29469         Move metadata_t info from cli_image_info_t to MonoImage, where
29470         it's easily accessible. Changed all the uses accordingly.
29471         Added the method and class caches to MonoImage.
29472         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
29473         and mono_metadata_decode_value () signature to be more consistent
29474         with the other parse functions (and simplify code). Taken advantage
29475         of zero-length array allocation with GCC. Removed reduntant (and
29476         wrong) MonoFieldType struct and use MonoParam instead. Changed
29477         mono_metadata_parse_field_type () to use common code for parsing.
29478         Added mono_metadata_typedef_from_field () and
29479         mono_metadata_typedef_from_method () to lookup a typedef index from a
29480         field or method token.
29481         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
29482
29483 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
29484
29485         * metadata.c (mono_metadata_parse_field_type): Implement. 
29486         (do_mono_metadata_parse_type): Split engine from
29487         mono_metadata_parse_type, so that we can create smaller structures
29488         for things that just have one pointer to the MonoType (look at
29489         the MonoFieldType)
29490
29491 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
29492
29493         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
29494         as Jan Gray found out, it is incorrect. 
29495
29496 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
29497
29498         * assembly.c: Implement asssembly loading.  This loads an image
29499         and loads all the referenced assemblies.  Come to think of it, we
29500         could always do lazy loading of the assemblies. 
29501
29502         * image.c (mono_image_open): Keep loaded images in a hashtable.
29503
29504         * image.h (MonoImage): Add reference count.
29505
29506 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
29507
29508         * assembly.c (mono_assembly_open): Keep track of the file name in
29509         case the assembly has no ASSEMBLY table.
29510
29511         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
29512         from get.c here.
29513
29514 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
29515
29516         * metadata.c, metadata.h: decode local vars in method header
29517         parse function. Change callers accordingly.
29518
29519 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
29520
29521         * metadata.h, cil-coff.h: protect against multiple inclusion.
29522         Added some new structures to hold information decoded from metadata:
29523         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
29524         and relevant decoding/free functions.
29525         * metadata.c: implement decoding functions. Add warning for out of bounds
29526         index in mono_metadata_locate(). Implement mono_get_method () to retreive
29527         all the info about a method signature and invocation. Remove check on
29528         uninitialized local var in parse_mh() and fix memory leak.
29529
29530 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
29531
29532         * metadata.h: More macros.
29533
29534         * tokentype.h: New file.
29535
29536 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
29537
29538         * assembly.c: added a consistency check and initialize
29539         some structures with g_new0().
29540         * metadata.c: fixed a couple more bugs in table size computation
29541         and add other checks for out-of bound access to metadata.
29542
29543 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
29544
29545         * metatada.c: fix bugs computing table sizes. Spew a
29546         warning when index in string heap is out of bounds.
29547
29548 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
29549
29550         * metadata.h: Add a couple of macros to manipulate tokens. 
29551
29552 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
29553
29554         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
29555         cli_section_tables).
29556
29557 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
29558
29559         * metadata.c (mono_metadata_user_string): New function, provides
29560         access to the UserString heap. 
29561
29562 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
29563
29564         * metadata.c: Add inline documentation.
29565
29566 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
29567
29568         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
29569         files. 
29570
29571 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
29572
29573         * typeattr.h: New file, TypeAttribute flags. 
29574
29575 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
29576
29577         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
29578         mono_assembly_ensure_section): Section loading code.
29579         (load_section_tables): Load the sections.
29580
29581         * mono/metadata/metadata.c (mono_metadata_locate_token,
29582         mono_metadata_locate): Functions to locate the information
29583         definition given a token or a table and an index.
29584         (mono_metadata_compute_table_bases): New.
29585         (compute_size): New function to compute the sizes of the various
29586         tables.
29587
29588         * mono/metadata/metadata.h: Finish listing the different index
29589         types. 
29590
29591         * mono/metadata/pedump.c: Improve to dump new information.
29592
29593 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
29594
29595         * mono/metadata/metadata.c: Entered all the tables matching
29596         Beta2. 
29597
29598         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
29599
29600
29601
29602