2005-06-27 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / metadata / ChangeLog
1 2005-06-27  Zoltan Varga  <vargaz@freemail.hu>
2
3         * marshal.c (emit_marshal_string): Applied patch from Itamar Rogel (chastamar@yahoo.com). Fixes
4         #75374.
5
6 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
7
8         * culture-info-table.h: regenerated.
9
10 2005-06-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
11
12         * icall.c: handle spaces correctly for base64 strings.
13
14 2005-06-26  Ben Maurer  <bmaurer@ximian.com>
15
16         * *.c: Kill some warnings.
17
18 2005-06-23  Duncan Mak  <duncan@novell.com>
19
20         * socket-io.c (is_loopback): Cast 'ptr' to 'struct in6_addr *' so
21         that this builds on Solaris 10 (x86).
22
23 2005-06-23  Martin Baulig  <martin@ximian.com>
24
25         * class.c
26         (mono_type_get_name_recurse): Don't use a duplicate '[', ']' for
27         generic type definitions.
28
29 2005-06-23  Martin Baulig  <martin@ximian.com>
30
31         Fix #75331.
32
33         * metadata.c (mono_class_get_overrides): Renamed to
34         mono_class_get_overrides_full() and added a `MonoGenericContext *'.
35         (method_from_method_def_or_ref): Added `MonoGenericContext *' and
36         pass it to mono_get_method_full().
37
38 2005-06-22  Ben Maurer  <bmaurer@ximian.com>
39
40         * reflection.c (mono_reflection_create_runtime_class): take the
41         mono_domain_lock in this method. Prevents deadlocks
42
43 2005-06-22  Martin Baulig  <martin@ximian.com>
44
45         * loader.c (method_from_methodspec): Fix #75330.
46
47 2005-06-22  Martin Baulig  <martin@ximian.com>
48
49         * reflection.c (type_get_qualified_name): Use
50         mono_type_get_name_full() with MONO_TYPE_NAME_FORMAT_REFLECTION.
51         (_mono_reflection_get_type_from_info): Added `MonoImage *image'
52         argument; use it if we don't have an assembly name.
53
54 2005-06-22  Lluis Sanchez Gual  <lluis@novell.com>
55
56         * object.c: In mono_message_init, set "copy out" flag for in
57         parameters with the [Out] flag.
58
59 2005-06-21  Martin Baulig  <martin@ximian.com>
60
61         * class.c
62         (mono_type_get_name_recurse): Correctly handle MONO_TYPE_SZARRAY
63         and MONO_TYPE_PTR.
64
65 2005-06-21  Martin Baulig  <martin@ximian.com>
66
67         * class.c (mono_class_init): Don't initialize `class->fields' for
68         generic instances since they're initialized again in
69         compute_field_layout(). 
70         (compute_field_layout): Set the field's `generic_info' here; fix
71         #75320. 
72
73 2005-06-21  Martin Baulig  <martin@ximian.com>
74
75         * class-internals.h
76         (MonoGenericMethod): Added `MonoGenericClass *generic_class'.
77
78         * metadata.c (mono_metadata_generic_method_equal): Also
79         distinguish the `generic_class'; fixes #75334.
80
81 2005-06-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
82
83         * domain.c:
84         * appdomain.c:
85         * domain-internals.h:
86         * reflection.c: 'domain_assemblies' field is now protected by its own
87         lock. Don't call into managed code to run the AssemblyLoad event if we
88         now there are no registered delegates for it.
89
90 2005-06-20  Martin Baulig  <martin@ximian.com>
91
92         * class.c (mono_class_is_assignable_from): Use a custom version of
93         mono_class_has_parent() to make things work for generic instances;
94         fix #75300.
95
96 2005-06-20  Martin Baulig  <martin@ximian.com>
97
98         * loader.c (method_from_methodspec): Apply a patch from
99         Kamil Skalski <nazgul@nemerle.org> to fix #75296.
100
101 2005-06-20  Martin Baulig  <martin@ximian.com>
102
103         * class.c (mono_class_init): Reverted Zoltan's last change; it
104         breaks generics.
105
106 2005-06-19  Zoltan Varga  <vargaz@freemail.hu>
107
108         * threads.c (wait_for_tids_or_state_change): Add missing locking.
109
110 2005-06-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
111
112         * socket-io.c: fix the index in the socket array for writable/error
113         sockets. Fixes bug #75306.
114
115 2005-06-17  Zoltan Varga  <vargaz@freemail.hu>
116
117         * class.c (mono_class_init): Allow interfaces to have static ctors.
118
119 2005-06-17  Martin Baulig  <martin@ximian.com>
120
121         * loader.c (method_from_methodspec): Use `context->container' when
122         parsing the `gmethod->inst'.
123
124 2005-06-17  Martin Baulig  <martin@ximian.com>
125
126         * class.c (mono_type_get_name_recurse): Don't add the assembly
127         name for type arguments.
128
129 2005-06-15  Martin Baulig  <martin@ximian.com>
130
131         * reflection.c (mono_image_get_inflated_method_token): Encode
132         correct klass; fixes #75260.
133
134 2005-06-13 Michal Moskal <malekith@nemerle.org>
135
136         * icall.c: Make GetCorrespondingMethod/Constructor take
137         MonoReflectionMethod method not MonoMethod. Removed
138         MonoType.GetCorrespondingField, and make
139         MonoGenericType.GetCorrespondingField take name not
140         MonoClassField.
141
142 2005-06-13  Michal Moskal <malekith@nemerle.org>
143
144         * reflection.c (field_encode_signature, encode_locals):
145          Make sizes of buffers for types larger (for big generic types).
146          (create_generic_typespec,
147          mono_reflection_sighelper_get_signature_local,
148          mono_reflection_sighelper_get_signature_field):
149          Add asserts for too small buffers.
150
151 2005-06-15  Martin Baulig  <martin@ximian.com>
152
153         * icall.c (ves_icall_MonoGenericClass_GetParentType): Return NULL
154         if our parent is not a dynamic type.
155
156 2005-06-15  Martin Baulig  <martin@ximian.com>
157
158         * class-internals.h (MonoTypeNameFormat): New enum.
159
160         * class.c
161         (mono_class_get_name_full): Renamed to mono_type_get_name_full().
162         (mono_type_get_full_name): Removed.
163         (mono_type_get_name_full): Take a `MonoTypeNameFormat format'
164         argument instead of the boolean's.
165
166         * icall.c (ves_icall_System_MonoType_getFullName):
167         Added `gboolean assembly_qualified'.    
168
169         * reflection.h
170         (MonoTypeNameParse): Added `GPtrArray *type_arguments'.
171
172         * reflection.c (mono_reflection_parse_type): Parse the new type
173         name format.
174
175 2005-06-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
176
177         * icall.c: no need to convert from utf16 to utf8 and then back again
178         after the call to GetLogicalDrives.
179
180 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
181
182         * icall.c: frombase64. Fix problems exposed by new tests.
183
184 2005-06-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
185
186         * icall.c: added internal calls for converting char [] and strings in
187         base64 into byte [].
188
189 2005-06-10  Martin Baulig  <martin@ximian.com>
190
191         * class.c (mono_class_create_generic_2): Read the nested classes
192         from the metadata rather than from `gklass->nested_classes' since
193         `gklass' might not be initialized yet.
194
195 2005-06-09  Duncan Mak  <duncan@novell.com>
196
197         * *.h: Added G_BEGIN_DECLS and G_END_DECLS where appropriate to
198         all public headers. Fixes #74919.
199
200 2005-06-09  Lluis Sanchez Gual  <lluis@novell.com>
201
202         * domain.c: The key for proxy_vtable_hash is now a pointer
203         array. Added new GHashFunc and GCompareFunc functions for this.
204
205         * class.h: The list of interfaces in MonoRemoteClass is known in
206         advance and can't grow (we create a new MonoRemoteClass if needed),
207         so now the interface array can be allocated together with
208         MonoRemoteClass.
209         
210         * object.c: Added a new method create_remote_class_key.
211         Fixed mono_remote_class so it does not depend on
212         mono_upgrade_remote_class.
213         Removed extend_interface_array.
214         Added new method clone_remote_class(), which makes a copy of a remote
215         class and adds a new interface or class to it.
216         mono_upgrade_remote_class() now creates a new remote class (or gets
217         it from the cache) if an vtable upgrade is needed. In this way
218         we make sure that other objects sharing the same remote class
219         don't get the new vtable with unwanted interfaces.
220         
221         * object-internals.h:
222         * object.h: Moved mono_upgrade_remote_class to object-internals.h.
223         
224         * marshal.c: Track changes in mono_upgrade_remote_class().
225
226 2005-06-08  Kamil Skalski <nazgul@nemerle.org>
227         * icall.c: Add runtime methods for obtaining members of inflated
228         class, which were created from supplied non-inflated members. It
229         is used in internal Get{Method,Constructor,Field} methods in
230         System.Type
231
232 2005-06-09  Martin Baulig  <martin@ximian.com>
233
234         * reflection.c
235         (mono_reflection_bind_generic_method_parameters): Fix #75169.
236
237 2005-06-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
238         * reflection.c (mono_image_basic_init): Define
239         Version in MonoDynamicAssembly. 
240         
241 2005-06-08  Martin Baulig  <martin@ximian.com>
242
243         Fix #75136.
244
245         * loader.c
246         (mono_method_signature_full): New public method; takes a
247         `MonoGenericContext *'.
248         (find_method): Use mono_method_signature_full() and pass the
249         klass'es context to it.
250
251         * class.c (mono_class_is_inflated_method): Use
252         mono_method_signature_full() and pass the context to it.
253
254 Wed Jun 8 19:26:38 CEST 2005 Paolo Molaro <lupus@ximian.com>
255
256         * object.c: add proper locking in mono_remote_class_vtable(),
257         fixes possible memory corruption.
258
259 2005-06-08  Michael Meeks  <michael.meeks@novell.com>
260
261         * marshal.c (mono_remoting_marshal_init): set
262         initialized after initialization.
263
264 2005-06-08  Atsushi Enomoto  <atsushi@ximian.com>
265
266         * locales.c : hush.
267
268 2005-06-06  Michael Meeks  <michael.meeks@novell.com>
269
270         * object.c (extend_interface_array): fix really silly
271         memory corrupting / comparison bug.
272
273 2005-06-07  Carlos Alberto Cortez <calberto.cortez@gmail.com>
274
275         * reflection.c: Functions added to support the creation
276         of CustomAttributeData, which includes Attribute data
277         used by ReflectionOnly methods.
278
279         * reflection.h:  mono_reflection_get_custom_attrs_data and
280          mono_custom_attrs_data_construct added (functions exposed).
281
282          * icall.c: Added mono_reflection_get_custom_attrs_data
283          as icall.
284         
285 2005-06-07  Zoltan Varga  <vargaz@freemail.hu>
286
287         * Makefile.am (libmonoruntime_la_SOURCES): Revert last change at
288         lupus's request.
289
290 2005-06-06  Zoltan Varga  <vargaz@freemail.hu>
291
292         * icall.c (ves_icall_Mono_Runtime_GetDisplayName): Fix warning.
293
294         * reflection.c (reflection_methodbuilder_to_mono_method): Fix encoding of
295         dynamic DllImportAttribute.
296
297         * icall.c (ves_icall_MonoMethod_GetDllImportAttribute): Fix decoding of 
298         dynamic DllImportAttribute.
299
300         * Makefile.am (libmonoruntimeinclude_HEADERS): Export tabledefs.h too.
301         Fixes #75162.
302
303 2005-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
304
305         * threads.c: avoid segfault when an unstarted thread is aborted.
306
307 2005-06-05  Kornél Pál <kornelpal@hotmail.com>
308
309         * icall.c: Added ves_icall_Mono_Runtime_GetDisplayName:
310         Returns the name and version of the runtime for reporting.
311
312 2005-06-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
313
314         * appdomain.c: bump corlib version.
315         * object-internals.h: new field in MonoReflectionAssembly.
316
317 2005-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
318
319         * object-internals.h: Carlos forgot to add this field.
320
321 2005-06-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
322
323         * icall.c: Added create_version to create instances
324         of Version of MonoReflectionAssemblyName. This change helps
325         the AssemblyName tests to keep running fine.
326         
327 2005-06-03  Lluis Sanchez Gual  <lluis@novell.com>
328   
329         * object.c (mono_method_return_message_restore): A somehow less
330         intrusive fix for #75138.
331
332 2005-06-03  Raja R Harinath  <rharinath@novell.com>
333
334         * object.c (mono_method_return_message_restore): Fix computation
335         of expected number of out args.
336
337 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
338
339         * reflection.c (mono_image_get_method_info): Fix the case when the
340         charset is empty.
341
342 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com> 
343
344         * object.c: Added missing null check in
345           mono_method_return_message_restore.
346
347 2005-06-02  Zoltan Varga  <vargaz@freemail.hu>
348
349         * reflection.c (mono_image_get_method_info): Handle the case when
350         dllentry is empty.
351
352 2005-06-02  Lluis Sanchez Gual  <lluis@novell.com>
353
354         * object.c: When creating the vtable for a proxy, take into account
355         all inherited interfaces, not only the ones registered in
356         iclass->interfaces. This fixs bug #74996.
357         Also, in mono_method_return_message_restore, verify that the array
358         of out args has the expected lengh.
359
360 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
361
362         * socket-io.c: update the timeout in Poll when the call is interrupte.
363
364 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
365
366         * socket-io.c: support abort/suspend in Select_internal after last
367         change.
368
369 2005-06-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
370
371         * threadpool.c: remove warning.
372
373 2005-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
374
375         * icall.c:
376         * socket-io.[ch]: Select_internal uses poll() now when available, thus
377         removing the 1024 limit from select(). Runtime part of the fix for
378         bug #71203.
379
380 2005-05-30 Gonzalo Paniagua Javier <gonzalo@ximian.com>
381
382         * socket-io.c: when resolving the addresses for the same
383         host returned by gethostname(), get the local IPs from the interface
384         list. Loopback addresses are discarded if the are interfaces up with
385         non-loopback ones. Fixes bug #63265.
386
387 2005-05-27  Vladimir Vukicevic  <vladimir@pobox.com>
388
389         * appdomain.c, verify.c, object-internals.h, reflection.c:
390         bumped corlib number to 36, and added new extra_flags field
391         to ReflectionMethodBuilder and friends.  Fixes #75060.
392
393 Fri May 27 14:45:56 CEST 2005 Paolo Molaro <lupus@ximian.com>
394
395         * gc.c: register a new weak link only if the object is non-null
396         (fixes bug#75047).
397
398 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
399
400         * culture-info.h : short time pattern too.
401
402 2005-05-26  Atsushi Enomoto  <atsushi@ximian.com>
403
404         * culture-info.h : expand long time pattern string length.
405
406 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
407
408         * culture-info-table.h : update (more French date format; #72788).
409
410 2005-05-25  Zoltan Varga  <vargaz@freemail.hu>
411
412         * icall.c (ves_icall_InternalInvoke): Avoid type checks on this if
413         the method is static. Fixes #75029.
414
415 2005-05-25  Lluis Sanchez Gual  <lluis@novell.com>
416
417         * reflection.c: Update the table_idx field of method builders after
418         saving the module, since it can change. This is a workaround for
419         bug #74914. 
420
421 2005-05-25  Atsushi Enomoto  <atsushi@ximian.com>
422
423         * culture-info-table.h : update (additional French date format).
424
425 2005-05-20  Zoltan Varga  <vargaz@freemail.hu>
426
427         * icall.c (ves_icall_type_Equals): Revert last change.
428         
429         * icall.c (ves_icall_type_Equals): Turn the g_print into an assert.
430
431         * icall.c (ves_icall_type_GetTypeCode): Rename the icall to GetTypeCodeInternal.
432
433 2005-05-20  Sebastien Pouliot  <sebastien@ximian.com>
434
435         * class-internals.h: Added executioncontext_class field to 
436         MonoDefaults structure.
437         * domain.c: Cache System.Threading.ExecutionContext class in 
438         mono_defaults.
439         * object.c: Capture the ExecutionContext for asynchroneous calls in
440          mono_async_result_new.
441         * object-internals.h: Added execution_context and original_context 
442         fields to MonoAsyncResult. Added execution_context to MonoThread.
443         * security-manager.c|.h: Added mono_get_context_capture_method to 
444         return the capture method (if required by the security manager or by
445         the framework version used).
446         * threadpool.c: Apply capture (if present) ExecutionContext in 
447         mono_async_invoke and revert to original context after it completes.
448
449 2005-05-19  Atsushi Enomoto  <atsushi@ximian.com>
450
451         * culture-info-table.h : updated (real hacky solution for zh-CHT).
452
453 2005-05-18  Atsushi Enomoto  <atsushi@ximian.com>
454
455         * culture-info-table.h : zh-CHT related workaround.
456
457 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
458
459         * marshal.c (emit_marshal_custom): Add some error checking and call the
460         methods in the ICustomMarshaler interface. Fixes #74875.
461         
462         * marshal.c (emit_marshal_array): Implement [Out] marshalling in
463         native->managed wrappers.
464
465 2005-05-12  Martin Baulig  <martin@ximian.com>
466
467         * mono-debug-debugger.cs (mono_debugger_lock/unlock): Always lock
468         here and use the loader lock.
469
470         * mono-debug.c: Properly lock when the debugger is not attached.
471         (mono_debug_init): Release the initial lock if we're not running
472         in the debugger.
473
474 2005-05-12  Zoltan Varga  <vargaz@freemail.hu>
475
476         * marshal.c (emit_marshal_custom): Pass through NULL values without
477         calling the custom marshalling routines.
478
479         * marshal.c (emit_ptr_to_object_conv): Implement ftnptr->delegate
480         conversion in structures. Fixes #74882.
481
482 2005-05-12  Atsushi Enomoto  <atsushi@ximian.com>
483
484         * culture-info-table.h : zh-* cultures were missing.
485
486 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
487
488         * threads.c: Added a new event background_change_event which is signaled
489         when a thread changes its background mode.
490         Moved here several checks previously done in managed code. The checks
491         require the thread lock, and using the thread lock in managed code
492         can result in deadlocks.
493         Merged Start_internal and Thread_internal into a single method. Now 
494         Thread_internal does all work of creating and starting a thread.
495         Added icalls for setting and getting the state of the object. Moved from
496         managed code to avoid locking there.
497         Added wait_for_tids_or_state_change() which is called instad of
498         wait_for_tids when waiting for non-backround threads to end. This method
499         will return if one of the threads ends or the background_change_event
500         is signaled.
501         * threadpool.c: use ves_icall_System_Threading_Thread_SetState() to set
502         the background mode. This method signals the background_change_event
503         event.
504         * icall.c:
505         * threads-types.h: Added icalls for ClrState, SetState and GetState, and
506         removed Start_internal.
507         
508 2005-05-11  Martin Baulig  <martin@ximian.com>
509
510         * mono-debug.h (MonoSymbolTable, MonoDebugMethodAddress): Changed
511         to order of some fields to get proper alignment on 64-bit machines.
512
513 2005-05-11  Martin Baulig  <martin@ximian.com>
514
515         * mono-debug.c, mono-debug-debugger.c: Revert Paolo's locking
516         changes as they're broken and completely fuck up the debugger.
517
518         * mono-debug.c (mono_debug_add_method): Properly unlock on error.
519
520 2005-05-10  Martin Baulig  <martin@ximian.com>
521
522         * reflection.c (mono_reflection_generic_class_initialize): Don't
523         call mono_class_setup_parent() here.
524
525 2005-05-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
526
527         * metadata/socket-io.c: on windows, getsockopt/setsockopt for
528         send/receive timeout use an integer in milliseconds. We were using a
529         struct timeval.
530
531 2005-05-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
532
533         * locales.c:
534         (internal_get_cultures): reserve the first slot of the array for the
535         InvariantCulture, which will be filled in managed code.
536
537 2005-05-06  Zoltan Varga  <vargaz@freemail.hu>
538
539         * reflection.c (mono_image_fill_module_table): Initialize the
540         GENERATION field as well.
541
542 2005-05-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
543
544         * monitor.c: ignore calls to Monitor.Exit even if no one ever called
545         Monitor.Enter on the object.
546
547 2005-05-05  Lluis Sanchez Gual  <lluis@novell.com>
548
549         * threads.c: Enable the wait for running threads when exiting.
550         * icall.c: Suspend all threads before exiting.
551
552 2005-05-05  Zoltan Varga  <vargaz@freemail.hu>
553
554         * assembly.c (mono_assembly_load_reference): Fix warning.
555
556 2005-05-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
557
558         * threadpool.c: changed the default number of threads per cpu. From now
559         on, the default will be 20 + (5 * number of cpus) instead of 50.
560
561 2005-05-04  Zoltan Varga  <vargaz@freemail.hu>
562
563         * loader.c (mono_method_get_signature_full): Add locking here.
564
565 2005-05-03  Lluis Sanchez Gual <lluis@novell.com>
566
567         * appdomain.c: Moved methods for parsing and freeing assembly
568         names to assembly.c.
569         * assembly.c, domain-internals.h: Created public methods for parsing
570         assembly names. Fixed mono_assembly_load_with_partial_name:
571         it now finds the best match, taking into account the version,
572         token and culture specified in the partial name. Also return
573         the latest version if no version information is specified.
574
575 Mon May 2 15:47:57 CEST 2005 Paolo Molaro <lupus@ximian.com>
576
577         * threadpool.c: replace check for SocketAsyncCall class.
578
579 2005-05-02 Gonzalo Paniagua Javier <gonzalo@ximian.com>
580
581         * threadpool-internals.h:
582         * Makefile.am: added threadpool-internals.h
583
584         * threadpool.c: call mono_unhandled_exception on exceptions not handled
585         that happen in threadpool threads (tested on MS).
586         (mono_thread_pool_remove_socket): new function that dispatch any pending
587         AIO call on a socket that is closing. By now only epoll really needs it,
588         as select/poll wake up when the socket closes.
589
590
591         * socket-io.c: call mono_thread_pool_remove_socket in Close_internal.
592
593 2005-05-01  Zoltan Varga  <vargaz@freemail.hu>
594
595         * marshal.c (mono_marshal_get_managed_wrapper): Handle changing the calling convention.
596
597 2005-05-01  Lluis Sanchez Gual  <lluis@novell.com>
598
599         * gc.c: In mono_gc_cleanup(), wait for 2 seconds, not 2000 seconds.
600
601 2005-04-30  Lluis Sanchez Gual  <lluis@novell.com>
602
603         * threads.c: In mono_thread_suspend_all_other_threads, if a thread
604         has an abort request, convert it into a suspend request.
605
606 2005-04-30  Ben Maurer  <bmaurer@ximian.com>
607
608         * marshal.c (mono_marshal_get_managed_wrapper): give a friendly
609         warning for the usage of `UnmanagedFunctionPointerAttribute' which
610         is not supported yet.
611
612 2005-04-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
613
614         * image.c: register assemblies loaded from data (bundles) in the loaded
615         assemblies hash. Fixes bug #74772.
616
617 2005-04-29  Martin Baulig  <martin@ximian.com>
618
619         * class.c (mono_type_get_name_recurse): Update to the new naming
620         schema from the latest .NET 2.x beta2.
621         (mono_class_setup_vtable_general): If we're a generic instance,
622         copy the vtable from our generic type definition and inflate all
623         the methods in it.
624
625         * loader.c (find_method): Update to the new naming schema from the
626         latest .NET 2.x beta2.
627
628 2005-04-29  Raja R Harinath  <harinath@gmail.com>
629
630         * class.c (mono_class_init): Add a mono_loader_unlock to the
631         #74734 fix.
632
633 2005-04-28  Zoltan Varga  <vargaz@freemail.hu>
634
635         * icall.c (ves_icall_System_Environment_Exit): Remove the 
636         suspend_all_other_threads () call for the time being, since it can hang.
637
638         * threads.c (mono_thread_manage): Similarly, disable the waiting for
639         the background threads to exit, since it can also hang.
640
641         * class.c (mono_class_init): Applied patch from Ankit Jain 
642         (radical@gmail.com). Avoid pending init errors when a field refers
643         to a nested class using a typeref. Fixes #74734.
644
645         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): Fix
646         this for dynamic modules.
647
648 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
649
650         * threads.c: don't wait for threads that are in the process of aborting
651         or aborted. Set the 'shutting_down' flag before cleaning the threadpool
652         and waiting for background threads to finish. This makes xsp and
653         mod-mono-server exit without random length delays and/or hangs.
654
655 2005-04-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
656
657         * icall.c: remove duplicate assignment from GetReferencedAssemblies.
658
659 2005-04-25  Zoltan Varga  <vargaz@freemail.hu>
660
661         * class.c (mono_class_is_assignable_from): Call is_assignable_to for
662         dynamic types to prevent infinite loops. Fixes #74727.
663
664         * reflection.c (mono_reflection_call_is_assignable_from): Rename to
665         ..._is_assignable_to.
666
667 2005-04-25  Sebastien Pouliot  <sebastien@ximian.com>
668
669         * security.c: Fixed #74698 where sysconf returned -1 on FreeBSD.
670
671 2005-04-25  Martin Baulig  <martin@ximian.com>
672
673         Upgrade to the latest .NET 2.x beta (Visual Studio 2005 Beta 2).
674
675         * domain.c
676         (supported_runtimes): Change "v2.0.40607" -> "v2.0.50215".
677
678         * row-indexes.h (MONO_GENERICPARAM_KIND): Removed.
679
680         * reflection.c (build_compressed_metadata): Set metadata header
681         version to 2.0.
682
683 2005-04-23  Zoltan Varga  <vargaz@freemail.hu>
684
685         * sysmath.c (ves_icall_System_Math_Round2): Use modf to decompose the
686         number into an integral and a decimal part. Fixes #70473.
687
688         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): Ignore static fields. Fixes #74703.
689
690 2005-04-23  Atsushi Enomoto  <atsushi@ximian.com>
691
692         * culture-info-table.h : reflected the latest locale-builder output.
693
694 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
695
696         * threadpool.c: check for SuspendRequested too when deciding if
697         mono_thread_interruption_checkpoint should be called.
698
699 2005-04-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
700
701         * appdomain.[ch]: added function to set the shutting_down flag to TRUE.
702         * threads.c: remove interruption_mutex and use Interlocked instead. When
703         suspending all the threads, wait for all the suspended events at once.
704         If we're shutting down and get an APC that is going to be queued,
705         call mono_thread_execute_interruption immediately, as the thread might
706         be sleeping on a pthread condition or mutex.
707
708         * icall.c: call mono_runtime_set_shutting_down before suspending the
709         threads.
710
711         Fixes bug #74693. And now xsp is happier when exiting.
712
713 2005-04-22  Zoltan Varga  <vargaz@freemail.hu>
714
715         * loader.c (mono_stack_walk): Fix #74690.
716
717 2005-04-22  Martin Baulig  <martin@ximian.com>
718
719         * mono-debug.h (MonoDebugMethodJitInfo): Added
720         `MonoDebugMethodJitInfo *jit'.
721
722         * mono-debug.c (mono_debug_read_method): Cache the
723         MonoDebugMethodJitInfo in `address->jit'.
724         (mono_debug_free_method_jit_info): New public method.
725
726 2005-04-22  Martin Baulig  <martin@ximian.com>
727
728         * class.c (mono_class_is_assignable_from): Disallow
729         type parameter -> interface.
730
731 2005-04-21  Dick Porter  <dick@ximian.com>
732
733         * threads.c (mono_thread_create): Turn an assertion into an error.
734
735 2005-04-20  Zoltan Varga  <vargaz@freemail.hu>
736
737         * threads.c object.c icall.c: Fix some gcc 4.0 warnings.
738         
739         * threads.c marshal.h marshal.c exceptions.h exceptions.c appdomain.c: 
740         Fix some gcc 4.0 warnings.
741
742 Wed Apr 20 16:09:06 CEST 2005 Paolo Molaro <lupus@ximian.com>
743
744         * file-io.c: fix alt dir separator char on unix systems
745         and cleanup (fixes bug #71214).
746
747 2005-04-19  Lluis Sanchez Gual  <lluis@novell.com>
748
749         * marshal.c: Use CALLVIRT instead of CALL when dispatching
750         a call to a remote domain, since the method may be an
751         interface method in the client domain. This fixes bug #74192.
752
753 2005-04-17 Gonzalo Paniagua Javier <gonzalo@ximian.com>
754
755         * threadpool.c: recv/send are now performed before going back to managed
756         code to save one transition.
757
758 2005-04-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
759
760         * metadata/socket-io.c: fixed semantics in Socket.Blocking icall.
761
762         * metadata/threadpool.c: removed hack to workaround the bug above.
763
764         Fixes bug #74618.
765
766 2005-04-16  Zoltan Varga  <vargaz@freemail.hu>
767
768         * reflection.c reflection.h: Fix handling of parameter defaults in
769         dynamic methods. Also fixes handling of parameter attributes.
770         Fixes #74609.
771
772         * mono-debug.c (mono_debug_close_image): Fix warning.
773
774 2005-04-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
775
776         * socket-io.h: replaced old unused field with new 'blocking'.
777         * threadpool.c: restore socket blocking state on windows(tm).
778
779 2005-04-14  Sebastien Pouliot  <sebastien@ximian.com>
780
781         * icall.c: don't return the codebase in the AssemblyName[] returned by
782         ves_icall_System_Reflection_Assembly_GetReferencedAssemblies.
783         * object-internals.h: Removed FIXME (fields were presents) and fixed
784         versioncompat declaration.
785
786 2005-04-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
787
788         * threadpool.c: sometimes we get EBADF from epoll but the epollfd is
789         not closed, so don't cleanup when it happens.
790
791 2005-04-13  Chris Toshok  <toshok@ximian.com>
792
793         * mono-debug-debugger.h: change prototype for
794         mono_debugger_lookup_type.
795
796         * mono-debug-debugger.c (mono_debugger_lookup_type): reinstate
797         this function, although it should probably be named
798         mono_debugger_init_type.
799
800 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
801
802         * threadpool.c: fix non-AIO case.
803
804 2005-04-13  Zoltan Varga  <vargaz@freemail.hu>
805
806         * profiler.c (mono_profiler_install_simple): Add a 'jit' option to
807         the built-in profiler to measure just JIT compilation times.
808
809 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
810
811         * threadpool.c: the epollfd might be closed by another thread at
812         any time, so ignore EBADF at treat it as a "we're closing" sign.
813
814 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
815
816         * threadpool.c: release the semaphores with a count equals to the number
817         of working threads in both IO and regular pools. Fixed typo that messed
818         up the count of IO pool threads. Don't initialize the pipe handles if
819         we're using epoll.
820
821 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
822
823         * threadpool.c: some systems don't like a NULL when deleting the socket
824         from epoll.
825
826 2005-04-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
827
828         * threadpool.c: fix semaphore allocation.
829
830 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
831
832         * threadpool.c: added epoll() based implementation for asynchronous IO
833         that is used instead of the default poll() when available.
834         It can be disabled by setting MONO_DISABLE_AIO.
835
836 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
837
838         * threadpool.c: windows needs 'closesocket' and instead of returning
839         0 when the stream is closed while in select, it returns -1. Fixes bug
840         #74573.
841
842 2005-04-12  Zoltan Varga  <vargaz@freemail.hu>
843
844         * class.c (class_compute_field_layout): Fix the regression caused by
845         the previous try.
846
847 2005-04-12 Gonzalo Paniagua Javier <gonzalo@ximian.com>
848
849         * threadpool.c: separate pool for socket async. IO.
850         * threadpool.h: mono_max_worker_threads is not a global any more.
851
852 2005-04-10  Zoltan Varga  <vargaz@freemail.hu>
853
854         * class.c (class_compute_field_layout): Fix #74549.
855
856 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
857
858         * threadpool.c: select() on windows doesn't allow pipe handles, soooo
859         use 2 connected sockets instead.
860
861 2005-04-08  Miguel de Icaza  <miguel@novell.com>
862
863         * mono-config.c: Add new entry point for mkbundle
864         mono_config_parse_memory. 
865
866 2005-04-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
867
868         * threadpool.c: removed another unused function.
869
870 2005-04-08  Ankit Jain  <radical@corewars.org>
871
872         * reflection.c (get_default_param_value_blobs): Add 'types'
873         parameter to get the types encoded in the constant table.
874         (mono_param_get_objects): Use the type from the constant table,
875         not the type of the parameter, when creating default values.
876         Handle null default values correctly.
877
878 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
879
880         * file-io.c:
881         * file-io.h:
882         * threadpool.c:
883         * threadpool.h:
884         * icall.c:
885         * socket-io.c: removed dead code for async IO.
886
887 2005-04-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
888
889         * socket-io.h: 2 more fields in MonoSocketAsyncResult.
890
891         * threadpool.c: intercept socket async. calls and pass them to a thread
892         that is polling and dispatching the job items to the threadpool as
893         socket become ready. Fixes bugs #71217, #71933.
894
895         * icall.c: Removed AsyncReceive and AsyncSend. Speed up for copies
896         between char and short/ushort arrays.
897
898         * socket-io.c: remove dead code.
899
900 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
901
902         * locales.c,
903           icall.c : removed InternalToUpper_Comp() and
904           InternalToLower_Comp().
905
906 2005-04-06  Atsushi Enomoto  <atsushi@ximian.com>
907
908         * char-conversions.h : The tables were incorrectly generated. Should
909           be generated against invariant culture.
910
911 2005-04-04  Zoltan Varga  <vargaz@freemail.hu>
912
913         * object.c (mono_runtime_invoke_array): Fix return value when 
914         passing pre-created valuetype objects to ctors.
915
916         * gc.c (mono_gchandle_is_in_domain): Applied patch from Jon Larimer 
917         (jlarimer@gmail.com). Avoid crashes when the wrapper object is null.
918         Fixes #74338.
919
920 2005-03-30  Sebastien Pouliot  <sebastien@ximian.com>
921
922         * domain.c: removed g_assert for runtimesecurityframe_class. This is 
923         only used with --security and hides the wrong corlib version error.
924
925 2005-03-30  Joshua Tauberer  <tauberer@for.net>
926
927         * class.c: Changed mono_class_name_from_token so that types
928         outside of a namespace don't have an initial period.  Improved
929         the g_warning message used in _mono_class_get when loading
930         fails.
931         * assembly.c: In mono_assembly_load_reference, when an assembly
932         can't be found, "No such file or directory" is misleading and
933         unhelpful because a few paths were checked for the presence of
934         the assembly.  When that happens (ENOENT), display a nicer
935         message indicating the directories that were searched.  In all
936         cases, the warning is made easier to read for non-hackers.
937
938 2005-03-29  Sebastien Pouliot  <sebastien@ximian.com>
939
940         * assembly.c: Set MONO_ASSEMBLIES to NULL when compiling from a VS.NET
941         project/solution.
942         * appdomain.h|domain.c: Removed inline from functions.
943         * appdomain.c: Reduced warnings when compiling on windows.
944         * icall.c: Fixed output_debug declaration to gunichar2*.
945         * mono-config.c: Reduced warnings when compiling on windows.
946         * rand.c: Added missing "windows.h". Added missing return value.
947         * rawbuffer.c: Added missing winsock2.h for windows.
948         * sysmath.h: Added mono-compiler.h header to allow/ease 
949         compilation with non-GCC compilers.
950         * threads.c: Fixed declarations to compile with VS.NET C compiler.
951         Removed cast warnings.
952
953         Adapted from the work of J Lothian (for VC6).
954
955 2005-03-29  Zoltan Varga  <vargaz@freemail.hu>
956
957         * assembly.c (mono_assembly_load_corlib): Do not try loading corlib
958         from default_path.
959
960 2005-03-27  Zoltan Varga  <vargaz@freemail.hu>
961
962         * marshal.c (mono_marshal_get_managed_wrapper): Fix bogus assert on
963         the 2.0 profile.
964
965 2005-03-27  Raja R Harinath  <harinath@gmail.com>
966
967         * Makefile.am (assembliesdir): Fix.  If it is arch-dependent it
968         has to be in $(exec_prefix).  $(prefix) is for arch-independent
969         stuff, and it would probably use $(prefix)/share rather than
970         $(prefix)/lib.
971
972 2005-03-24 Gonzalo Paniagua Javier <gonzalo@ximian.com>
973
974         * console-io.c: added 2 includes that might be missing.
975
976 2005-03-24  Zoltan Varga  <vargaz@freemail.hu>
977
978         * marshal.c (mono_marshal_get_managed_wrapper): Fix crashes in 2.0
979         profile.
980
981         * reflection.c (create_custom_attr): Allocate the params array using
982         alloca so it gets GC tracking.
983
984 2005-03-23  Chris Toshok  <toshok@ximian.com>
985
986         * mono-debug-debugger.c (mono_debugger_runtime_invoke): comment
987         out some spew.
988
989 2005-03-24  Raja R Harinath  <rharinath@novell.com>
990
991         * Makefile.am (assembly.lo, mono-config.lo): Rebuild when Makefile
992         changes to pick up any changes in prefix, etc.
993
994 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
995
996         * marshal.c (mono_marshal_get_managed_wrapper): Remove fixme.
997         
998         * marshal.c (mono_marshal_get_managed_wrapper): Remove debugging output.
999         * marshal.c (mono_marshal_get_managed_wrapper): Add support for the modopt(CallConvCdecl).
1000
1001 2005-03-23  Zoltan Varga  <vargaz@freemail.hu>
1002
1003         * class-internals.h object-internals.h class.c reflection.c: Extend the
1004         mono_lookup_dynamic_token () function to return the class of the
1005         token as well. 
1006
1007         * class.c (mono_ldtoken): Handle MEMBERREFS in the dynamic case as
1008         well. Fixes #73848.
1009
1010 2005-03-23  Sebastien Pouliot  <sebastien@ximian.com>
1011
1012         * security-manager.c: Skip inheritance checks for intra-corlib
1013         class inheritance and method overrides. This skips a lot of checks
1014         and (anyway) permissions cannot work until corlib is loaded.
1015
1016 2005-03-23  Martin Baulig  <martin@ximian.com>
1017
1018         * marshal.c (mono_marshal_get_stfld_wrapper): Add support for
1019         MONO_TYPE_GENERICINST.  
1020
1021 2005-03-23  Martin Baulig  <martin@ximian.com>
1022
1023         * metadata.c (mono_type_to_unmanaged): Add MONO_TYPE_GENERICINST.
1024
1025 Tue Mar 22 16:57:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1026
1027         * class.c: added locking comments to some functions.
1028         Cache the interface offsets arrays (saves about 20 KB
1029         of runtime memory in a typical app).
1030         Reduce the time overhead in mono_class_setup_supertypes ().
1031
1032 Tue Mar 22 16:35:57 CET 2005 Paolo Molaro <lupus@ximian.com>
1033
1034         * icall.c: speedup and fix leaks in GetMethodsByName and
1035         GetPropertiesByName.
1036
1037 Tue Mar 22 16:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1038
1039         * reflection.c: some locking fixes.
1040
1041 Tue Mar 22 15:13:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1042
1043         * metadata.c: added missing break in case statement.
1044
1045 2005-03-22  Zoltan Varga  <vargaz@freemail.hu>
1046
1047         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1048         typedbyref return values. Fixes #73941.
1049
1050 2005-03-17  Sebastien Pouliot  <sebastien@ximian.com>
1051
1052         * security-manager.c|h: Added demandunmanaged method and 
1053         suppressunmanagedcodesecurity class to MonoSecurityManager.
1054         Renamed aptc class to allowpartiallytrustedcallers.
1055
1056 2005-03-17  Martin Baulig  <martin@ximian.com>
1057
1058         * class.c (inflate_generic_type): Add MONO_TYPE_ARRAY.
1059
1060 2005-03-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1061
1062         * file-io.c: disabled file async. IO using aio_*. It uses the
1063         threadpool now. Workaround for bug #73718.
1064
1065 Wed Mar 16 18:08:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1066
1067         * assembly.h, mono-config.c: added code to deal with bundled configs
1068         for bundled assemblies.
1069
1070 Wed Mar 16 16:34:38 CET 2005 Paolo Molaro <lupus@ximian.com>
1071
1072         * *.c, private.h: cleanup, removing old private.h header file.
1073
1074 2005-03-16  Zoltan Varga  <vargaz@freemail.hu>
1075
1076         * reflection.c (mono_image_get_method_info): Encode best_fit_mapping
1077         and throw_on_unmappable_char attributes.
1078
1079 2005-03-13  Sebastien Pouliot  <sebastien@ximian.com>
1080
1081         * process.c: Fix buffer length in ves_icall_System_Diagnostics_Process
1082         _ProcessName_internal.
1083
1084 2005-03-13  Zoltan Varga  <vargaz@freemail.hu>
1085
1086         * object.c (mono_array_new_full): Fix aligning of array size. Fixes
1087         #73631.
1088
1089         * icall.c threads.c threads-types.h: Remove slothash icalls as they
1090         are no longer used.
1091
1092 2005-03-11  Zoltan Varga  <vargaz@freemail.hu>
1093
1094         * object.c (compute_class_bitmap): Add support for generics. Fixes
1095         #73527.
1096
1097 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1098
1099         * reflection.c (mono_reflection_create_runtime_class): Fix 2.0 build.
1100
1101 2005-03-10 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1102
1103         * filewatcher.c: commented out the code for windows watcher, as we don't
1104         use it (we use the managed implementation instead).
1105
1106 2005-03-10  Zoltan Varga  <vargaz@freemail.hu>
1107
1108         * object-internals.h (MonoThread): Remove 'unused1' field.
1109
1110         * appdomain.c: Bump corlib version.
1111
1112         * marshal.c: Remove calls to Reset/RestoreDataStoreStatus ().
1113
1114         * reflection.c (mono_reflection_create_runtime_class): Remove the
1115         AssemblyBuilder.Save optimization since it causes too many problems.
1116
1117 2005-03-10  Sebastien Pouliot  <sebastien@ximian.com>
1118
1119         * exception.c|h: Added mono_get_exception_reflection_type_load to
1120         create a ReflectionTypeLoadException object.
1121         * icall.c: Updated ves_icall_System_Reflection_Assembly_InternalGetType
1122         to return NULL is a InheritanceDemand fails during reflection. Updated
1123         ves_icall_System_Reflection_Assembly_GetTypes to throw a 
1124         ReflectionTypeLoadException if an InheritanceDemand fails during 
1125         reflection. Added icall mapping for GetLinkDemandSecurity.
1126         * security-manager.c|h: Added ves_icall_System_Security_
1127         SecurityManager_GetLinkDemandSecurity internal call to return the
1128         class and methods permissions set for a LinkDemand. Removed unused
1129         fields in MonoSecurityManager.
1130
1131 2005-03-10  Martin Baulig  <martin@ximian.com>
1132
1133         * class.c (mono_bounded_array_class_get): Initialize `eclass' if
1134         it's a generic instance.
1135
1136 2005-03-09  Zoltan Varga  <vargaz@freemail.hu>
1137
1138         * reflection.c (mono_get_object_from_blob): Applied patch from
1139         Ankit Jain (radical@gmail.com). Fix enum default values. Fixes #73457.
1140
1141         * class.c (mono_class_is_assignable_from): Another try at fixing 
1142         #73469 without breaking anything.
1143
1144 2005-03-08  Zoltan Varga  <vargaz@freemail.hu>
1145
1146         * class.c: (mono_class_is_assignable_from): Revert the last changes
1147         since they don't work with generics.
1148         
1149         * class.c (mono_class_is_assignable_from): Fix build bustage.
1150
1151         * class.c (mono_class_is_assignable_from): If oklass is dynamic, call
1152         the managed IsAssignableFrom method. Fixes #73469.
1153
1154         * reflection.c (mono_reflection_call_is_assignable_from): New helper
1155         function.
1156
1157 2005-03-04  Zoltan Varga  <vargaz@freemail.hu>
1158
1159         * object.c (mono_load_remote_field_new): Fix returning uninitialized
1160         memory when the remoting callback does not sets the out arguments.
1161         Fixes #73007.
1162
1163         * marshal.c (mono_delegate_free_ftnptr): Remove debug array checked in
1164         by mistake.
1165
1166         * string-icalls.c: Return String.Empty where needed. Fixes #73310.
1167
1168         * object-internals.h (MonoStackFrame): Sync with managed object layout.
1169
1170         * appdomain.c: Bump corlib version.
1171
1172 2005-03-03  Zoltan Varga  <vargaz@freemail.hu>
1173
1174         * gc-internal.h boehm-gc.c null-gc.c: Add mono_gc_is_gc_thread () API
1175         function.
1176
1177         * threads.c (mono_thread_attach): Detect threads which are not started
1178         by the GC pthread wrappers.
1179
1180 2005-03-03  Sebastien Pouliot  <sebastien@ximian.com>
1181
1182         * icall.c: Added new icall for RNG.
1183         * rand.c|h: Added new icall to open the RNG. This allows to share a 
1184         single handle on Linux to access /dev/urandom and fix #73183.
1185
1186 Thu Mar 3 17:53:17 CET 2005 Paolo Molaro <lupus@ximian.com>
1187
1188         * object.c: setting the new vtable in a transparent proxy object must
1189         not change the GC descriptor.
1190
1191 Thu Mar 3 12:11:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1192
1193         * object.c: fixed compilation without GCJ support.
1194         * reflection.c: for runtime-created types ensure klass->has_references
1195         is correct (bug #73215).
1196
1197 2005-03-02  Martin Baulig  <martin@ximian.com>
1198
1199         * class.c (mono_class_is_assignable_from): Make this work if
1200         `oklass' is a generic instance; fixes #72831.
1201
1202 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1203
1204         * marshal.c (mono_marshal_get_managed_wrapper): Fix handling of methods
1205         with hasthis set.
1206         
1207         * marshal.c (emit_marshal_array): Emit native->managed marshalling of blittable arrays.
1208
1209         * marshal.c: Reorganize native->managed marshalling code to also use
1210         the emit_marshal_... functions.
1211
1212 Tue Mar 1 16:16:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1213
1214         * object.c: typed allocs have issues with bitmap sizes > 30,
1215         so check for max_set >= 30.
1216
1217 2005-03-01  Zoltan Varga  <vargaz@freemail.hu>
1218
1219         * marshal.c (emit_marshal_array): Implement marshalling of arrays to
1220         managed code. Fixes #73012.
1221
1222         * metadata.h (MonoMarshalSpec): Add elem_mult field.
1223
1224         * metadata.c reflection.c: Load/Emit elem_mult as well.
1225         
1226         * metadata.h (MonoMarshalSpec): Add comment.
1227
1228         * metadata.h: Add MONO_MARSHAL_CONV_LPTSTR_STR.
1229
1230         * metadata.c (mono_metadata_parse_marshal_spec): Set param_num and
1231         num_elem to -1 if not given.
1232
1233         * object-internals.h (MonoReflectionMarshal): Add has_size field.
1234
1235         * reflection.c (encode_marshal_blob): Differentiate between 0 and not
1236         given values.
1237
1238 2005-03-01  Marek Safar  <marek.safar@seznam.cz>
1239
1240         * null-gc.c (mono_gc_free_fixed): Was not compilable.
1241
1242 2005-02-28  Zoltan Varga  <vargaz@freemail.hu>
1243
1244         * reflection.c (encode_marshal_blob): Encode param_num field as well.
1245
1246         * object-internals.h (MonoReflectionMarshal): Add param_num field.
1247
1248 Mon Feb 28 11:59:42 CET 2005 Paolo Molaro <lupus@ximian.com>
1249
1250         * object.c: generalized the reference bitmap creation
1251         and added hooks for the new GC.
1252         * class-internals.c: removed the gc_bitmap field from MonoClass.
1253
1254 Sat Feb 26 16:06:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1255
1256         * domain.c: help the compiler to produce better code
1257         in mono_jit_info_table_find ().
1258
1259 Fri Feb 25 16:50:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1260
1261         * object.c: make all allocations look typed.
1262
1263 Fri Feb 25 16:18:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1264
1265         * socket-io.c: load Mono.Posix if it's not loaded already
1266         (fixes bug#73033).
1267
1268 2005-02-24  Martin Baulig  <martin@ximian.com>
1269
1270         * class.c (dup_type): Correctly duplicate MONO_TYPE_PTR.
1271         * reflection.c (dup_type): Likewise.
1272
1273 2005-02-24  Zoltan Varga  <vargaz@freemail.hu>
1274
1275         * gc.c (run_finalize): Set the domain for finalizing delegates as well.
1276         Thanks to Willibald Krenn and Scott Mohekey for tracking this down.
1277
1278 Thu Feb 24 15:19:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1279
1280         * domain.c, threads.c, object-internals.h: make the critical thread
1281         local vars use the fast access mode (even when we're compiled in
1282         a lib). Provide accessors to be used by the jit during codegen.
1283
1284 2005-02-24  Carlos Alberto Cortez <calberto.cortez@gmail.com>
1285
1286         * appdomain.c: Changed hook functios behavior to include
1287         support for the reflection only assemblies. Some icalls were changed
1288         to support the mentioned assemblies too. Signatures of static methods
1289         try_assembly_resolve and real_load now have an additional parameter:
1290         refonly.
1291
1292         * assembly.c: General changes to mono_assembly_ methods to support
1293         reflection only api. Functions mono_assembly_open, mono_assembly_load,
1294         mono_assembly_load_from and mono_assembly_loaded have got a '_full'
1295         suffix, to support an additional gbool parameter to specify whether
1296         the assembli is reflection only or not. Created some new hook functions 
1297         to add support for reflection only assemblies. Signatures of static 
1298         methods load_in_path, search_loaded, and mono_assembly_load_from_gac 
1299         have now an additional parameter: refonly.
1300
1301         * metadata-internals.h: MonoAssembly now has a gbool ref_only flag,
1302         indicating whether the assembly is reflection only or not.
1303
1304         * exception.c: Add mono_get_exception_invalid_operation.
1305
1306         * icall.c: Throw an InvalidOperationException when trying to invoke
1307         a property/method/event, or trying to set/get the value of a field.
1308         Also add an icall to retrieve the ref_only flag to the
1309         MonoReflectionAssembly.
1310
1311 2005-02-23  Chris Toshok  <toshok@ximian.com>
1312
1313         Part of fix for #72827.
1314         * mono-debug.c (mono_debug_add_method): add lexical block data to
1315         the info we write.  Kind of a hack at the moment - we copy the
1316         lexical block info from the MonoDebugMethodInfo to the
1317         MonoDebugMethodJitInfo here, before writing it.
1318         (mono_debug_read_method): read the lexical block info.
1319
1320         * mono-debug.h (_MonoDebugMethodJitInfo): add lexical block slots.
1321
1322         * debug-mono-symfile.h: add lexical block support.
1323
1324         * debug-mono-symfile.c (mono_debug_find_method): add lexical block
1325         support.
1326
1327 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1328
1329         * loader.c (mono_lookup_pinvoke_call): Fix warning.
1330
1331         * object.c (mono_runtime_free_method): Call mono_free_method () and
1332         put the TODOs there.
1333
1334         * loader.c (mono_free_method): Free up most memory allocated for 
1335         dynamic methods.
1336
1337 Wed Feb 23 18:54:26 CET 2005 Paolo Molaro <lupus@ximian.com>
1338
1339         * reflection.c: properly flag a Type argument to a
1340         named custom attr value (bug #72248).
1341
1342 Wed Feb 23 18:32:35 CET 2005 Paolo Molaro <lupus@ximian.com>
1343
1344         * reflection.c: reduce code duplication in named custom
1345         attribute encoding.
1346
1347 Wed Feb 23 17:23:52 CET 2005 Paolo Molaro <lupus@ximian.com>
1348
1349         * reflection.c: properly encode custom attrs of type object
1350         (bug #72649).
1351
1352 2005-02-23  Zoltan Varga  <vargaz@freemail.hu>
1353
1354         * marshal.c (mono_delegate_free_ftnptr): Make this thread safe.
1355
1356 Tue Feb 22 21:54:47 CET 2005 Paolo Molaro <lupus@ximian.com>
1357
1358         * socket-io.c: load System.dll if it's not loaded already
1359         (bug #72850 and #70477).
1360
1361 2005-02-21  Martin Baulig  <martin@ximian.com>
1362
1363         * marshal.c (mono_marshal_get_runtime_invoke): Add support for
1364         generic instances.
1365
1366 2005-02-21  Martin Baulig  <martin@ximian.com>
1367
1368         * reflection.c (mono_image_build_metadata): We also need to
1369         "fixup" the MethodImpl table after we computed the final method
1370         indices.  Call fixup_methodimpl() to do that.
1371         (fixup_methodimpl): New private method.
1372
1373 Mon Feb 21 16:17:14 CET 2005 Paolo Molaro <lupus@ximian.com>
1374
1375         * assembly.c: special case mscorlib.dll (bug#72536),
1376         patch from Carlos Alberto Cortez.
1377
1378 2005-02-20  Zoltan Varga  <vargaz@freemail.hu>
1379
1380         * threads-types.h threads.c: Fix build bustage.
1381
1382         * threads.c: Use a union for long<->double conversions.
1383
1384         * threads-types.h threads.c icall.c: Implement the net 2.0 interlocked
1385         functions based on a patch by Luca Barbieri (luca.barbieri@gmail.com).
1386
1387         * marshal.c (emit_thread_interrupt_checkpoint_call): Mark the bblock 
1388         containing the checkpoint call with NOT_TAKEN.
1389         
1390         * marshal.c (mono_marshal_get_managed_wrapper): Emit interrupt 
1391         checkpoint before pushing the arguments, so they won't have to be
1392         spilled to stack.
1393
1394 Sat Feb 19 15:19:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1395
1396         * domain.c, assembly.c, domain-internals.h: make some data
1397         const and relocation-free.
1398
1399 Sat Feb 19 11:12:34 CET 2005 Paolo Molaro <lupus@ximian.com>
1400
1401         * object.c, appdomain.c, class-internals.h: introduce the
1402         MonoClassRuntimeInfo structure to hold the info needed to
1403         use a class at runtime. Made mono_class_vtable() lock-free
1404         for all the appdomains.
1405
1406 Sat Feb 19 11:11:12 CET 2005 Paolo Molaro <lupus@ximian.com>
1407
1408         * metadata-internals.h, image.c: introduce a per-image mempool to
1409         be used for memory that has the same lifetime as the image.
1410
1411 2005-02-18  Lluis Sanchez Gual  <lluis@novell.com>
1412
1413         * domain.c: In mono_init_internal(), instead of selecting the first
1414         runtime version supported by an executable, get a list of all
1415         supported versions and select the one for which an mscorlib exists
1416         (since even if the runtime supports a given version, it doesn't mean
1417         that the framework for that version is installed).
1418         Modified get_runtimes_from_exe to support this behavior.
1419         In supported_runtimes, added information about additional system
1420         assembly versions.
1421         
1422         * assembly.c: Added support for more than one system assembly version
1423         per runtime version. Updated the assembly list.
1424         In mono_assembly_remap_version, removed the initial version check,
1425         since we don't know to which version we need to compare until we
1426         get the version set on which the assembly is based.
1427         Moved the code for loading corlib into the new method
1428         mono_assembly_load_corlib(), so it can be used by the initialization
1429         code.
1430         
1431         * domain-internals.h: Updated data structures and added declaration
1432         for mono_assembly_load_corlib.
1433
1434 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1435
1436         * reflection.c (resolve_object): Fix the creation of the signature in 
1437         the SignatureHelper case.
1438
1439         * assembly.c (mono_assembly_remap_version): Fix binary search.
1440         
1441 2005-02-17  Sebastien Pouliot  <sebastien@ximian.com>
1442  
1443         * class.c: Added inheritance check when a method is overloaded (from a
1444         virtual method or when implementing an interface) and when a class is
1445         inherited. Added functions to set a failure for a class and to 
1446         retreive the exception from a failure.
1447         * class-internals.h: Added fields to MonoClass to keep the exception
1448         information status for inheritance (or other exceptions) to be thrown
1449         later (i.e. not at load time).
1450         * object.c: Throw the inheritance SecurityException when a type is to 
1451         be created with either class or method inheritance violations.
1452         * reflection.c|h: Fix when getting declsec from a class. Removed 
1453         unrequired code for class. Improved sanity in parameter naming.
1454         * security-manager.c|h: Added functions to check for class and method
1455         inheritance.
1456
1457 2005-02-17  Zoltan Varga  <vargaz@freemail.hu>
1458
1459         * reflection.c (mono_reflection_create_runtime_class): Set has_cctor
1460         and has_finalize in dynamic types as well.
1461
1462 2005-02-17  Atsushi Enomoto  <atsushi@ximian.com>
1463
1464         * culture-info-table.h : fixed currency format for en-GB (and so on).
1465
1466 Wed Feb 16 16:28:15 CET 2005 Paolo Molaro <lupus@ximian.com>
1467
1468         * gc.c: ensure the GC handles never have 0 as a value.
1469
1470 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1471
1472         * marshal.c (emit_marshal_ptr): Raise an exception if trying to pass
1473         a pointer to a struct to unmanaged code. Fixes #72625.
1474
1475 2005-02-16  Martin Baulig  <martin@ximian.com>
1476
1477         * mono-debug.c (mono_debug_open_image): Ignore dynamic images.
1478
1479 2005-02-16  Zoltan Varga  <vargaz@freemail.hu>
1480
1481         * marshal.c (emit_marshal_array): Only marshal unicode char arrays as [Out].
1482
1483 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1484
1485         * loader.c (mono_lookup_pinvoke_call): Fix stdcall name mangling.
1486
1487         * marshal.c (mono_ftnptr_to_delegate): If the delegate has the 
1488         UnmanagedFunctionPointerAttribute, use it for determining calling convention
1489         etc. Fixes #71471.
1490
1491         * reflection.c (mono_custom_attrs_get_attr): New helper function.
1492
1493         * object-internals.h: Add MonoReflectionUnmanagedFunctionPointerAttribute.
1494
1495 Tue Feb 15 18:03:41 CET 2005 Paolo Molaro <lupus@ximian.com>
1496
1497         * domain.c, appdomain.c, appdomain.h, object-internals.h, object.h:
1498         changes to make the current context a field in MonoThread.
1499
1500 2005-02-15  Zoltan Varga  <vargaz@freemail.hu>
1501
1502         * marshal.c (mono_marshal_get_native_wrapper): Fix a crash caused by
1503         the last change.
1504         
1505         * marshal.c (mono_marshal_emit_native_wrapper): New helper function
1506         extracted from mono_marshal_get_native_wrapper.
1507
1508         * marshal.c (mono_marshal_get_native_func_wrapper): New helper function
1509         to create wrappers around native functions.
1510
1511         * marshal.c (mono_ftnptr_to_delegate): Add support for creating 
1512         delegates for arbitrary function pointers. Fixes #71472.
1513
1514 Tue Feb 15 11:01:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1515
1516         * threads.c: cleaned up the code a little.
1517
1518 2005-02-15  Martin Baulig  <martin@ximian.com>
1519
1520         * mono-debug.h (MonoSymbolTable): Allow variable-length chunks in
1521         the data table.
1522
1523         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Set to 32768; we may now
1524         allocate larger chunks if needed.
1525
1526 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1527
1528         * threads.c (start_wrapper): Remove #ifdef PLATFORM_WIN32 probably left
1529         in by mistake.
1530
1531 Mon Feb 14 16:48:24 CET 2005 Paolo Molaro <lupus@ximian.com>
1532
1533         * domain.c: keep the domains in an array and ensure the domain ids
1534         are kept small, so they can be used as indexes to domain-specific data
1535         with a small memory overhead.
1536
1537 2005-02-14  Zoltan Varga  <vargaz@freemail.hu>
1538
1539         * icall.c: Handle byref types in Type icalls. Fixes #72544.
1540
1541 Mon Feb 14 15:39:56 CET 2005 Paolo Molaro <lupus@ximian.com>
1542
1543         * Makefile.am: remove libmetadata: we build just libmonoruntime now.
1544
1545 2005-02-13  Zoltan Varga  <vargaz@freemail.hu>
1546
1547         * tabledefs.h (MANIFEST_RESOURCE_VISIBILITY_MASK): Add flags for ManifestResource.
1548
1549         * loader.c (mono_lookup_pinvoke_call): Correct the search order used for different CharSet
1550         values.
1551
1552         * marshal.c (mono_marshal_get_string_encoding): CHAR_SET_AUTO means Unicode on windows.
1553         
1554 2005-02-12  Ben Maurer  <bmaurer@ximian.com>
1555
1556         * domain-internals.h: add the hashtable here.
1557
1558         * class-internals.h: Remove `info' from MonoMethod
1559
1560         * domain.c: Add a new hashtable, jit_trampoline_hash
1561
1562 Fri Feb 11 17:11:20 CET 2005 Paolo Molaro <lupus@ximian.com>
1563
1564         * object.c: don't set the value of static fields
1565         (fixes bug#72494).
1566
1567 2005-02-11  Martin Baulig  <martin@ximian.com>
1568
1569         * mono-debug.c (DATA_TABLE_CHUNK_SIZE): Increase to 131072.
1570         (mono_debug_add_method): Silently ignore the method if it's too big.
1571         (mono_debug_add_type): Likewise.
1572
1573 Fri Feb 11 16:22:10 CET 2005 Paolo Molaro <lupus@ximian.com>
1574
1575         * threads.c, appdomain.c: remove #ifdefs from the code.
1576
1577 2005-02-10  Sebastien Pouliot  <sebastien@ximian.com>
1578
1579         * metadata-internals.h: Added flags to MonoAssembly to cache the most
1580         common security informations. This allows us to stay in unmanaged code
1581         when doing LinkDemand and it's special cases (except for the first 
1582         time for initialization). The flags a very much used with --security.
1583         * reflection.c|h: Added code to get declarative security attributes 
1584         for LinkDemand and InheritanceDemand. This required to refactor the
1585         existing code for Demand.
1586         * security-manager.c|h: Added new method fields for the special cases
1587         of LinkDemand.
1588
1589 2005-02-10  Martin Baulig  <martin@ximian.com>
1590
1591         * icall.c (ves_icall_MonoDebugger_MakeArrayType): New interncall.
1592         (ves_icall_MonoDebugger_GetTypeToken): New interncall.
1593
1594 2005-02-10  Martin Baulig  <martin@ximian.com>
1595
1596         * mono-debug.c, mono-debug-debugger.c: Completely reworked the
1597         debugging code; this is almost a complete rewrite.
1598
1599         * icall.c (ves_icall_MonoDebugger_GetMethodIndex): New interncall.
1600
1601 Thu Feb 10 15:19:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1602
1603         * domain.c, object.h: expose mono_string_equal () and 
1604         mono_string_hash ().
1605         * icall.c, string-icalls.c: remove the string.GetHashCode () icall,
1606         it's implemented in managed code.
1607
1608 Thu Feb 10 15:03:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1609
1610         * icall.c, gc.c, gc-internal.h: make sure gchandles can't be used
1611         lo leak objects between appdomains.
1612
1613 Thu Feb 10 14:25:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1614
1615         * assembly.c: old compilers compilation fix from 
1616         robertj@gmx.net (Robert Jordan).
1617
1618 2005-02-09  Ben Maurer  <bmaurer@ximian.com>
1619
1620         * class-internals.h: Little reminder for the future.
1621
1622         * debug-helpers.c: Fix up wrapper_type_names
1623
1624 Wed Feb 9 19:34:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1625
1626         * image.c, metadata-internals.h: when loading an image from a file,
1627         mmap all of it and use the same codepaths as when using a
1628         in-memory image: the code is simpler and we use less memory
1629         (both writable and readonly).
1630
1631 Wed Feb 9 18:32:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1632
1633         * gc-internal.h, null-gc.c, boehm-gc.c: added functions to the GC
1634         API to alloc runtime data structures that need to be tracked by the
1635         GC and contain pointers.
1636         * appdomain.c, threads.c, object.c, gc.c: use the above changes to
1637         make the code more readable and eventually use a different GC.
1638
1639 2005-02-09  Zoltan Varga  <vargaz@freemail.hu>
1640
1641         * marshal.c (emit_marshal_vtype): Don't do managed->native conversion
1642         for out arguments.
1643         
1644 2005-02-09  Lluis Sanchez Gual  <lluis@novell.com>
1645
1646         * object.c: In release_type_locks(), don't release the cctor lock
1647         if it has already been released. This fixes a crash in the
1648         thread5 test.
1649
1650 Tue Feb 8 19:02:59 CET 2005 Paolo Molaro <lupus@ximian.com>
1651
1652         * gc.c, marshal.c, icall.c: register a delegate for finalization
1653         only when the native function pointer has been allocated for it.
1654
1655 Tue Feb 8 18:12:27 CET 2005 Paolo Molaro <lupus@ximian.com>
1656
1657         * object.c: cleaned up some code, allocate objects that are
1658         pointer free with the atomic malloc variant. Allocate memory
1659         for static data from the mempool if it's pointer-free.
1660         Allocate the bounds array at the end of the array data, when needed.
1661         * object-internals.h, object.h: move a private function in a private
1662         header.
1663         * class.c: handle missing case in tracking references in fields.
1664
1665 Tue Feb 8 18:04:51 CET 2005 Paolo Molaro <lupus@ximian.com>
1666
1667         * class.c, class-internals.h: keep track if a type has
1668         reference fields in either the instance or static fields.
1669
1670 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
1671
1672         * domain.c, domain-internals.h: Moved RuntimeInfo to domain-internals.h,
1673         and renamed to MonoRuntimeInfo. Added fields to store the expected
1674         framework assembly version. Changed mono_get_framework_version and
1675         mono_get_runtime_version for a single mono_get_runtime_info method.
1676         
1677         * assembly.c: Added method to remap system assembly versions to the
1678         current executing runtime version. Removed old mapping code.
1679         Remap assembly versions in mono_assembly_load and mono_assembly_loaded.
1680         
1681         * icall.c, reflection.c: Track api changes.
1682
1683 2005-02-06  Miguel de Icaza  <miguel@novell.com>
1684
1685         * loader.c (method_from_memberref): Improve error reporting,
1686         produce the class name instead of the typeref/typedef index. 
1687
1688 2005-02-07  Zoltan Varga  <vargaz@freemail.hu>
1689
1690         * marshal.c (mono_marshal_get_stfld_remote_wrapper): Fix wrapper type.
1691
1692 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1693
1694         * loader.c (mono_lookup_pinvoke_call): Allow for combination of
1695         stdcall and charset name mangling.  Reorganize the code and add
1696         some tracing stuff.
1697
1698 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1699
1700         * monodiet.c: More iters!
1701
1702         * marshal.c: Iter usage.
1703
1704         * icall.c: Iter usage.
1705
1706         * object.c: Use iters.
1707
1708         * debug-helpers.c: More iters
1709
1710 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1711
1712         * loader.c (mono_lookup_pinvoke_call): Add brute-force checking for mangled function names
1713         under win32.
1714
1715 2005-02-05  Ben Maurer  <bmaurer@ximian.com>
1716
1717         * mono-debug-debugger.c: use iters
1718
1719         * class.c, class-internals.h: mono_class_setup_events is static
1720         now
1721
1722         * All callers: use iters
1723
1724 2005-02-05  Zoltan Varga  <vargaz@freemail.hu>
1725
1726         * class.c string-icalls.c marshal.c reflection.c: Applied patch from
1727         Robert Jordan (robertj@gmx.net). Fix compilation errors under gcc-2.95.
1728
1729 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1730
1731         * object.c (mono_class_proxy_vtable): Add missing _setup () calls.
1732
1733         * marshal.h: Add prototypes for ldfld/stfld_remote.
1734
1735         * appdomain.c (mono_domain_fire_assembly_load): Handle the case when
1736         this is called during startup.
1737         
1738 Fri Feb 4 20:27:58 CET 2005 Paolo Molaro <lupus@ximian.com>
1739
1740         * appdomain.c, monitor.c, monitor.h, threads-types.h: made the
1741         MonoThreadsSync struct private in monitor.c. Changed the way
1742         MonoThreadsSync is allocated so it's faster and there is no
1743         need to keep track of it with a finalizer and it uses less memory.
1744         This also finally allows us to allocate mono objects as ptrfree when
1745         there are no reference fields.
1746
1747 Fri Feb 4 20:24:03 CET 2005 Paolo Molaro <lupus@ximian.com>
1748
1749         * gc.c, null-gc.c, boehm-gc.c, gc-internal.h: added functions to deal with
1750         disappearing link to the GC interface and use them to simplify
1751         the gchandles code.
1752
1753 2005-02-04  Zoltan Varga  <vargaz@freemail.hu>
1754
1755         * class-internals.h marshal.c: Add two new wrappers, ldfld_remote and
1756         stfld_remote which call mono_load/store_field_new. This allows methods
1757         calling ldfld/stfld wrappers to be AOTed.
1758
1759         * console-io.c: Include sys/filio.h under solaris.
1760         
1761         * console-io.c: Include curses.h if needed correctly.
1762
1763 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1764         
1765         * icall.c (ves_icall_MonoMethod_get_base_definition): Initialize
1766         method->klass as well.
1767
1768         * class-internals.h (MonoCachedClassInfo): Add 'finalize_image' field.
1769
1770         * class.c (mono_class_init): Switch on lazy initialization of 
1771         methods.
1772
1773         * class.c (mono_class_get_finalizer): Handle the case when the 
1774         finalizer is inherited.
1775
1776 2005-02-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1777
1778         * console-io.c: <curses.h> is needed by term.h on solaris.
1779
1780 2005-02-03  Ben Maurer  <bmaurer@ximian.com>
1781
1782         * icall.c, class-internals.h, monodiet.c, class.c: Remove
1783         mono_class_setup_properties where possible. Remove this ftn from
1784         the header file, and make it static.
1785
1786 2005-02-03  Zoltan Varga  <vargaz@freemail.hu>
1787
1788         * loader.c: Add missing setup_... call.
1789
1790         * class.c: Add missing setup_... calls.
1791
1792         * class.c (mono_class_init): Switch on lazy initialization of 
1793         the generic vtable.
1794         
1795         * class.c (mono_class_init): Fix generics broken by the recent changes.
1796
1797         * monodiet.c (handle_type): Add missing setup_... calls.
1798
1799         * class.c: Back out garbage in previous patch.
1800         
1801         * class.c: Add missing setup_... calls.
1802
1803         * class.c (mono_class_get_method_from_name_flags): Avoid calling
1804         mono_class_setup_methods () if possible.
1805
1806         * class-internals.h (MonoClass): Add 'has_cctor' flag.
1807
1808         * class-internals.h (MonoCachedClassInfo): New structure.
1809
1810         * class.c: Initialize properties and events fields of MonoClass lazily.
1811
1812         * class.c: Add infrastructure for lazily initializing the methods and
1813         vtable fields of MonoClass. Not yet used.
1814
1815         * class.c (mono_class_get_finalizer): New helper function.
1816
1817         * class.c: Add infrastructure for loading some class related data from
1818         an AOT file.
1819
1820         * object.c: Add infrastructure for initializing the vtable from data
1821         in the AOT file.
1822
1823         * gc.c (run_finalize): Use mono_class_get_finalizer ().
1824
1825         * class.c loader.c object.c icall.c gc.c reflection.c: Call the
1826         appropriate initialization function before accessing parts of the
1827         MonoClass structure.
1828
1829         * marshal.c: Fix warnings.
1830         
1831         * marshal.c (emit_marshal_array): Add missing 'break'. Fixes #72169.
1832
1833         * mono-debug-debugger.c (get_exception_message): Use 
1834         mono_class_get_method_from_name_flags ().
1835
1836 2005-02-02  Ben Maurer  <bmaurer@ximian.com>
1837
1838         * reflection.c, appdomain.c: Replace a few manual searches that
1839         Zoltan missed. (Paolo approved this part of my initial patch).
1840
1841 Wed Feb 2 16:32:08 CET 2005 Paolo Molaro <lupus@ximian.com>
1842
1843         * profiler.c: disable recording statistical events at report time.
1844
1845 Wed Feb 2 14:14:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1846
1847         * icall.c: patch from Geoff Norton <gnorton@customerdna.com>
1848         to byteswap arrays of enum values, too (bug #72080).
1849
1850 2005-02-02  Zoltan Varga  <vargaz@freemail.hu>
1851
1852         * appdomain.c (set_domain_search_path): Allow this to be called if
1853         domain->setup is not yet set.
1854
1855         * loader.c (mono_method_get_index): New helper function.
1856
1857         * loader.c reflection.c: Use mono_method_get_index ().
1858
1859         * class.c (mono_class_get_method_from_name_flags): New helper method.
1860
1861         * debug-helpers.h debug-helpers.c (mono_find_method_by_name): Remove
1862         this.
1863
1864         * class.c (mono_class_get_cctor): New helper method.
1865
1866         * string-icalls.c object.c class.c marshal.c reflection.c: Use
1867         mono_class_get_method () to look up methods.
1868
1869 2005-02-01  Miguel de Icaza  <miguel@novell.com>
1870
1871         * console-io.c: Fix the build, this should work on Windows.
1872
1873 2005-01-31  Ben Maurer  <bmaurer@ximian.com>
1874
1875         * marshal.c (mono_marshal_xdomain_copy_out_value): cached_str must
1876         be set to null to keep things valid
1877
1878 2005-01-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1879
1880         * icall.c: added Console 2.0 icalls.
1881         * Makefile.am: added console-io.[ch]
1882         * console-io.[ch]: internal calls for Console 2.0 API.
1883
1884 Mon Jan 31 19:01:29 CET 2005 Paolo Molaro <lupus@ximian.com>
1885
1886         * class.c: make sure we consider all the interfaces
1887         when calculating max_interface_id (bug found by
1888         Jeroen Frijters running ikvm).
1889
1890 2005-01-31  Zoltan Varga  <vargaz@freemail.hu>
1891
1892         * icall.c (ves_icall_FieldInfo_SetValueInternal): Handle setting of
1893         valuetype fields to null.
1894
1895         * object.c (set_value): Ditto. Fixes #71669.    
1896
1897 2005-01-31  Martin Baulig  <martin@ximian.com>
1898
1899         * metadata.c (mono_metadata_has_generic_params): New public
1900         function; checks whether something is a generic method.
1901
1902 Sun Jan 30 20:19:48 CET 2005 Paolo Molaro <lupus@ximian.com>
1903
1904         * appdomain.c: fix infinite recursion when adding assemblies.
1905
1906 2005-01-30  Sebastien Pouliot  <sebastien@ximian.com>
1907
1908         * object.c: Fix small typo to return all items for Environment.
1909         GetCommandLineArgs.
1910
1911 Sun Jan 30 16:49:01 CET 2005 Paolo Molaro <lupus@ximian.com>
1912
1913         * domain.c, appdomain.c, assembly.c, image.c, domain-internals.h,
1914         reflection.c: more domain and assembly-unload related fixes
1915         and memory leaks plugs.
1916
1917 2005-01-30  Zoltan Varga  <vargaz@freemail.hu>
1918
1919         * 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.
1920
1921 2005-01-29  Ben Maurer  <bmaurer@ximian.com>
1922
1923         * loader.c (mono_method_signature): Make this method lazy
1924         (mono_get_method_from_token): Don't computate the signature here.
1925
1926         Doing this saves quite a bit of memory. I got 90 kb on starting up
1927         monodoc. It should also save some disk reads on startup.
1928
1929         * *: MonoMethod->signature might be NULL now. You *MUST* use
1930         mono_method_signature.
1931
1932 2005-01-29  Zoltan Varga  <vargaz@freemail.hu>
1933
1934         * object.c (mono_runtime_get_main_args): Return an array from the
1935         current domain here. Fixes #71938.
1936
1937 Sat Jan 29 15:59:05 CET 2005 Paolo Molaro <lupus@ximian.com>
1938
1939         * monitor.c: formatting changes to comply with the
1940         mono coding style and remove #ifdefs from the code.
1941
1942 Sat Jan 29 15:18:54 CET 2005 Paolo Molaro <lupus@ximian.com>
1943
1944         * metadata.c, private.h: remove some unneeded data
1945         and use a more compact representation for table schemas.
1946
1947 Fri Jan 28 18:23:44 CET 2005 Paolo Molaro <lupus@ximian.com>
1948
1949         * metadata.c, metadata-internals.h: add mono_aligned_addr_hash()
1950         to get a better distribution in hash tables.
1951         * *.c: use mono_aligned_addr_hash() where appropriate.
1952         * assembly.c: make var static.
1953
1954 2005-01-28  Zoltan Varga  <vargaz@freemail.hu>
1955
1956         * domain-internals.h: Put MonoJitInfo on a diet.
1957
1958         * domain.c: Fix a warning.
1959
1960 Wed Jan 26 22:20:46 CET 2005 Paolo Molaro <lupus@ximian.com>
1961
1962         * gc.c: rework the gc handles code to reuse handles
1963         when freed.
1964
1965 Wed Jan 26 17:34:09 CET 2005 Paolo Molaro <lupus@ximian.com>
1966
1967         * domain.c: fixed long standing bug in mono_string_equal() which
1968         was brought to light with the ldstr changes.
1969
1970 2005-01-26  Sebastien Pouliot  <sebastien@ximian.com>
1971
1972         * reflection.c: Remove warning by adding missing include for marshal.h
1973
1974 Tue Jan 25 18:06:00 CET 2005 Paolo Molaro <lupus@ximian.com>
1975
1976         * domain.c, object.c: change the ldstr_table to hold
1977         MonoString* as keys: makes the runtime isinterned lookup
1978         faster and simplifies memory management.
1979
1980 2005-01-25  Sebastien Pouliot  <sebastien@ximian.com> 
1981  
1982         * icall.c: Renamed GetEnvironmentVariable so internal* so it was
1983         possible to add imperative security checks before calling the icall.
1984         * reflection.c: Return security attributes on the original MonoMethod
1985         (and not the wrapped one). This fix permissions on icalls.
1986
1987 2005-01-25  Dick Porter  <dick@ximian.com>
1988
1989         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Make
1990         the check for mktime() support actually test the mktime() return
1991         value.  "Fixes" bug 71682, though the output is still different to
1992         MS.
1993
1994 2005-01-25  Martin Baulig  <martin@ximian.com>
1995
1996         * class.c (mono_class_is_assignable_from): Make this work for
1997         generic instances.
1998
1999 2005-01-24  Ben Maurer  <bmaurer@ximian.com>
2000
2001         * marshal.c (mono_string_utf8_to_builder)
2002         (mono_string_builder_to_utf16): We might not have ownership of the
2003         string. In thise case, we need to create a new buffer.
2004
2005         * object-internals.h (mono_stringbuilder_capacity): sb->str might
2006         be null, in which case, use the default capacity.
2007
2008 Mon Jan 24 16:42:29 CET 2005 Paolo Molaro <lupus@ximian.com>
2009
2010         * gc-internal.h, null-gc.c, profiler.c, boehm-gc.c: hook the
2011         GC events to the profiler.
2012
2013 Mon Jan 24 15:59:54 CET 2005 Paolo Molaro <lupus@ximian.com>
2014
2015         * gc.c: remove valgrind detection nonsense. Set GC_DONT_GC
2016         if you don't want the GC to run.
2017
2018 Mon Jan 24 15:53:25 CET 2005 Paolo Molaro <lupus@ximian.com>
2019
2020         * Makefile.am, gc.c, mono-gc.h, boehm-gc.c, null-gc.c, gc-internal.h:
2021         start providing a GC API and keeping different implementations in
2022         their own file.
2023         * profiler.h, profiler.c, profiler-private.h: provide the GC events API.
2024
2025 2005-01-22  Ben Maurer  <bmaurer@ximian.com>
2026
2027         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Use
2028         mmap rather than allocating a huge buffer.
2029         (mono_debug_close_mono_symbol_file): Free the buffer allocated
2030         above.
2031
2032 2005-01-22  Sebastien Pouliot  <sebastien@ximian.com>
2033
2034         * icall.c: Add new internal calls for SecurityManager.SecurityEnabled
2035         and CheckExecutionRights.
2036         * reflection.c|h: Keep the index of the declarative security to be 
2037         used, instead of the pointer, when AOT compiler is used. Also add 
2038         class initialization when requesting demands.
2039         * security-manager.c|h: Implement SecurityManager.SecurityEnabled and
2040         CheckExecutionRights. Both properties are now FALSE by default, and
2041         unmodifiable, unless the --security option is used.
2042
2043 Fri Jan 21 15:29:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2044
2045         * domain.c, appdomain.c, assembly.c, image.c, metadata-internals.h,
2046         reflection.c: properly refcount images and assemblies, many leaks fixed.
2047
2048 2005-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2049
2050         * threadpool.c: increase the timeout for threads in the thread pool to
2051         10s.  Fixes bug #67159.
2052
2053 2005-01-20  Bernie Solomon  <bernard@ugsolutions.com>
2054
2055         * class-internals.h: Sun's compiler insists on explicit
2056         signed on bit fields to handle then correctly.
2057
2058 2005-01-19  Miguel de Icaza  <miguel@ximian.com>
2059
2060         * file-io.c (ves_icall_System_IO_MonoIO_get_InvalidPathChars):
2061         Make the size of the array fit only the number of invalid path
2062         chars that we have.
2063
2064         * class.c (_mono_class_get): Improve the error reporting when a
2065         class referenced is not found, to assist debugging. 
2066
2067 Wed Jan 19 19:57:43 CET 2005 Paolo Molaro <lupus@ximian.com>
2068
2069         * threads.c: fix off-by-one error.
2070         * domain.c: free data allocated in the domain.
2071
2072 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2073
2074         * reflection.c (mono_method_body_get_object): Fill out exception info
2075         as well.
2076
2077         * object-internals.h: Add MonoReflectionExceptionHandlingClause 
2078         structure.
2079         
2080 2005-01-19  Martin Baulig  <martin@ximian.com>
2081
2082         * loader.c (mono_get_method_constrained): Make this work again.
2083
2084 2005-01-19  Zoltan Varga  <vargaz@freemail.hu>
2085
2086         * object-internals.h (_MonoReflectionMethodBody): Make local_index a 
2087         guint16 to match the managed side.
2088
2089         * reflection.c (mono_reflection_body_get_object): Fill out local
2090         variables array.
2091
2092         * reflection.c (mono_method_body_get_object): Fill out local_var_sig_token
2093         as well.
2094
2095         * object-internals.h (_MonoReflectionMethodBody): Rename 'sig_token' to
2096         'local_var_sig_token'.
2097
2098 2005-01-18  Zoltan Varga  <vargaz@freemail.hu>
2099
2100         * loader.c (mono_lookup_pinvoke_call): Revert the previous patch as it breaks 
2101         System.Drawing.
2102
2103         * reflection.c (mono_method_body_get_object): Handle abstract and
2104         runtime methods.
2105
2106 Mon Jan 17 19:22:39 CET 2005 Paolo Molaro <lupus@ximian.com>
2107
2108         * marshal.c, loader.c, class-internals.h, reflection.c:
2109         store the emthod data for a wrapper in an array instead of a list.
2110
2111 Mon Jan 17 18:48:53 CET 2005 Paolo Molaro <lupus@ximian.com>
2112
2113         * marshal.c: change the code to allocate memory more
2114         conservatively for method wrappers.
2115
2116 Mon Jan 17 18:03:30 CET 2005 Paolo Molaro <lupus@ximian.com>
2117
2118         * class-internals.h, marshal.c: move the str_to_ptr and ptr_to_str
2119         fields from MonoClass to the marshal info structure where they belong.
2120
2121 Mon Jan 17 16:14:46 CET 2005 Paolo Molaro <lupus@ximian.com>
2122
2123         * class.c, object.c, class-internals.h, marshal.c: rearrange
2124         some fields and tweak some types to lower memory usage.
2125
2126 2005-01-17  Zoltan Varga  <vargaz@freemail.hu>
2127
2128         * threads.c (signal_thread_state_change): Handle the case when the
2129         target thread is the current thread.
2130
2131         * marshal.c (mono_struct_delete_old): Do not free lpwstr fields.
2132
2133         * marshal.c: Rename emit_ptr_to_str_conv and its pair to 
2134         emit_ptr_to_object_conv. 
2135
2136         * marshal.c (emit_ptr_to_object_conv): Add support for lpwstr->str
2137         marshalling. Fixes #71352.
2138
2139 Mon Jan 17 10:59:20 CET 2005 Paolo Molaro <lupus@ximian.com>
2140
2141         * metadata.h, blob.h: move table enum to blob.h so it can be included
2142         in any header.
2143         * image.c, metadata.c, metadata-internals.h, pedump.c, reflection.c:
2144         cut the size of MonoImage/MonoDynamicImage.
2145
2146 2005-01-16  Zoltan Varga  <vargaz@freemail.hu>
2147
2148         * profiler.c (mono_profiler_install_simple): Fix default arguments.
2149
2150 Sun Jan 16 12:25:22 CET 2005 Paolo Molaro <lupus@ximian.com>
2151
2152         * reflection.c, reflection.h, icall.c: add a function to check
2153         if an attribute type is defined for a metadata object.
2154
2155 2005-01-14  Lluis Sanchez Gual  <lluis@novell.com>
2156
2157         * object-internals.h: Added some needed fields from StringBuilder class.
2158         * marshal.c: Set the maxCapacity when creating a StringBuilder.
2159
2160 2005-01-13  Zoltan Varga  <vargaz@freemail.hu>
2161
2162         * icall.c (ves_icall_System_Environment_Exit): Suspend all managed
2163         threads before shutting down the runtime.
2164
2165         * threads.c (mono_thread_suspend_all_other_threads): New helper function.
2166
2167 Thu Jan 13 18:16:35 CET 2005 Paolo Molaro <lupus@ximian.com>
2168
2169         * object-internal.h, threads.c: implement stacksize and 
2170         parameterized thread start functionality (requires
2171         matching corlib). Marked broken code for later removal.
2172
2173 2005-01-12  Martin Baulig  <martin@ximian.com>
2174
2175         * class-internals.h (MonoGenericClass): Moved the `initialized'
2176         flag to MonoDynamicGenericClass, removed `init_pending'.
2177         (MonoGenericInst): Added `is_reference' flag.
2178
2179 2005-01-12  Zoltan Varga  <vargaz@freemail.hu>
2180
2181         * reflection.c (mono_image_create_pefile): Only set the pe_offset
2182         inside the MSDOS header. Fixes #71201.
2183
2184         * gc.c (mono_gc_cleanup): Handle the case when this is called from the
2185         gc thread.
2186         (mono_domain_finalize): Ditto.
2187
2188 2005-01-12  Martin Baulig  <martin@ximian.com>
2189
2190         * class.c (mono_get_shared_generic_class): Use the cache for
2191         non-dynamic generic classes.
2192
2193         * class-internals.h (mono_class_create_generic_2): Removed
2194         function prototype, this function is now static inside class.c.
2195
2196         * class.c (mono_class_create_generic_2): Made this static, only
2197         call it from mono_class_init() and mono_class_setup_parent().
2198         (collect_implemented_interfaces_aux): Call mono_class_init() on
2199         the interfaces we collect.
2200         (mono_class_setup_vtable): Call mono_class_init (class->parent).
2201
2202 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2203
2204         * threads.c (mono_thread_attach): Call DuplicateHandle on the thread handle on win32 to make
2205         it a real thread handle.
2206
2207         * domain-internals.h: Move exvar_offset from MonoJitInfo to 
2208         MonoJitExceptionInfo, since each catch clause needs its own variable.
2209         
2210 2005-01-11  Dick Porter  <dick@ximian.com>
2211
2212         * image.c (mono_pe_file_open): New variant on mono_image_open()
2213         that does not set up the CLI metadata; used for FileVersionInfo so
2214         it can get the data for windows binaries too.
2215         
2216         * process.c (process_read_string_block): Don't read off the end of
2217         the StringTable block.
2218
2219         These both fix bug 70766.
2220
2221 Tue Jan 11 15:26:00 CET 2005 Paolo Molaro <lupus@ximian.comt>
2222
2223         * gc.c: set some fields to NULL at GC cleanup time.
2224         * threads.c: if we quit the main thread, call exit ().
2225
2226 2005-01-11  Zoltan Varga  <vargaz@freemail.hu>
2227
2228         * threads.c (interruption_request_apc): Decore APC callbacks with CALLBACK under win32.
2229
2230 Mon Jan 10 18:47:28 CET 2005 Paolo Molaro <lupus@ximian.com>
2231
2232         * threads.h, threads.c, object.c: added accessor and settor for
2233         main_thread. Handle it specially when exiting from it: wait
2234         for other foreground threads to exit.
2235
2236 Mon Jan 10 12:06:18 CET 2005 Paolo Molaro <lupus@ximian.com>
2237
2238         * process.c, verify.c: remove some bloat.
2239
2240 2005-01-09  Zoltan Varga  <vargaz@freemail.hu>
2241
2242         * loader.c (mono_lookup_pinvoke_call): If we found the function without name mangling, change
2243         the calling convention to cdecl under win32.
2244
2245 2005-01-08  Ben Maurer  <bmaurer@ximian.com>
2246
2247         * object.c (mono_object_get_size): New function to get the size of
2248         an object instance.
2249
2250         * profiler.c (simple_allocation): Use above.
2251
2252 2005-01-08  Sebastien Pouliot  <sebastien@ximian.com>
2253
2254         * appdomain.c: Replaced ves_icall_System_AppDomain_getDomainByID by
2255         ves_icall_System_AppDomain_getRootDomain (as it's not required to
2256         get an appdomain by it's id and we can't assume the root's id is 0).
2257         * domain-internals.h: Change the function prototype to match.
2258         * icall.c: Change the icall table for AppDomain.
2259
2260 2005-01-08  Miguel de Icaza  <miguel@ximian.com>
2261
2262         * locales.c (string_invariant_compare_char): Only compute
2263         GUnicodeTypes in the case where we need them.  Test for ordinality
2264         first and return if so.
2265
2266         From the commit:
2267
2268                 /*
2269                  * FIXME: here we must use the information from c1type and c2type
2270                  * to find out the proper collation, even on the InvariantCulture, the
2271                  * sorting is not done by computing the unicode values, but their
2272                  * actual sort order.
2273                  */
2274
2275 Sat Jan 8 19:03:26 CET 2005 Paolo Molaro <lupus@ximian.com>
2276
2277         * loader.c: for P/Invoke methods, allow the "Internal" shared
2278         library name to refer to the calling process symbol namespace.
2279
2280 2005-01-07  Sebastien Pouliot  <sebastien@ximian.com>
2281
2282         * Makefile.am: Add the security manager to the build.
2283         * security-manager.c|h: New. Initialization of the security manager.
2284
2285 2005-01-07  Dick Porter  <dick@ximian.com>
2286
2287         * threads.c: 
2288         * monitor.c: Update thread state during Monitor and WaitHandle
2289         waits.  Fixes bug 71031.
2290
2291 2005-01-07  Zoltan Varga  <vargaz@freemail.hu>
2292
2293         * reflection.c (property_encode_signature): Correctly handle when the
2294         property has no methods.
2295
2296 2005-01-06  Zoltan Varga  <vargaz@freemail.hu>
2297
2298         * reflection.c (reflection_methodbuilder_to_mono_method): Remove debug stuff.
2299         
2300         * reflection.c (reflection_methodbuilder_from_method_builder): Copy
2301         fields from mb, not rmb. Fixes #71017.
2302
2303         * marshal.c (emit_ptr_to_str_conv): Add support for 
2304         ByValTStr -> string conversion. Fixes #71015.
2305
2306         * appdomain.c (mono_domain_owns_vtable_slot): New helper function.
2307
2308         * mempool.c (mono_mempool_contains_addr): New helper function.
2309
2310 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2311
2312         * metadata.c (mono_metadata_compute_size): Fix size calculation of
2313         HasSematics encoded fields.
2314         
2315         * metadata.c (mono_type_to_unmanaged): Improve error message for 
2316         invalid string marshalling.
2317
2318         * metadata.c: Fix warnings.
2319         
2320 Wed Jan 5 16:17:27 CET 2005 Paolo Molaro <lupus@ximian.com>
2321
2322         * profiler-private.h, profiler.c, profiler.h, gc.c: sample statistical
2323         profiler support.
2324
2325 2005-01-05  Zoltan Varga  <vargaz@freemail.hu>
2326
2327         * domain.c object.c domain-internals.h: Revert part of r38077 since the
2328         keys to proxy_vtable_hash are GCd objects. Fixes running the class lib
2329         tests.
2330
2331 2005-01-03  Zoltan Varga  <vargaz@freemail.hu>
2332
2333         * marshal.c: Use MONO_CLASSCONST instead of MONO_LDPTR in some places,
2334         so methods containing these can be AOTed.
2335
2336 2005-01-03  Martin Baulig  <martin@ximian.com>
2337
2338         * loader.c (find_method): Removed the hack for generic instances.
2339         (method_from_memberref): If our parent is a generic instance, pass
2340         its generic type definition to find_method() and then inflate the
2341         method.
2342         (mono_get_method_constrained): Pass the generic type definition to
2343         find_method() and inflate the method later.
2344
2345         * class-internals.h (MonoStats): Added `generic_class_count'.
2346
2347         * icall.c (ves_icall_MonoGenericMethod_get_reflected_type):
2348         Renamed to ves_icall_MonoGenericMethod_get_ReflectedType().
2349
2350         * reflection.c (mono_custom_attrs_from_params): Don't ignore
2351         generic type definitions.
2352
2353 2004-12-30  Zoltan Varga  <vargaz@freemail.hu>
2354
2355         * loader.c icall.c: Fix warnings.
2356
2357 2004-12-29  Zoltan Varga  <vargaz@freemail.hu>
2358
2359         * marshal.c (mono_marshal_get_managed_wrapper): Fix returning of
2360         blittable types. Fixes #70864.
2361
2362 2004-12-29  Martin Baulig  <martin@ximian.com>
2363
2364         * icall.c
2365         (ves_icall_MonoGenericMethod_get_reflected_type): New interncall.
2366
2367         * reflection.c (mono_method_get_object): Create a
2368         "System.Reflection.MonoGenericMethod" for inflated methods; don't
2369         call mono_get_inflated_method().
2370
2371         * class-internals.h (MonoStats): Added `inflated_method_count_2'.
2372
2373 2004-12-27  Martin Baulig  <martin@ximian.com>
2374
2375         * class-internals.h (MonoMethod): Added `is_inflated' flag.
2376         (MonoMethodInflated): Added `inflated' field.
2377
2378         * class.c (mono_class_inflate_generic_method): Don't really
2379         inflate the method here; just set the `is_inflated' flag in the
2380         MonoMethod.
2381         (mono_class_get_inflated_method): Actually inflate the method here
2382         if it's not already inflated; we use the MonoMethodInflated's new
2383         `inflated' field as a cache.
2384
2385 2004-12-26  Martin Baulig  <martin@ximian.com>
2386
2387         * class.c
2388         (inflate_generic_class): Moved some code out of inflate_generic_type().
2389         (mono_class_inflate_generic_method): If we're already inflated,
2390         inflate the context and use the declaring method; ie. make sure
2391         the declaring method of an inflated method is always the generic
2392         method definition.
2393         (mono_class_create_from_typedef): Create
2394         `class->generic_container->context->gclass'.
2395
2396 2004-12-24  Ben Maurer  <bmaurer@ximian.com>
2397
2398         * metadata-internals.h, marshal.c, reflection.c: More
2399         MonoGHashTable->GHashTable.
2400
2401         * domain-internals.h, class.c: Change MonoGHashTable's into
2402         GHashTables for some cases where no gc stuff is used
2403
2404         All users: update apis
2405
2406 2004-12-23  Ben Maurer  <bmaurer@ximian.com>
2407
2408         * metadata.c (builtin_types): Make this `const'. Makes this get
2409         put into the shareable section.
2410         (mono_metadata_init): Casts to make gcc happy.
2411
2412 2004-12-22  Zoltan Varga  <vargaz@freemail.hu>
2413
2414         * gc.c (mono_gc_init): Add a '\n' to the valgrind warning.
2415
2416 2004-12-21  Sebastien Pouliot  <sebastien@ximian.com> 
2417
2418         * icall.c: Added an internal call to retrieve the position and length
2419         of assembly-level declarative security attributes (RequestMinimum, 
2420         RequestOptional and RequestRefuse). This is used by the Assembly class
2421         to re-create the corresponding permission sets.
2422
2423 Tue Dec 21 14:50:31 CET 2004 Paolo Molaro <lupus@ximian.com>
2424
2425         * marshal.c: fix the stelemref wrapper to be type correct
2426         (and faster).
2427
2428 2004-12-20  Ben Maurer  <bmaurer@ximian.com>
2429
2430         * icall.c (ves_icall_System_Object_GetHashCode): There was no need
2431         to do key & 0x7fffffff. Hashtable already does this. It just
2432         results in longer code.
2433
2434 2004-12-20  Sebastien Pouliot  <sebastien@ximian.com>
2435
2436         * appdomain.c: Bump corlib version.
2437         * class-internals.h: Added RuntimeSecurityFrame to mono_defaults.
2438         * domain.c: Add RuntimeSecurityFrame to mono_defaults.
2439         * reflection.c|h: Add functions to get declarative security infos
2440         (blob position and length) for assemblies, classes and methods.
2441
2442 Mon Dec 20 15:28:54 CET 2004 Paolo Molaro <lupus@ximian.com>
2443
2444         * reflection.c: sort the constant table (bug #70693).
2445
2446 Mon Dec 20 12:19:37 CET 2004 Paolo Molaro <lupus@ximian.com>
2447
2448         * object-internals.h, threads.c, domain.c: add accessors for
2449         the MonoThread and MonoDomain tls keys.
2450
2451 2004-12-18  Martin Baulig  <martin@ximian.com>
2452
2453         * class.c (inflate_generic_type): If we're inflating a generic
2454         instance, set `ngclass->context->container = context->container';
2455         ie. the container we inflated into.
2456
2457         * metadata.c (mono_metadata_parse_generic_param): Reflect above
2458         inflate_generic_type() changes.
2459
2460 2004-12-17  Martin Baulig  <martin@ximian.com>
2461
2462         * class-internals.h
2463         (MonoGenericClass): Replaced `MonoType *generic_type' with
2464         `MonoClass *generic_class'.  Removed `dynamic_info'; if
2465         `is_dynamic' is true, we're a `MonoDynamicGenericClass'.
2466         (MonoDynamicGenericClass): Derive from `MonoGenericClass'.
2467
2468 2004-12-16  Zoltan Varga  <vargaz@freemail.hu>
2469
2470         * exception.c (mono_exception_from_token): New helper function.
2471
2472 2004-12-15  Zoltan Varga  <vargaz@freemail.hu>
2473
2474         * assembly.c (mono_assembly_load_with_partial_name): Call 
2475         mono_assembly_loaded before invoking the preload hooks. Fixes
2476         #70564.
2477
2478         * object-internals.h (MonoThread): Change culture_info and 
2479         ui_culture_info into an array.
2480
2481         * threads.c: Cache culture info objects from more than one appdomain.
2482
2483         * threads.c threads-types.h icall.c: Add icalls for manipulating the 
2484         current UI culture.
2485
2486 2004-12-14  Zoltan Varga  <vargaz@freemail.hu>
2487
2488         * threads.h threads.c appdomain.c: Clear the culture_info field of
2489         all threads during unloading if they point to an object in the dying
2490         appdomain.
2491
2492 2004-12-13  Ben Maurer  <bmaurer@ximian.com>
2493
2494         * culture-info.h (TextInfoEntry): New struct
2495         * object-internals.h: sync with managed
2496         * locales.c: fill the `text_info_data' field
2497         * culture-info-tables.h: update
2498
2499 Mon Dec 13 18:10:50 CET 2004 Paolo Molaro <lupus@ximian.com>
2500
2501         * Makefile.am, monodiet.c: add monodiet, an IL code garbage
2502         collector.
2503
2504 2004-12-12  Ben Maurer  <bmaurer@ximian.com>
2505
2506         * icall.c (ves_icall_ModuleBuilder_getToken): Check for null
2507         (ves_icall_ModuleBuilder_getMethodToken): Ditto
2508
2509 2004-12-12  Martin Baulig  <martin@ximian.com>
2510
2511         * mono-debug-debugger.c (write_type): If we're an enum and the
2512         builtin types have already been initialized, call mono_class_init().
2513
2514 2004-12-11  Martin Baulig  <martin@ximian.com>
2515
2516         * metadata.c (mono_metadata_load_generic_params): Added
2517         `MonoGenericContainer *parent_container' argument; automatically
2518         compute `container->is_method'; pass the correct owner to
2519         get_constraints().      
2520
2521         * reflection.c (compare_genericparam): Sort the GenericParam table
2522         according to increasing owners. 
2523
2524 Fri Dec 10 18:43:46 CET 2004 Paolo Molaro <lupus@ximian.com>
2525
2526         * profiler.c: allow disabling the default profiler.
2527
2528 Fri Dec 10 18:42:11 CET 2004 Paolo Molaro <lupus@ximian.com>
2529
2530         * decimal.c, icall.c: allow disabling System.Decimal support.
2531
2532 2004-12-09  Marek Safar <marek.safar@seznam.cz>
2533
2534         * reflection.c: Add support for null attribute arguments.
2535
2536 2004-12-09  Martin Baulig  <martin@ximian.com>
2537
2538         * metadata.h, loader.h: Use `idx' instead of `index' in parameter
2539         names to get rid of compiler warnings.
2540
2541 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2542
2543         * marshal.c (mono_marshal_get_struct_to_ptr): Call 
2544         mono_marshal_load_type_info (). Fixes #69625.
2545         (mono_marshal_get_ptr_to_struct): Likewise.
2546
2547 2004-12-08  Martin Baulig  <martin@ximian.com>
2548
2549         * mono-debug.h: Bumped version number to 47.
2550
2551         * mono-debug-debugger.c
2552         (mono_debugger_event_handler, mono_debugger_event): Take two
2553         guint64 arguments insteed of a gpointer and a guint32.  
2554
2555 2004-12-08  Martin Baulig  <martin@ximian.com>
2556
2557         * debug-mono-symfile.h
2558         (MonoDebugLineNumberEntry): Renamed `offset' to `il_offset' and
2559         `address' to `native_offset'.
2560
2561 2004-12-08  Martin Baulig  <martin@ximian.com>
2562
2563         * class.c (mono_class_create_from_typespec): Only inflate if we
2564         either have `context->gclass' or `context->gmethod'.
2565
2566 2004-12-08  Zoltan Varga  <vargaz@freemail.hu>
2567
2568         * metadata-internals.h (MonoAssembly): Add 'corlib_internal' field.
2569
2570         * object-internals.h (MonoReflectionAssemblyBuilder): Move 'corlib_internal' field from Assembly to AssemblyBuilder.
2571
2572         * reflection.c (mono_image_basic_init): Initialize assembly->corlib_internal from the assembly builder.
2573
2574         * reflection.c (mono_assembly_get_object): Remove the workaround put
2575         in for the release.
2576         
2577         * appdomain.c: Use the corlib_internal field from MonoAssembly.
2578
2579         * appdomain.c: Bump corlib version.
2580
2581         * reflection.c (mono_assembly_get_object): Add a workaround so __MetadataTypes won't
2582         be visible in other appdomains.
2583
2584 2004-12-07  Ben Maurer  <bmaurer@ximian.com>
2585
2586         * threads.c: Interlocked inc and dec for longs were messed up,
2587         use a KISS based impl for this. Fixes 70234
2588
2589 2004-12-07  Zoltan Varga  <vargaz@freemail.hu>
2590
2591         * threads.c (ves_icall_System_Threading_Thread_GetCachedCurrentCulture): Make this lock-less.
2592
2593 Tue Dec 7 10:47:09 CET 2004 Paolo Molaro <lupus@ximian.com>
2594
2595         * icall.c: fix to follow policy not to allow struct
2596         arguments in icalls.
2597
2598 2004-12-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2599
2600         * process.c: make the patch that handles spaces in file paths work
2601         on mono/windows too.
2602
2603 2004-12-06  Martin Baulig  <martin@ximian.com>
2604
2605         * class.c (mono_class_create_generic): Call
2606         mono_class_setup_supertypes() if we're dynamic.
2607         (mono_class_is_subclass_of): `g_assert (klass->idepth > 0)'.
2608
2609 2004-12-06  Zoltan Varga  <vargaz@freemail.hu>
2610
2611         * object-internals.h: Add new fields to MonoThread.
2612
2613         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
2614
2615         * icall.c threads-types.h threads.c: Add new icalls.
2616
2617         * object-internals.h (MonoThread): Remove unused 'unmanaged' field.
2618
2619         * object-internals.h (MonoReflectionAssembly): Sync object layout with
2620         managed side.
2621
2622         * appdomain.c: Bump corlib version.
2623
2624         * appdomain.c (ves_icall_System_AppDomain_GetAssemblies): Skip
2625         internal assemblies. Fixes #69181.
2626
2627 2004-12-05  Martin Baulig  <martin@ximian.com>
2628
2629         * class.c (mono_class_inflate_generic_signature): Make this a
2630         no-op if `context' is NULL or we don't have any type parameters;
2631         also copy `sentinelpos'.        
2632
2633 2004-12-04  Zoltan Varga  <vargaz@freemail.hu>
2634
2635         * image.c: Add unbox_wrapper_cache.
2636
2637         * class-internals.h debug-helpers.c: Add MONO_WRAPPER_UNBOX.
2638
2639         * marshal.h marshal.c (mono_marshal_get_unbox_wrapper): New wrapper
2640         function generator.
2641         
2642         * object.c (mono_delegate_ctor): Call unbox wrapper if neccesary.
2643         Fixes #70173.
2644
2645         * metadata-internals.h image.c: Add MonoImage->unbox_wrapper_cache.
2646         
2647 2004-12-04  Martin Baulig  <martin@ximian.com>
2648
2649         * loader.c (mono_method_get_signature_full): New public function;
2650         like mono_method_get_signature(), but with an additional
2651         `MonoGenericContext *' argument.
2652
2653         * class.c (mono_class_inflate_generic_signature): Formerly known
2654         as inflate_generic_signature(); make this public.
2655
2656 2004-12-04  Martin Baulig  <martin@ximian.com>
2657
2658         * metadata.c
2659         (mono_metadata_parse_type_full): Take a `MonoGenericContext *'
2660         instead of a `MonoGenericContainer *'.  
2661         (mono_metadata_parse_array_full): Likewise.
2662         (mono_metadata_parse_signature_full): Likewise.
2663         (mono_metadata_parse_method_signature_full): Likewise.
2664         (mono_metadata_parse_generic_inst): Likewise.
2665         (mono_metadata_parse_generic_param): Likewise.
2666         (mono_metadata_parse_mh_full): Likewise.
2667         (mono_type_create_from_typespec_full): Likewise.
2668
2669 2004-12-03  Martin Baulig  <martin@ximian.com>
2670
2671         * class-internals.h (MonoGenericContainer): Replaced the
2672         `MonoGenericContext * pointer with a `MonoGenericContext'
2673         structure and made it the first element.
2674
2675 2004-12-03  Martin Baulig  <martin@ximian.com>
2676
2677         * class.c
2678         (inflate_generic_type): Set the `context->container' when creating
2679         a new MonoGenericContext.
2680         (mono_class_inflate_generic_method): Likewise.
2681         (mono_class_create_from_typespec): Just use `context->container'
2682         to get the container.
2683
2684         * loader.c (method_from_methodspec): Set `context->parent' from
2685         `context->container' - and if that's a method container, use its
2686         parent.  Also set the `context->container' when creating a new
2687         MonoGenericContext.
2688         (mono_get_method_from_token): Use just `context->container' to get
2689         the container.
2690
2691         * metadata.c (do_mono_metadata_parse_generic_class): Also set
2692         `gclass->context->container'.
2693
2694         * reflection.c (do_mono_reflection_bind_generic_parameters): Set
2695         the `context->container' when creating a new MonoGenericContext.
2696
2697 2004-12-03  Zoltan Varga  <vargaz@freemail.hu>
2698
2699         * reflection.c (compare_genericparam): Sort params with identical
2700         owner by their number. Fixes gen-111 on sparc.
2701
2702 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2703
2704         * threadpool.c (async_invoke_thread): Call push/pop_appdomain_ref
2705         around the domain changes.
2706
2707         * appdomain.c (mono_domain_unload): Handle the case when the thread
2708         calling Unload is itself being aborted during unloading. Fixes #70022.
2709
2710         * appdomain.h: Add prototype for mono_install_runtime_cleanup.
2711
2712         * marshal.c (emit_thread_interrupt_checkpoint_call): Call 
2713         checkpoint_func as an icall so it gets a wrapper.
2714         (mono_marshal_get_xappdomain_invoke): Call push/pop_appdomain_ref ()
2715         in the cross-appdomain wrappers too.
2716
2717         * threads.c (mono_thread_has_appdomain_ref): Make this public.
2718
2719         * assembly.c (mono_assembly_open_from_bundle): Fix warning.
2720
2721         * reflection.c: Fix some memory leaks.
2722         
2723 2004-12-02  Martin Baulig  <martin@ximian.com>
2724
2725         * metadata-internals.h (MonoImage): Removed `generic_class_cache'.
2726
2727         * metadata.c (generic_class_cache): New static hashtable.
2728         (mono_metadata_lookup_generic_class): New public method.
2729
2730 2004-12-02  Martin Baulig  <martin@ximian.com>
2731
2732         * class.c (mono_class_create_from_typedef): Call
2733         mono_class_setup_parent() and mono_class_create_mono_type() before
2734         parsing the interfaces.
2735
2736 2004-12-02  Martin Baulig  <martin@ximian.com>
2737
2738         * metadata.c (generic_inst_cache): New static hashtable.
2739         (mono_metadata_lookup_generic_inst): New public function.
2740         (mono_metadata_inflate_generic_inst): New public function.
2741         (mono_metadata_parse_generic_inst): New public function.
2742         (do_mono_metadata_parse_generic_class): Use the new
2743         mono_metadata_parse_generic_inst() for parsing the `gclass->inst'
2744         since this'll also use the cache.
2745
2746         * reflection.c (mono_reflection_bind_generic_method_parameters):
2747         Use mono_metadata_lookup_generic_inst() to use the new cache.
2748
2749         * class.c (inflate_mono_type): Use
2750         mono_metadata_inflate_generic_inst() to inflate a generic
2751         instance; this'll also use the new cache.
2752
2753         * loader.c (method_from_methodspec): Use
2754         mono_metadata_parse_generic_inst() and
2755         mono_metadata_inflate_generic_inst() rather than parsing it
2756         manually, so we can use the new cache.
2757
2758 2004-12-02  Zoltan Varga  <vargaz@freemail.hu>
2759
2760         * threads.c (wait_for_tids): Do not incorrectly free threads when 
2761         the wait times out.
2762
2763 2004-12-01  Neale Ferguson <Neale.Ferguson@SoftwareAG-usa.com>
2764
2765         * icall.c (mono_ArgIterator_Setup) : Conditionally compile calculation of
2766         iter->args based on whether parameters are passed in registers (i.e.
2767         MONO_ARCH_REGPARMS is defined)
2768
2769 2004-12-01  Zoltan Varga  <vargaz@freemail.hu>
2770
2771         * loader.c (mono_lookup_pinvoke_call): Use the remapped dll name in
2772         the exception message. Fixes #70070.
2773         (method_from_methodspec): Fix warnings.
2774
2775 2004-12-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
2776
2777         * process.c: (complete_path) return the path quoted
2778
2779 2004-12-01  Martin Baulig  <martin@ximian.com>
2780
2781         * class-internals.h (MonoGenericInst): New structure.
2782         (MonoGenericClass): Replaced `type_argc', `type_argv' and
2783         `is_open' with `MonoGenericInst *inst'.
2784         (MonoGenericMethod): Replaced `mtype_argc', `mtype_argv' and
2785         `is_open' with `MonoGenericInst *inst'.
2786
2787 2004-11-30  Martin Baulig  <martin@ximian.com>
2788
2789         Generics API cleanup: renamed MonoGenericInst -> MonoGenericClass.
2790
2791         * metadata-internals.h (MonoImage): Renamed `generic_inst_cache'
2792         to `generic_class_cache'.
2793
2794         * metadata.c
2795         (mono_generic_inst_hash): Renamed to mono_generic_class_hash().
2796         (mono_generic_inst_equal): Renamed to mono_generic_class_equal().
2797         (mono_generic_inst_is_valuetype): Renamed to
2798         mono_generic_class_is_valuetype().
2799
2800         * class-internals.h
2801         (MonoGenericInst): Renamed to MonoGenericClass.
2802         (MonoDynamicGenericInst): Renamed to MonoDynamicGenericClass.
2803         (MonoClass): Renamed `generic_inst' to `generic_class'.
2804         (MonoGenericContext): Renamed `ginst' to `gclass'.
2805
2806         * object-internals.h
2807         (MonoReflectionGenericInst): Renamed to MonoReflectionGenericClass.
2808
2809         * reflection.c (mono_reflection_generic_inst_initialize): Renamed to
2810         mono_reflection_generic_class_initialize().
2811
2812         * icall.c (icall_entries): "System.Reflection.MonoGenericInst" is
2813         now known as "System.Reflection.MonoGenericClass".
2814         (monogenericinst_icalls): Renamed to monogenericclass_icalls.
2815
2816 2004-11-29  Sebastien Pouliot  <sebastien@ximian.com>
2817
2818         * class-internals.h: Added a flag field to MonoClass to cache the
2819         declarative security attributes actions associated with the class.
2820         * domain-internals.h: Added booleans to MonoJitInfo to cache the
2821         (class or method level) stack modifiers (Assert, Deny and PermitOnly)
2822         applicable to the JITted method.
2823         * reflection.c|h: Added functions to extract (as flags) which security
2824         actions are available (declaratively) for a method, class or assembly.
2825         * metadata.c|h: Added functions to search the declarative security
2826         table in the metadata.
2827         
2828 2004-11-29  Ben Maurer  <bmaurer@ximian.com>
2829
2830         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces):
2831         EXPORTEDTYPES are already in the class name cache, so there is no
2832         need to add extra code here to look at them. Just removes a bit of
2833         cruft.
2834
2835         (ves_icall_System_Environment_get_TickCount): No need for #if
2836         WINDOWS. We already have the code in io-layer.
2837
2838 2004-11-28  Martin Baulig  <martin@ximian.com>
2839
2840         * loader.c
2841         (method_from_methodspec): Also inflate the `gmethod->mtype_argv'.
2842         Fixes gen-112.cs.
2843
2844 2004-11-27  Miguel de Icaza  <miguel@ximian.com>
2845
2846         * assembly.c (do_mono_assembly_open): Instead of having a
2847         conditional WITH_BUNDLE, incorporate support for bundles here, by
2848         having a global `bundles' variable holding a pointer to the actual
2849         bundles. 
2850
2851         (mono_register_bundled_assemblies): New API call used by the
2852         bundle code. 
2853
2854         See mkbundle.1 for details.
2855         
2856 2004-11-27  Martin Baulig  <martin@ximian.com>
2857
2858         * object.c (mono_class_vtable): Store the `MonoMethod *' itself in
2859         the vtable for generic methods.
2860
2861 2004-11-26  Martin Baulig  <martin@ximian.com>
2862
2863         * metadata.c
2864         (mono_metadata_generic_method_hash): New public function.
2865         (mono_metadata_generic_method_equal): Likewise.
2866
2867         * class-internals.h
2868         (MonoGenericContainer): Added `GHashTable *method_hash'.
2869
2870         * reflection.c (ReflectionMethodBuilder): Added
2871         `MonoGenericContainer *generic_container'.
2872         (reflection_methodbuilder_to_mono_method): Don't create a new
2873         MonoGenericContainer each time we're called.
2874         (mono_reflection_bind_generic_method_parameters): Use
2875         `container->method_hash' to cache the results so we don't create a
2876         different method if we're called several times with the same
2877         arguments.
2878
2879         * loader.c (method_from_methodspec): Use the new
2880         `container->method_hash' here, too.
2881
2882 2004-11-26  Martin Baulig  <martin@ximian.com>
2883
2884         * class.c (inflate_generic_signature): Correctly compute
2885         `res->has_type_parameters'.
2886         (mono_class_vtable): Use the `has_type_parameters' flag to
2887         determine whether we're a generic method.
2888
2889         * metadata.c (mono_metadata_parse_method_signature_full): Likewise.
2890
2891 2004-11-25  Zoltan Varga  <vargaz@freemail.hu>
2892
2893         * object.c (mono_runtime_run_main): Fix a small memory leak.
2894
2895 2004-11-25  Martin Baulig  <martin@ximian.com>
2896
2897         * class.c (set_generic_param_owner): Fixed the loop.
2898
2899 2004-11-25  Martin Baulig  <martin@ximian.com>
2900
2901         * object.c (mono_class_vtable): Don't create any JIT wrappers for
2902         generic methods.
2903
2904 2004-11-24  Zoltan Varga  <vargaz@freemail.hu>
2905
2906         * reflection.c: Allow all kinds of whitespace, not just ' ' in type
2907         names. Fixes #69787.
2908
2909 2004-11-24  Martin Baulig  <martin@ximian.com>
2910
2911         * class.c (mono_class_create_generic_2): If we don't have a
2912         `ginst->parent', inflate `gklass->parent' to get our parent.
2913
2914 2004-11-24  Martin Baulig  <martin@ximian.com>
2915
2916         * reflection.c (compare_genericparam): Correctly sort the
2917         GenericParam table; fixes #69779.
2918
2919 2004-11-23  Ben Maurer  <bmaurer@ximian.com>
2920
2921         * reflection.c: When writing a PE file, don't create a huge
2922         buffer in memory. Just write the arrays we have to the file.
2923         This reduces memory usage.
2924
2925         * metadata-internals.h: MonoDynamicStream pefile is no longer used
2926         globally.
2927
2928 2004-11-17  Martin Baulig  <martin@ximian.com>
2929
2930         * class.c (mono_class_init): Don't setup `class->parent' for
2931         dynamic instances; moved this to mono_class_generic_2().
2932         (mono_class_create_generic): Also set `klass->inited' for dynamic
2933         generic instances.
2934         (mono_class_create_generic_2): Don't do anything for dynamic
2935         generic instances.  Set `klass->parent' here and also call
2936         mono_class_setup_parent() here. 
2937
2938         * reflection.c (do_mono_reflection_bind_generic_parameters): Added
2939         `MonoType *parent' argument; set `ginst->parent' before calling
2940         mono_class_create_generic_2(), so we set the correct parent.
2941
2942 Thu Nov 18 17:10:32 CET 2004 Paolo Molaro <lupus@ximian.com>
2943
2944         * reflection.c: allow getting attributes from ModuleBuilder
2945         (used by ikvm).
2946
2947 2004-11-17  Martin Baulig  <martin@ximian.com>
2948
2949         * class.c (mono_class_create_from_typedef): If a type parameter is
2950         inherited from an outer class, set its owner to that class.
2951
2952 2004-11-17  Atsushi Enomoto  <atsushi@ximian.com>
2953
2954         * reflection.c: (mono_image_create_pefile): Don't use NULL argument
2955           for (int*) written size. This fixes bug #69592.
2956
2957 2004-11-15  Sebastien Pouliot  <sebastien@ximian.com>
2958
2959         * icall.c: Added IsAuthenticodePresnet internal call.
2960         * image.c|h: New function that check a MonoImage for an Authenticode
2961         signature in the certificate PE data directory.
2962         * security.c|h: New internal call to ask the runtime if an 
2963         Authenticode signature seems referenced in the PE header.
2964
2965 2004-11-15  Zoltan Varga  <vargaz@freemail.hu>
2966
2967         * icall.c (ves_icall_type_isprimitive): Native int is a primitive type.
2968
2969         * reflection.c (mono_image_create_pefile): Free the assembly streams
2970         after writing out the assembly file.
2971
2972         * object.c (mono_runtime_run_main): Fix small memory leak.
2973
2974         * icall.c (ves_icall_Type_GetPropertiesByName): Add support for
2975         property access modifiers. Fixes #69389.
2976
2977 Mon Nov 15 11:54:22 CET 2004 Paolo Molaro <lupus@ximian.com>
2978
2979         * domain.c, object.c, object-internals.h, domain-internals.h,
2980         object.h, marshal.c: keep dynamic code info per domain.
2981
2982 2004-11-15  Martin Baulig  <martin@ximian.com>
2983
2984         * class.c (mono_type_get_name_recurse): Put type arguments in
2985         `[',`]' instead of in `<','>'.  Thanks to Atsushi for the patch,
2986         see bug #68387.
2987
2988 2004-11-15  Martin Baulig  <martin@ximian.com>
2989
2990         * class.c (mono_type_get_name_recurse): Added `include_ns' flag.
2991         (mono_class_setup_vtable): When computing `the_cname' for a
2992         generic instance, don't include the namespace since we'd otherwise
2993         add it twice.
2994
2995 2004-11-15  Martin Baulig  <martin@ximian.com>
2996
2997         * class.c (mono_class_create_generic): Changed return type to void.
2998         (mono_class_create_generic_2): New public function; setup
2999         `class->method', `class->field' and `class->interfaces' here
3000         instead of in mono_class_init().
3001
3002         * class.h (mono_class_create_generic): Moved to class-internals.h.
3003
3004 2004-11-14  Ben Maurer  <bmaurer@ximian.com>
3005
3006         * reflection.c (mono_image_create_pefile): take a file HANDLE.
3007         rather than writing to memory, write to this file. Right now,
3008         we are just writting into a buffer, and copying that. However
3009         we can avoid the buffer later.
3010
3011         (mono_dynamic_stream_reset): new function
3012
3013         * icall.c, object-internals.h: update for the above.
3014
3015 2004-11-13  Ben Maurer  <bmaurer@ximian.com>
3016
3017         * reflection.c: Remove *_ATOMIC macros. We really shouldn't
3018         have been using gc'd memory. First it is slower, unlikely
3019         the comment in the source code said, secondly, it increases
3020         our footprint to do it in the gc.
3021
3022         * icall.c (WriteToFile): rename of getDataChunk. Rewrite
3023         the method so that it does not have to copy to managed code.
3024
3025 2004-11-12  Zoltan Varga  <vargaz@freemail.hu>
3026
3027         * loader.c (mono_method_get_header): Fix build for older glibs which does not define G_LIKELY.
3028
3029 2004-11-12  Martin Baulig  <martin@localhost>
3030
3031         * reflection.c (mono_image_create_token): Allow generic method
3032         definitions here, since they may appear in an `.override'; see
3033         gen-98/gen-99 for an example.
3034
3035 2004-11-11  Zoltan Varga  <vargaz@freemail.hu>
3036
3037         * icall.c (ves_icall_Type_GetField): Support BFLAGS_IgnoreCase. Fixes
3038         #69365.
3039
3040         * marshal.c (mono_string_to_ansibstr): Make g_error messages more
3041         descriptive.
3042
3043 2004-11-11  Martin Baulig  <martin@ximian.com>
3044
3045         * class.c (mono_class_setup_vtable): In an explicit interface
3046         implementation, the method name now includes the arity.
3047
3048 2004-11-10  Zoltan Varga  <vargaz@freemail.hu>
3049
3050         * object.c (mono_array_full_copy): Fix warning.
3051
3052 2004-11-10  Lluis Sanchez Gual  <lluis@novell.com>
3053
3054         * appdomain.c: Removed look_for_method_by_name(). Use the new method
3055         mono_class_get_method_from_name() instead.
3056         
3057         * class-internals.h: Added two new types of wrappers. 
3058         Added MonoRemotingTarget enum. Added new trampoline function type, which
3059         takes an additional MonoRemotingTarget value as parameter, so it is
3060         possible to request a trampoline for a specific target.
3061         
3062         * class.c: Added new mono_class_get_method_from_name() method.
3063         
3064         * class.h: In MonoRemoteClass, we can have now to vtables, one for
3065         general remoting sinks and one specific for cross domain calls.
3066         
3067         * debug-helpers.c: Added new wrapper names.
3068         
3069         * icall.c: Use the new method mono_remote_class_vtable() to get the vtable
3070         of a remote class.
3071         
3072         * image.c: Porperly delete value objects form the remoting invoke hashtable.
3073         
3074         * marshal.c: Added mono_marshal_get_xappdomain_invoke(), which together
3075         with several other methods (mono_marshal_get_xappdomain_dispatch,
3076         mono_marshal_get_xappdomain_target, mono_marshal_get_serialize_exception,
3077         and others) can generate a fast remoting wrapper for cross domain calls.
3078         More information can be found in docs/remoting.
3079         Other changes: Removed mono_find_method_by_name, and used
3080         mono_class_get_method_from_name instead.
3081         Remoting wrappers are now stored in a MonoRemotingMethods struct, which
3082         is stored in the remoting invoke hashtable.
3083         
3084         * marshal.h: published the new method for getting the xdomain wrapper,
3085         and also added a method for getting the adequate wrapper for a given
3086         method and target.
3087         
3088         * object-internals.h, object.c: Added a couple of methods for capying and
3089         cloning arrays.
3090         Modified mono_install_remoting_trampoline, which takes the new remoting
3091         trampoline that has a remoting target as parameter.
3092         mono_class_proxy_vtable now also takes a remoting target as parameter, and
3093         will return the most suitable vtable for the target.
3094         Added mono_remote_class_vtable, which returns the vtable of a remote class
3095         (which can be the normal remoting vtable or the xdomain vtable).
3096         
3097         * threads.c: the xdomain invoke and dispatch wrappers must also be
3098         protected against interruptions.
3099
3100 2004-11-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3101
3102         * icall.c: use memmove in BlockCopyInternal when the source and
3103         destination arrays are the same.
3104
3105 2004-11-09  Martin Baulig  <martin@ximian.com>
3106
3107         * class-internals.h (MonoGenericContainer): Removed `method' and
3108         `signature', replaced them with `is_method' and `is_signature'
3109         flags.  Added `context'.
3110
3111         * loader.c (method_from_methodspec): Take a `MonoGenericContext *'
3112         instead of a `MonoGenericContainer *'.
3113
3114         * metadata.c (mono_metadata_generic_param_equal): Removed the hack
3115         for dynamic type parameters.
3116         (mono_metadata_load_generic_params): Setup `container->context'.
3117
3118         * reflection.c (mono_reflection_setup_generic_class): Setup
3119         `tb->generic_container->context'.
3120         (do_mono_reflection_bind_generic_parameters): Use
3121         mono_class_inflate_generic_type() to correctly inflate types,
3122         rather than using our own hack just for MONO_TYPE_VAR.
3123
3124 2004-11-09  Martin Baulig  <martin@ximian.com>
3125
3126         * class.c (mono_class_inflate_generic_method): Small fix; don't
3127         crash here.
3128
3129         * icall.c
3130         (ves_icall_MonoType_GetGenericArguments): Don't ignore `byref' types.
3131         (ves_icall_Type_get_IsGenericTypeDefinition): Likewise.
3132         (ves_icall_Type_GetGenericTypeDefinition_impl): Likewise.
3133         (ves_icall_Type_BindGenericParameters): Likewise.
3134         (ves_icall_Type_get_IsGenericInstance): Likewise.
3135         (ves_icall_Type_GetGenericParameterPosition): Likewise.
3136         (ves_icall_MonoType_get_HasGenericArguments): Likewise.
3137         (ves_icall_MonoType_get_IsGenericParameter): Likewise.
3138         (ves_icall_MonoType_get_DeclaringMethod): Likewise.
3139
3140 2004-11-09  Zoltan Varga  <vargaz@freemail.hu>
3141
3142         * assembly.c (mono_assembly_names_equal): Reenable the comparison of
3143         assembly versions and public key tokens. Fixes #69113.
3144
3145 Tue Nov 9 17:34:05 CET 2004 Paolo Molaro <lupus@ximian.com>
3146
3147         * metadata.c: fix bug introduced with the type cache changes
3148         on 2004-11-06.
3149
3150 Tue Nov 9 17:26:29 CET 2004 Paolo Molaro <lupus@ximian.com>
3151
3152         * metadata.h, metadata.c, domain-internals.h, marshal.c: include
3153         the MonoClass pointer instead of the token in exception clauses.
3154         * reflection.c: updates for the above and make the code not depend
3155         on the structure of MonoExceptionClause.
3156
3157 2004-11-08  Zoltan Varga  <vargaz@freemail.hu>
3158
3159         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3160         Add support for dynamic assemblies. Fixes #69114.
3161
3162         * loader.c (mono_method_get_header): Handle icalls and pinvoke methods.
3163
3164 2004-11-07  Ben Maurer  <bmaurer@ximian.com>
3165
3166         * class-internals.h (MonoMethod): Move addr to MonoMethodPInvoke
3167         since most only those methods use it. the code member of
3168         MonoMethodPInvoke was dead, so that can be removed too. Also,
3169         remove inline_count (again, not used), and move slot so that it
3170         can share bits with some other flags. This saves 8 bytes in the
3171         structure and gives us about 50 kb back for mcs helloworld.cs
3172
3173         * *.[ch]: Do naming changes for the above.
3174
3175         * loader.c (mono_method_get_header): Lazily init the header
3176         on first access.
3177         (mono_get_method_from_token): don't init the header here
3178         (mono_free_method): the header may never be allocated
3179
3180         Overall, this saves 150 kb of unmanaged allocations
3181         for mcs helloworld.cs. That accounts for 10% of the unmanaged
3182         memory at runtime.
3183         
3184         * loader.c, loader.h (mono_method_get_header): new accessor.
3185
3186         * *.[ch]: use the above method. Prepares us to lazily load
3187         the header.
3188
3189         * *.[ch]: Clean up all the pesky warnings. gcc now only gives
3190         three warnings, which are actual bugs (see 69206).
3191
3192         * class-internals.h (MonoMethod): Remove remoting_tramp. It is
3193         unused. Saves a cool 4 bytes / method.
3194
3195 2004-11-06  Ben Maurer  <bmaurer@ximian.com>
3196
3197         * metadata.c (builtin_types): Add types for System.Object here.
3198         (mono_metadata_parse_type_full): Cache MonoType*'s that are
3199         for a class or valuetype from klass->this_arg or klass->byval_arg.
3200
3201         On mcs for a hello world, this gets us down from 21836 MonoType's
3202         to 14560.
3203
3204         (mono_metadata_free_type): Account for the above change.
3205
3206 2004-11-06  Zoltan Varga  <vargaz@freemail.hu>
3207
3208         * appdomain.c (ves_icall_System_AppDomain_GetData): Throw an 
3209         exception instead of asserting if name is null.
3210         (ves_icall_System_AppDomain_GetData): Ditto.
3211
3212 2004-11-05  Zoltan Varga  <vargaz@freemail.hu>
3213
3214         (ves_icall_get_enum_info): Avoid crash when called on a non-finished
3215         EnumBuilder.
3216
3217         * icall.c (ves_icall_System_Reflection_Assembly_GetEntryAssembly): 
3218         Return NULL when the domain does not have entry_assembly set.
3219
3220         * icall.c (ves_icall_System_Reflection_Assembly_GetFilesInternal): 
3221         Add a 'resource_modules' argument.
3222         (ves_icall_type_GetTypeCode): Fix typecode of byref types.
3223
3224         * reflection.c (mono_reflection_create_runtime_class): Move setting
3225         of wastypebuilder here, so mono_get_type_object () returns a MonoType
3226         for enums too.
3227
3228         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi): Return NULL here instead of an empty string to match MS behavior.
3229         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAnsi_len):
3230         Throw an ArgumentNullException if 'ptr' is null.
3231
3232         * appdomain.c (mono_domain_assembly_search): Avoid matching dynamic
3233         assemblies here. Fixes #69020.
3234
3235 2004-11-05  Geoff Norton  <gnorton@customerdna.com>
3236
3237         * reflection.c (build_compressed_metadata): Fix the previous patch for
3238         big endian systems.  GUINT32_FROM_LE isn't needed on strlen and was overwriting
3239         the stack.
3240
3241 2004-11-04  Zoltan Varga  <vargaz@freemail.hu>
3242
3243         * assembly.c (mono_assembly_names_equal): Allow a match if one of
3244         the cultures is false. Fixes #69090.
3245
3246         * reflection.c (build_compressed_metadata): Fix invalid memory read 
3247         detected by valgrind.
3248         
3249         * reflection.c (mono_reflection_get_type): Avoid triggering a 
3250         TypeResolve multiple times for the same type. Fixes #65577.
3251
3252 2004-11-04  Ben Maurer  <bmaurer@ximian.com>
3253
3254         * marshal.c: Avoid using ldftn to call managed functions. It is
3255         much slower than just a call.
3256
3257         * reflection.c (mono_module_get_object): free the basename we
3258         allocate here from glib.
3259         
3260         * reflection.c (ensure_runtime_vtable): make sure to free
3261         overrides.  Also, we were allocating an array of MonoMethod not an
3262         array of MonoMethod*.
3263
3264         * marshal.c (mono_marshal_get_stelemref): do a mono_mb_free here.
3265
3266         * image.c (mono_image_close): free image->guid here.
3267
3268 2004-11-02  Zoltan Varga  <vargaz@freemail.hu>
3269
3270         * reflection.c: Fix some spec conformance issues with the PE file
3271         structures so mcs compiled apps run on the Net 2.0 beta.
3272
3273 2004-11-01  Zoltan Varga  <vargaz@freemail.hu>
3274
3275         * string-icalls.c (ves_icall_System_String_ctor_encoding): 
3276         Implement this. Fixes #67264.
3277
3278         * debug-helpers.h debug-helpers.c marshal.c: Move 
3279         mono_find_method_by_name to debug-helpers.c.
3280
3281 2004-10-31  Zoltan Varga  <vargaz@freemail.hu>
3282
3283         * object.c (mono_release_type_locks): type_initialization_hash is
3284         a GHashTable.
3285
3286         * reflection.c object.c object-internals.h: Fix warnings.
3287
3288         * icall.c (ves_icall_Type_GetPropertiesByName): Handle properties
3289         without accessors. Fixes #61561.
3290
3291         * appdomain.c (ves_icall_System_AppDomain_createDomain): Inherit
3292         application base from the root domain if not set. Fixes #65641.
3293         (mono_runtime_init): Fix warning.
3294
3295 2004-10-29 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3296
3297         * appdomain.c: call mono_thread_pool_init.
3298         * threadpool.[ch]: new mono_thread_pool_init that sets the max. number
3299         of worker threads based on the number of CPUs and the environment
3300         variable MONO_THREADS_PER_CPU if present. The defaults are 50 (25)
3301         for non-windows (windows) systems.
3302
3303 2004-10-27  Chris Toshok  <toshok@ximian.com>
3304
3305         * mono-debug-debugger.c (write_class): don't call mono_class_init
3306         here, as even with the check for (!klass->init_pending), we get
3307         into a situation where we're hitting cycles in class
3308         initialization.  Fixes #68816.
3309
3310 2004-10-25  Zoltan Varga  <vargaz@freemail.hu>
3311
3312         * image.c: Avoid overwriting values in the loaded_images_hash when an
3313         assembly is loaded multiple times. Fixes #61152.
3314
3315         * assembly.c (mono_assembly_names_equal): Compare the cultures as well,
3316         so multiple satellite assemblies for the same name can be loaded.
3317         Fixes #68259.
3318
3319         * mono_domain_assembly_preload: Actually return the loaded assembly, 
3320         not NULL.
3321
3322         * icall.c (ves_icall_type_is_subtype_of): Fix this for byref types.
3323         (ves_icall_type_is_assignable_from): Ditto. Fixes #68582.
3324
3325         * gc.c (finalize_domain_objects): Call GC_invoke_finalizers () so
3326         pending finalizers are not invoked after the appdomain has been 
3327         unloaded. Fixes #67862.
3328
3329 2004-10-22  Martin Baulig  <martin@ximian.com>
3330
3331         * mono-debug-debugger.c
3332         (mono_debugger_runtime_invoke): Don't box valuetypes.
3333
3334 2004-10-22  Chris Toshok  <toshok@ximian.com>
3335
3336         * mono-debug-debugger.c (do_write_class): handle .cctors too, and
3337         don't hide private methods.
3338
3339 2004-10-22  Sebastien Pouliot  <sebastien@ximian.com>
3340
3341         * icall.c: Allows the runtime to "share" (when known) the public key
3342         token of an assembly. This avoid the need to recalculate the token 
3343         (from the public key) in managed code.
3344
3345 2004-10-21  Chris Toshok  <toshok@ximian.com>
3346
3347         * debug-helpers.c (append_class_name): argh, revert last patch.
3348         
3349 2004-10-21  Chris Toshok  <toshok@ximian.com>
3350
3351         * debug-helpers.c (append_class_name): use '+' as the delimiter,
3352         not '/', so that it matches what the debugger uses to look up
3353         methods.
3354
3355 2004-10-21  Martin Baulig  <martin@ximian.com>
3356
3357         * mono-debug-debugger.c (mono_debugger_throw_exception): New
3358         public method; this is called each time an exception is thrown and
3359         allows the debugger to use exception catch points.
3360
3361 2004-10-21  Martin Baulig  <martin@ximian.com>
3362
3363         * mono-debug-debugger.c (mono_debugger_handle_exception): Write
3364         the stack pointer and the exception object in some struct and pass
3365         that to the debugger.
3366
3367 2004-10-21  Chris Toshok  <toshok@ximian.com>
3368
3369         * mono-debug-debugger.c (do_write_class): add instance/static
3370         event support.  We don't expose "raise" or "other" yet.
3371         (event_is_static): new method.
3372
3373 2004-10-20  Bernie Solomon  <bernard@ugsolutions.com>
3374
3375         * mono-debug-debugger.c
3376         (mono_debugger_handle_exception): Remove
3377         bogus return value for fussy compilers.
3378
3379 2004-10-20  Martin Baulig  <martin@ximian.com>
3380
3381         * mono-debug-debugger.c
3382         (mono_debugger_unhandled_exception): Added `gpointer stack' argument.
3383         (mono_debugger_handled_exception): Likewise.
3384
3385 2004-10-20  Martin Baulig  <martin@ximian.com>
3386
3387         * mono-debug-debugger.h (MonoDebuggerEvent): Added
3388         MONO_DEBUGGER_EVENT_EXCEPTION.
3389
3390         * mono-debug-debugger.c (mono_debugger_handle_exception): New
3391         public function to send the debugger a notification for an
3392         exception and inform it about a catch/finally clause.
3393
3394 2004-10-19  Zoltan Varga  <vargaz@freemail.hu>
3395
3396         * marshal.c, icall.c: Applied patch from Alexandre Rocha Lima e
3397         Marcondes (alexandremarcondes@psl-pr.softwarelivre.org). Really
3398         fix 2.95 build. 
3399
3400         * icall.c (ves_icall_InternalExecute): Fix build for gcc-2.95.
3401
3402 2004-10-18  Zoltan Varga  <vargaz@freemail.hu>
3403
3404         * marshal.c (emit_marshal_object): Fix freeing of memory when a reference type is
3405         marshalled as [In,Out]. Fixes #58325.
3406
3407 2004-10-14  Zoltan Varga  <vargaz@freemail.hu>
3408
3409         * reflection.c (mono_method_body_get_object): Implement some fields.
3410
3411 2004-10-12  Martin Baulig  <martin@ximian.com>
3412
3413         * reflection.c (mono_reflection_bind_generic_parameters): Small
3414         fix, correctly retrieve our parent from a generic instance.
3415
3416 2004-10-12  Martin Baulig  <martin@ximian.com>
3417
3418         * metadata.c (mono_metadata_generic_param_equal): We always have
3419         an owner.
3420
3421         * class.c
3422         (mono_class_from_generic_parameter): We need to have an owner.
3423         (my_mono_class_from_generic_parameter): Likewise.
3424
3425         * reflection.c (mono_reflection_setup_generic_class): Renamed to
3426         mono_reflection_create_generic_class() and added a new
3427         mono_reflection_setup_generic_class().  
3428         (mono_reflection_initialize_generic_param): If we're a nested
3429         generic type and inherited from the containing class, set our
3430         owner to the outer class.
3431
3432 2004-10-11  Zoltan Varga  <vargaz@freemail.hu>
3433
3434         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodBodyInternal): New icall.
3435
3436         * reflection.c (mono_method_body_get_object): New function to create
3437         a MethodBody object.
3438
3439         * object-internals.h object.h: Add MonoReflectionMethodBody structure.
3440
3441 2004-10-11  Martin Baulig  <martin@ximian.com>
3442
3443         * metadata.c (_mono_metadata_type_equal): Renamed to
3444         do_mono_metadata_type_equal() and made static.
3445
3446 2004-10-11  Martin Baulig  <martin@ximian.com>
3447
3448         * appdomain.c: Bump corlib version number to 28.
3449
3450 2004-10-10  Martin Baulig  <martin@ximian.com>
3451
3452         * class-internals.h
3453         (MonoGenericInst): Added `MonoGenericContainer *container'.
3454         (MonoGenericMethod): Likewise.
3455         (MonoGenericContext): Likewise.
3456         (MonoGenericParam): Added `MonoGenericContainer *owner'.
3457
3458         * metadata.c
3459         (do_mono_metadata_parse_type): Added a `MonoGenericContainer *' argument.
3460         (do_mono_metadata_parse_generic_inst): Likewise.
3461         (mono_metadata_parse_type_full): New public method.  This is the actual
3462         mono_metadata_parse_type() implementation - with an additional
3463         `MonoGenericContainer *' argument.
3464         (mono_metadata_parse_array_full): Likewise.
3465         (mono_metadata_parse_signature_full): Likewise.
3466         (mono_metadata_parse_method_signature_full): Likewise.
3467         (mono_metadata_parse_mh_full): Likewise.
3468         (mono_type_create_from_typespec): Likewise.
3469         (mono_metadata_interfaces_from_typedef_full): New public method;
3470         this is similar to the other _full() methods, but we take a
3471         `MonoGenericContext *' since we have to pass it to mono_class_get_full().
3472         (mono_metadata_parse_generic_param): Take an additional
3473         `MonoGenericContainer *' argument and lookup the MonoGenericParam
3474         from that container.
3475         (mono_metadata_generic_param_equal): New static method to compare
3476         two type parameters.
3477         (_mono_metadata_type_equal): New static method; takes an
3478         additional `gboolean signature_only' argument - if true, we don't
3479         compare the owners of generic parameters.
3480         (mono_metadata_signature_equal): Call _mono_metadata_type_equal()
3481         with a TRUE argument - do a signature-only comparision.
3482
3483         * loader.c: Use the new _full() methods and pass the
3484         MonoGenericContainer to them.
3485
3486         * object-internals.h (MonoReflectionTypeBuilder): Added
3487         `MonoGenericContainer *generic_container' field.
3488         (MonoReflectionMethodBuilder): Likewise.
3489
3490 2004-10-08  Zoltan Varga  <vargaz@freemail.hu>
3491
3492         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): Special
3493         case initial images of dynamic assemblies.
3494
3495         * reflection.c (mono_image_basic_init): Set 'initial_image' field.
3496
3497         * metadata-internals.h (MonoDynamicImage): Add 'initial_image' field.
3498
3499         * reflection.c (mono_reflection_event_builder_get_event_info): Fix
3500         length of event->other array.
3501         (typebuilder_setup_events): Ditto.
3502
3503         * domain-internals.h (MonoDomain): Rename 'assemblies' hash table to
3504         'assembly_by_name' and add an 'assemblies' list.
3505
3506         * assembly.h assembly.c: Add a new search hook for determining whenever
3507         an assembly is already loaded. Use this instead of searching in the
3508         loaded_assemblies list.
3509
3510         * domain.c appdomain.c: Implement the new search hook so loaded 
3511         assemblies are now scoped by appdomain. Fixes #67727.
3512
3513 2004-10-07  Zoltan Varga  <vargaz@freemail.hu>
3514
3515         * threads.c (mono_thread_attach): Initialize synch_lock field so
3516         mono_thread_detach works again.
3517
3518         * loader.c (mono_lookup_pinvoke_call): Try the dllname prefixed with
3519         'lib' too. Fixes #63130.
3520
3521 2004-10-06  Jackson Harper  <jackson@ximian.com>
3522
3523         * culture-info-tables.h: regenerated.
3524
3525 2004-10-06  Zoltan Varga  <vargaz@freemail.hu>
3526
3527         * icall.c (ves_icall_Type_GetInterfaces): Include interfaces 
3528         implemented by other interfaces in the result. Fixes #65764.
3529         
3530         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3531         Handle unloadable modules without crashing.
3532
3533         * image.c (load_modules): Revert the previous patch since modules must
3534         have a fixed index inside the array.
3535         
3536         * image.c (load_modules): Don't include native modules in the modules
3537         array.
3538
3539 2004-10-05  Zoltan Varga  <vargaz@freemail.hu>
3540
3541         * reflection.h: Add param_defaults field.
3542
3543         * reflection.c: Add support for parameter defaults in dynamic methods.
3544         Fixes #64595.
3545
3546         * icall.c (ves_icall_MonoType_get_Namespace): Return NULL instead of
3547         an empty string when a type has no namespace. Fixes #64230.
3548
3549 2004-10-04  Sebastien Pouliot  <sebastien@ximian.com>
3550
3551         * tabledefs.h: Added "internal" security actions to support non-CAS
3552         permissions NonCasDemand, NonCasLinkDemand and NonCasInheritance. 
3553         Note: they do not seems to be used anymore in 2.0 (new metadata format)
3554
3555 2004-10-04  Zoltan Varga  <vargaz@freemail.hu>
3556
3557         * icall.c (ves_icall_InternalInvoke): Throw an exception when calling
3558         constructor of abstract class. Fixes #61689.
3559
3560 2004-10-04  Martin Baulig  <martin@ximian.com>
3561
3562         * class-internals.h (MonoGenericContainer): New type.
3563         (MonoMethodNormal): Replaced `MonoGenericParam *gen_params' with
3564         `MonoGenericContainer *generic_container'.
3565         (MonoClass): Replaced `gen_params' and `num_gen_params' with
3566         `MonoGenericContainer *generic_container'.
3567
3568         * metadata.c (mono_metadata_load_generic_params): Return a
3569         `MonoGenericContainer *' instead of a `MonoGenericParam *';
3570         removed the `num' argument.
3571
3572 2004-10-03  Zoltan Varga  <vargaz@freemail.hu>
3573
3574         * icall.c (ves_icall_System_Reflection_Module_GetPEKind): Add support
3575         for dynamic images.
3576
3577         * object-internals.h (MonoReflectionAssemblyBuilder): Add pe_kind and
3578         machine fields.
3579
3580         * metadata-internals.h (MonoDynamicImage): Add pe_kind and machine fields.
3581
3582         * reflection.c: Save pe_kind and machine values into the generated
3583         image file.
3584
3585         * appdomain.c: Bump corlib version number.
3586
3587         * object-internals.h: Reorganize layout of LocalBuilder.
3588
3589         * class-internals.h class.c (mono_class_get_implemented_interfaces): 
3590         New helper function.
3591
3592         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Return the
3593         created MonoType for dynamic types. Fixes #66180.
3594
3595 2004-10-02  Ben Maurer  <bmaurer@ximian.com>
3596
3597         * threadpool.c: the ares hashtable needs a critical section around it.
3598         this prevents some nasty segfaults
3599
3600 2004-10-02  Massimiliano Mantione  <massi@ximian.com>
3601
3602         * process.c: Fixed alignments to 32 bits as casting to unsigned is unsafe
3603         on 64 bits platforms, patch by will@exomi.com (Ville-Pertti Keinonen), see
3604         bug 67324).
3605         
3606 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3607
3608         * object-internals.h (MonoReflectionTypeBuilder): Add 'created' field.
3609         
3610 2004-09-30  Lluis Sanchez Gual  <lluis@novell.com>
3611
3612         * image.c: Always canonicalize image file names, to avoid loading
3613         the same assembly twice when referenced using a relative path.
3614
3615 2004-09-30  Zoltan Varga  <vargaz@freemail.hu>
3616
3617         * marshal.h marshal.c icall.c: Fix bugs in previous patch.
3618
3619         * marshal.c marshal.h icall.c: Add GetDelegateForFunctionPointerInternal icall.
3620
3621         * marshal.c: Fix warnings.
3622
3623 2004-09-29  Geoff Norton  <gnorton@customerdna.com>
3624
3625         * marshal.c (mono_ftnptr_to_delegate): This method was improperly
3626         attempting to marshal the delegate_trampoline as the method_addr.
3627         This patch has a static hashtable of marshalled delegates so that 
3628         we can map delegate_trampoline addresses back to delegates.  This
3629         allows a delegate passed to managed code to be passed back into native
3630         code.  Fixes #67039
3631
3632 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3633
3634         * icall.c: Add GetFunctionPointerForDelegateInternal icall.
3635
3636         * reflection.c (method_encode_code): Align method headers properly.
3637         Fixes #66025.
3638
3639 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3640
3641         * marshal.c: In the runtime invoke wrapper, reset the abort
3642         exception if it is cached. This avoids the automatic rethrowal of 
3643         the exception after the catch of the wrapper. Also check for pending
3644         interruptions before calling the managed method. This is done using
3645         the new method emit_thread_force_interrupt_checkpoint, since the
3646         normal checkpoint method is ignored when running the invoke wrapper.
3647         * object.c: If the abort exception is rethrown, set the abort_exc
3648         field of the thread, so it will be rethrown aftere every catch.
3649         * threadpool.c: Only run an interruption checkpoint if what has been
3650         requested is a stop of the thread (aborts will be ignored).
3651         * threads.c: By default, a thread will now never be interrumped while
3652         running the runtime invoke wrapper (this ensures that runtime_invoke
3653         will always return to the caller if an exception pointer is provided).
3654         There is a new special method mono_thread_force_interruption_checkpoint()
3655         to force an interruption checkpoint even if running a protected
3656         wrapper, which is used by the same runtime invoke wrapper to do a check
3657         at a safe point.
3658
3659 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
3660
3661         * object.c, object-internals.h: Implemented mono_release_type_locks,
3662         which releases the cctor locks held by a thread.
3663         * threads.c, threads.h: In thread_cleanup, release cctor locks held
3664         by a thread. Added mono_thread_exit() method to be used to safely stop
3665         a thread.
3666
3667 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3668
3669         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal): 
3670         Move null check before dereference.  Avoid indexing beyond the end
3671         of the 'modules' array.
3672
3673 2004-09-28  Raja R Harinath  <rharinath@novell.com>
3674
3675         * metadata-internals.h (MonoImage): Add module_count field.
3676         * image.c (load_modules): Set image->module_count.
3677         (mono_image_load_file_for_image): Use image->module_count.
3678         * reflection.c (mono_image_load_module): Append to image->modules array 
3679         of dynamic assembly.
3680         (mono_module_get_object): Fix loop to actually increment index.
3681         Use image->module_count.
3682         * assembly.c (mono_assembly_load_references): Use image->module_count.
3683         * icall.c (ves_icall_System_Reflection_Assembly_GetModulesInternal):
3684         Likewise.
3685
3686 2004-09-28  Zoltan Varga  <vargaz@freemail.hu>
3687
3688         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): 
3689         Avoid assert on generic types.
3690
3691 2004-09-26  Zoltan Varga  <vargaz@freemail.hu>
3692
3693         * icall.c (ves_icall_System_Reflection_FieldInfo_GetUnmanagedMarshal): New icall.
3694
3695         * reflection.c (mono_param_get_objects): Fill out MarshalAsImpl field.
3696
3697         * reflection.c (mono_reflection_marshal_from_marshal_spec): New 
3698         function to convert a MarshalSpec structure to its managed counterpart.
3699
3700         * reflection.c: Fix warnings.
3701         
3702         * object-internals.h (MonoReflectionParameter): Add MarshalAsImpl
3703         field.
3704
3705         * icall.c (mono_create_icall_signature): Fix build.
3706
3707 2004-09-25  Zoltan Varga  <vargaz@freemail.hu>
3708
3709         * icall.c: Add MakePointType icall.
3710
3711         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage): Fix
3712         warnings.
3713
3714 2004-09-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3715
3716         * threadpool.c: reuse allocated slots in the queue.
3717
3718 2004-09-24  Zoltan Varga  <vargaz@freemail.hu>
3719
3720         * object-internals.h (MonoReflectionDllImportAttribute): New structure.
3721
3722         * icall.c: Add new icalls for GetDllImportAttribute and GetFieldOffset.
3723
3724         * reflection.h reflection.c (mono_reflection_get_custom_attrs): Revert
3725         previous change.
3726
3727         * tabledefs.h: Add constants for pinvoke attributes BestFit and
3728         ThrowOnUnmappableChar.
3729
3730         * icall.c (ves_icall_Type_GetPacking): New icall.
3731
3732 2004-09-24  Martin Baulig  <martin@ximian.com>
3733
3734         * icall.c (ves_icall_Type_GetGenericParameterConstraints): New interncall.
3735
3736 2004-09-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3737
3738         * appdomain.c:
3739         (mono_domain_set): allow setting a domain that is being unloaded.
3740         (mono_domain_unload): invoke the DomainUnload callbacks in the domain
3741         being unloaded.
3742
3743 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3744
3745         * icall.c reflection.h reflection.c: Add a 'pseudo_attrs' argument to
3746         the GetCustomAttributes icall.
3747
3748 2004-09-23  Martin Baulig  <martin@ximian.com>
3749
3750         * object-internals.h (MonoReflectionGenericParam): Replaced
3751         'has_ctor_constraint', `has_reference_type' and `has_value_type'
3752         with `guint32 attrs'.
3753
3754 2004-09-23  Martin Baulig  <martin@ximian.com>
3755
3756         * icall.c (ves_icall_Type_GetGenericParameterAttributes): New interncall.
3757
3758 2004-09-23  Martin Baulig  <martin@ximian.com>
3759
3760         * object-internals.h (GenericParameterAttributes): New enum.
3761
3762 2004-09-23  Zoltan Varga  <vargaz@freemail.hu>
3763
3764         * object-internals.h (MonoEventInfo): Add 'other_methods' field.
3765         
3766         * class.c (init_events): Fill out event->other field.
3767
3768         * class.c: Fix warnings.
3769
3770         * icall.c (ves_icall_get_event_info): Fill out 'other_methods' field.
3771
3772 Wed Sep 22 19:04:32 CEST 2004 Paolo Molaro <lupus@ximian.com>
3773
3774         * class-internals.h, icall.c, loader.c, loader.h: added a faster stack
3775         walk which doesn't supply the IL offset.
3776
3777 2004-09-22  Martin Baulig  <martin@ximian.com>
3778
3779         * reflection.c (mono_reflection_setup_internal_class): If we're
3780         System.ValueType, System.Object or System.Enum, set
3781         `klass->instance_size' and create the vtable.
3782         (mono_reflection_create_internal_class): If we're an enum type,
3783         get the base class from our current corlib.
3784
3785 2004-09-22  Zoltan Varga  <vargaz@freemail.hu>
3786
3787         * reflection.h (MonoResolveTokenError): New type.
3788
3789         * icall.c (ves_icall_System_Reflection_Module_ResolveMemberToken): New
3790         icall.
3791
3792         * icall.c: Add an 'error' argument to the ResolveToken icalls.
3793
3794 2004-09-22  Lluis Sanchez Gual  <lluis@novell.com>
3795
3796         * icall.c: Support ContextBoundObject proxies in ves_icall_InternalExecute.
3797         Support also calling constructors, but only for already allocated objects.
3798
3799 2004-09-17  Geoff Norton <gnorton@customerdna.com>
3800
3801         * reflection.c (type_get_qualified_name): If the klass is null
3802         return the typename to avoid a NullRefEx.
3803         (encode_cattr_value): Get the qualified name of the boxed type,
3804         not the underlying enumtype.  Fixes #62984.
3805
3806 2004-09-21  Zoltan Varga  <vargaz@freemail.hu>
3807
3808         * marshal.c: Fix problems with previous checkin.
3809
3810 2004-09-21    <vargaz@freemail.hu>
3811
3812         * marshal.h marshal.c icall.c: Add new icalls for Alloc/FreeHGlobal. Change the
3813         existing mono_marshal_alloc/free functions to use CoTaskMemAlloc/Free under windows.
3814
3815         * marshal.c: Allocate marshaller memory using mono_marshal_alloc/free.
3816
3817 2004-09-21  Geoff Norton <gnorton@customerdna.com>
3818
3819         * icall.c (ves_icall_MonoType_GetElementType): GetElementType
3820         should only return a type for pointers, arrays, and passbyref types.
3821         Fixes bug #63841.
3822
3823 2004-09-21  Martin Baulig  <martin@ximian.com>
3824
3825         * domain.c (mono_debugger_check_runtime_version): New public
3826         function.
3827
3828         * icall.c (ves_icall_MonoDebugger_check_runtime_version): New icall.    
3829
3830 2004-09-20  Sebastien Pouliot  <sebastien@ximian.com>
3831
3832         * reflection.c: Added missing sort to the declarative security 
3833         attributes table. MS implementation stops seeing the attributes if the
3834         token number regress in the table (as shown by ildasm and permview).
3835
3836 2004-09-20  Zoltan Varga  <vargaz@freemail.hu>
3837
3838         * object-internals.h (MonoReflectionModule): Add 'token' field.
3839         
3840         * reflection.c (mono_reflection_get_token): Add support for Module
3841         and Assembly.
3842         (mono_module_get_object): Set 'token' field.
3843         (mono_module_file_get_object): Set 'token' field.
3844
3845         * icall.c: Add new Assembly and Module icalls.
3846
3847         * appdomain.c: Bump corlib version.
3848
3849 2004-09-19  Zoltan Varga  <vargaz@freemail.hu>
3850
3851         * loader.h loader.c class.h class.c: Add helper functions for obtaining
3852         tokens of metadata objects.
3853
3854         * reflection.h reflection.c (mono_reflection_get_token): New function
3855         to obtain the token of a metadata object.
3856
3857         * icall.c: Add icalls for MetadataToken and ModuleHandle methods.
3858
3859 2004-09-17  Zoltan Varga  <vargaz@freemail.hu>
3860
3861         * loader.c (mono_lookup_pinvoke_call): Try the underscore prefixed name as well.
3862         
3863         * loader.c (mono_lookup_pinvoke_call): Add support for stdcall name mangling.
3864
3865 2004-09-16  Sebastien Pouliot  <sebastien@ximian.com>
3866
3867         * appdomain.c: Bumped MONO_CORLIB_VERSION to 25.
3868         * object-internals.h: Added 3 MonoArray* members to MonoReflection
3869         AssemblyBuilder to access the permissions set in the class lib.
3870         * reflection.c: Added security attributes encoding step in 
3871         mono_image_build_metadata.
3872         * tabledefs.h: Added new security actions defined in 2.0:
3873         LinkDemandChoice, InheritanceDemandChoice and DemandChoice.
3874
3875 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3876
3877         * threads.c: Fixed SET_CURRENT_OBJECT macros, they were ignoring the
3878         macro parameter.
3879
3880 2004-09-16  Lluis Sanchez Gual  <lluis@novell.com>
3881  
3882         * locales.c: nullify the ICU_collator member of CompareInfo when it is
3883           finalized. There where random SIGSEVs at program termination, when
3884           an object being finalized was trying to do a string comparison and
3885           the current culture was already finalized.
3886  
3887 2004-09-16 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3888
3889         * threads.c: call thread_cleanup before finishing the thread if we get
3890         there.
3891
3892 2004-09-16  Zoltan Varga  <vargaz@freemail.hu>
3893
3894         * appdomain.c (ves_icall_System_AppDomain_createDomain): Load all
3895         assemblies from the parent. Fixes #65665.
3896
3897 2004-09-15  Zoltan Varga  <vargaz@freemail.hu>
3898
3899         * metadata.c (mono_metadata_parse_type): Fix parsing of custom
3900         modifiers.
3901
3902 2004-09-14  Bernie Solomon  <bernard@ugsolutions.com>
3903
3904         * reflection.h: add prototype for mono_get_dbnull_object
3905         * reflection.c: add prototypes for get_default_param_value_blobs 
3906         and mono_get_object_from_blob for fussier compilers
3907
3908 2004-09-14  Lluis Sanchez Gual  <lluis@novell.com>
3909  
3910         * object.c: Added a "done" flag to TypeInitializationLock. This avoids
3911         false deadlock checks in class initialization.
3912  
3913 2004-09-13  Zoltan Varga  <vargaz@freemail.hu>
3914
3915         * image.c (mono_image_addref): Fix comment.
3916
3917         * metadata.c (mono_metadata_parse_type): Avoid memory allocations if
3918         possible.
3919
3920 2004-09-12  Jambunathan K  <kjambunathan@novell.com>
3921
3922         * reflection.c (mono_param_get_objects): Modified to return
3923         ParameterInfo.DefaultValue object.
3924
3925         (get_default_param_value_blobs):
3926         (mono_get_object_from_blob):
3927         (mono_get_dbnull_object): New helper routines. 
3928
3929         * object.c (mono_get_constant_value_from_blob): New helper routine
3930         carved out from get_default_field_value ()
3931
3932         * object-internals.h (mono_get_constant_value_from_blob): Added
3933         function declaration.
3934
3935 2004-09-11  Zoltan Varga  <vargaz@freemail.hu>
3936
3937         * assembly.c assembly.h icall.c class.c appdomain.c: Lazily load 
3938         referenced assemblies. Fixes #62135.
3939
3940         * exception.h exception.c (mono_get_exception_file_not_found2): New
3941         helper function.
3942
3943 2004-09-10  Zoltan Varga  <vargaz@freemail.hu>
3944
3945         * class.h class.c: Add mono_type_get_underlying_type ().
3946
3947 2004-09-09  Geoff Norton <gnorton@customerndna.com>
3948
3949         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes):
3950         Fix GetTypes() to support dynamically created assemblies.
3951
3952 2004-09-09  Zoltan Varga  <vargaz@freemail.hu>
3953
3954         * reflection.c (reflection_methodbuilder_to_mono_method): Remove TODO.
3955         
3956         * reflection.c (reflection_methodbuilder_to_mono_method): Fix bug in
3957         previous patch.
3958
3959         * reflection.h reflection.c loader.c: Allow dynamic construction of
3960         pinvoke methods. Fixes #65571.
3961         
3962         * reflection.c (mono_reflection_get_type): Revert previous change since
3963         it causes regressions.
3964
3965 2004-09-08  Martin Baulig  <martin@ximian.com>
3966
3967         * class.c (class_compute_field_layout): Don't call
3968         mono_class_layout_fields() for open generic instances.
3969
3970 2004-09-08 Bernie Solomon <bernard@ugsolutions.com>
3971         * threads.c appdomain.c: fix typo in GC macro
3972
3973 2004-09-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
3974
3975         * threads.c: don't call mono_thread_detach() in start_wrapper(),
3976         avoiding a possible hang in GetCurrentThreadId(0). Fixes bug #65379.
3977
3978 2004-09-08  Zoltan Varga  <vargaz@freemail.hu>
3979
3980         * image.c (mono_image_close): Applied patch from 
3981         vasantha.paulraj@honeywell.com (Vasantha selvi). Fix crash when an
3982         assembly is loaded multiple times from data.
3983         
3984         * image.c (mono_image_open): Fix warning.
3985
3986 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3987
3988         * reflection.h reflection.c icall.c: Only call TypeResolve handlers
3989         once. Fixes #58334.
3990         
3991         * reflection.c (mono_reflection_create_runtime_class): Initialize
3992         klass->nested_classes. Fixes #61224.
3993
3994 Tue Sep 7 14:35:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
3995
3996         * threads.c: sched_yield() on exit, to allow threads to quit.
3997
3998 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
3999
4000         * object.c (mono_unhandled_exception): Remove leftover debug code.
4001
4002 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
4003
4004         * appdomain.c, threads.c : don't use GC_CreateThread when with-gc=none
4005
4006 2004-09-07  Zoltan Varga  <vargaz@freemail.hu>
4007
4008         * marshal.c (emit_marshal_array): Really null terminate string arrays.
4009         
4010         * marshal.c (emit_marshal_string): Fix freeing of unicode strings.
4011
4012 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4013
4014         * marshal.c (emit_marshal_array): Null terminate string arrays.
4015         
4016         * marshal.c (raise_auto_layout_exception): Fix warning.
4017
4018         * reflection.c (mono_param_get_objects): Initialize the default value
4019         with DBNull.Value, not null. Fixes #62123.
4020
4021 2004-09-01  Miguel de Icaza  <miguel@ximian.com>
4022
4023         * marshal.c (mono_marshal_get_managed_wrapper): Remove FIXME and
4024         throw an exception with a cute explanation.
4025
4026 2004-09-06  Dick Porter  <dick@ximian.com>
4027
4028         * process.c (ves_icall_System_Diagnostics_Process_Start_internal):
4029         Close the new process's thread handle, as we don't use it.  The
4030         handle stays around forever otherwise.
4031
4032 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4033
4034         * object.c (arith_overflow): Fix warning.
4035
4036         * reflection.c (mono_image_get_methodref_token): Do not emit unmanaged
4037         calling conventions in method refs. Fixes #65352.
4038
4039         * reflection.c: Fix warnings.
4040
4041 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4042
4043         * icall.c: Add a new icall for Array.Clear
4044
4045 2004-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
4046
4047         * object.c: When allocating an array, we have to throw
4048         an overflow exception if any of the lengths are < 0.
4049
4050 2004-09-06  Zoltan Varga  <vargaz@freemail.hu>
4051
4052         * marshal.h marshal.c: Free unmanaged memory allocated by managed code
4053         properly. Also move implementation of string array marshalling to 
4054         managed code. Fixes #42316.
4055
4056 2004-09-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4057
4058         * assembly.c: provide more information when loading an assembly fails.
4059
4060 2004-09-04 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4061
4062         * filewatcher.c: don't expect the development fam package to be
4063         installed.
4064
4065 2004-09-03  Zoltan Varga  <vargaz@freemail.hu>
4066
4067         * marshal.c: Make a copy of the signature cookie since it will be
4068         freed by the caller.
4069         
4070         * marshal.c (mono_delegate_to_ftnptr): Fix bug in previous patch.
4071
4072         * marshal.c (mono_delegate_to_ftnptr): Fix memory leaks.
4073
4074         * metadata.c (mono_metadata_free_marshal_spec): New function to free
4075         marshal specs.
4076
4077         * marshal.c: More refactoring.
4078         
4079         * marshal.c: Refactor the mono_marshal_get_native_wrapper function into
4080         smaller functions.
4081
4082 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
4083
4084         * object.c: In mono_message_invoke, fill the output parameter array after
4085           calling the managed method (it was done before the call). This fixes
4086           bug #59299.
4087
4088 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4089
4090         * marshal.c (mono_marshal_alloc): Return a valid pointer on size 0
4091         as well.
4092
4093 2004-09-02  Martin Baulig  <martin@ximian.com>
4094
4095         * class.c (mono_class_instance_size): Don't allow generic type
4096         definitions or open generic instances.
4097         (mono_class_array_element_size): If we're a value type, call
4098         mono_class_instance_size() on the original class.
4099
4100         * metadata.c (mono_type_size, mono_type_stack_size): Correctly
4101         handle generic instances.
4102
4103         * mono-debug-debugger.c (write_type): Handle generic instances
4104         like classes.
4105
4106 2004-09-02  Zoltan Varga  <vargaz@freemail.hu>
4107
4108         * marshal.c (mono_marshal_alloc): Raise an OutOfMemory exception if
4109         the allocation request fails. Fixes #65089.
4110
4111         * object.c (mono_runtime_free_method): Do not call mono_free_method.
4112         
4113         * object.c (mono_runtime_free_method): New function to free a dynamic
4114         method.
4115
4116         * marshal.c (mono_delegate_free_ftnptr): New function to free the
4117         delegate trampoline.
4118
4119         * marshal.c (mono_marshal_get_managed_wrapper): Mark managed wrapper
4120         with hasthis as dynamic,
4121
4122         * icall.c (ves_icall_System_Delegate_FreeTrampoline): New icall.
4123
4124         * domain.c (mono_jit_info_table_remove): New function to remove an
4125         entry from the jit info table.
4126
4127         * class-internals.h (MonoMethod): Add 'dynamic' field.
4128
4129         * loader.c: Fix warnings.
4130
4131 2004-09-01  Martin Baulig  <martin@ximian.com>
4132
4133         * mono-debug.c, debug-mono-symfile.c: Use mono_loader_lock()
4134         instead of mono_debugger_lock() because the latter one is a no-op
4135         unless running in the debugger.
4136
4137 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4138
4139         * class.c (class_compute_field_layout): Classes with auto-layout or
4140         reference fields are not blittable.
4141         
4142 2004-09-01  Dick Porter  <dick@ximian.com>
4143
4144         * icall.c (ves_icall_System_Reflection_Assembly_get_location): Use
4145         mono_image_get_filename() to get the assembly location.
4146
4147         * icall.c:
4148         * metadata.h: Fix compile warnings
4149
4150 2004-09-01  Zoltan Varga  <vargaz@freemail.hu>
4151
4152         * class.c (class_compute_field_layout): System.Object is blittable.
4153
4154         * marshal.c (mono_marshal_get_native_wrapper): Pass blittable classes
4155         as in/out. Fixes #59909.
4156
4157 2004-09-01  Martin Baulig  <martin@ximian.com>
4158
4159         * metadata.h (MONO_TYPE_ISREFERENCE): Call
4160         mono_metadata_generic_inst_is_valuetype() if we're a generic
4161         instance to check whether our underlying type is a reference type.
4162
4163 2004-09-01  Martin Baulig  <martin@ximian.com>
4164
4165         * metadata.c (mono_type_size): If we're a generic instance, call
4166         mono_class_value_size() for value types.
4167
4168 2004-08-31  Zoltan Varga  <vargaz@freemail.hu>
4169
4170         * marshal.c: Implement more custom marshalling functionality. Fixes
4171         #64915.
4172
4173 Tue Aug 31 17:55:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4174
4175         * mono-debug.c, debug-mono-symfile.c: add some locking love.
4176
4177 2004-08-30  Zoltan Varga  <vargaz@freemail.hu>
4178
4179         * domain-internals.h domain.c: Add a per-domain jump trampoline hash.
4180
4181         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): Rename to ...Internal.
4182
4183         * icall.c: Fix some warnings.
4184
4185         * threads.c (abort_appdomain_thread): Fix unref errors.
4186         (mono_thread_current): Fix THREAD_DEBUG define.
4187
4188 2004-08-29  Zoltan Varga  <vargaz@freemail.hu>
4189
4190         * metadata.h (MONO_TYPE_ISSTRUCT): Fix warning.
4191
4192         * icall.c (ves_icall_System_Reflection_MethodBase_GetMethodFromHandle): New icall.
4193
4194 2004-08-28  Zoltan Varga  <vargaz@freemail.hu>
4195
4196         * marshal.c (mono_marshal_get_native_wrapper): Add support for byref 
4197         string arrays.
4198
4199 2004-08-28  Martin Baulig  <martin@ximian.com>
4200
4201         * metadata.c
4202         (mono_metadata_generic_inst_is_valuetype): New public function.
4203
4204         * metadata.h (MONO_TYPE_ISSTRUCT): Call
4205         mono_metadata_generic_inst_is_valuetype() if we're a generic
4206         instance to check whether our underlying type is a valuetype.
4207
4208 2004-08-26  Zoltan Varga  <vargaz@freemail.hu>
4209
4210         * class.c (mono_ptr_class_get): Fix name of pointer classes. Fixes
4211         #63768.
4212
4213 2004-08-25  Martin Baulig  <martin@ximian.com>
4214
4215         * loader.c (mono_get_method_from_token): Abstract methods can also
4216         be generic and thus have type parameters.
4217
4218         * metadata-internals.h
4219         (MonoDynamicImage): Added `GPtrArray *gen_params'.
4220
4221         * reflection.c (mono_image_get_generic_param_info): Don't create a
4222         metadata row, just add an entry to the `gen_params' array.
4223         (build_compressed_metadata): Sort the `gen_params' array and then
4224         actually create the metadata.
4225
4226 2004-08-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4227
4228         * threadpool.c: remove unneeded 'if' around mono_monitor_enter.
4229
4230 2004-08-25  Zoltan Varga  <vargaz@freemail.hu>
4231
4232         * debug-helpers.c: Handle MONO_TYPE_GENERICINST.
4233
4234 2004-08-24  Martin Baulig  <martin@ximian.com>
4235
4236         * class.cs (mono_class_is_subclass_of): Like an interface, a
4237         generic instance also derives from System.Object.
4238
4239 2004-08-23  Zoltan Varga  <vargaz@freemail.hu>
4240
4241         * metadata.c (mono_metadata_parse_type): Alloc pinned, byref and
4242         custom modifiers to be in any order. Fixes #61990.
4243
4244 2004-08-20  Zoltan Varga  <vargaz@freemail.hu>
4245
4246         * object.c: Register mono_object_new_fast icall.
4247         
4248         * object.c (mono_class_get_allocation_ftn): Return to calling
4249         mono_object_new_fast, since it seems faster to compute the object 
4250         size in unmanaged code than passing it as a parameter.
4251
4252         * object.c (mono_class_get_allocation_ftn): Add marshalbyref case.
4253
4254         * gc-internal.h gc.c: Add mono_gc_out_of_memory () function. Register
4255         this function with Boehm as the oom handler, so we don't have to check
4256         the result of GC_malloc.
4257
4258         * object.c: Remove checks for oom.
4259
4260         * object.h object.c (mono_class_get_allocation_ftn): New function to
4261         return the icall which can be used to allocate an instance of a given
4262         class. 
4263
4264         * object.c: Handle common allocation requests using GC_gcj_fast_malloc.
4265
4266         * class-internals.h: Add 'enabled' field.
4267
4268 2004-08-19  Zoltan Varga  <vargaz@freemail.hu>
4269
4270         * domain.c (mono_init_internal): Call MONO_GC_PRE_INIT ().
4271
4272 2004-08-18  Jambunathan K  <kjambunathan@novell.com>
4273         * tabledefs.h: Corretced PARAM_ATTRIBUTE_OPTIONAL to the right
4274         value 0x0010.
4275
4276 2004-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
4277
4278         * appdomain.c: use the Tls function for appdomain too,
4279         at Zoltan's request. Actually return in mono_context_get
4280
4281         * appdomain.c, profiler.c, threads.c: use __thread
4282
4283 2004-08-18  Zoltan Varga  <vargaz@freemail.hu>
4284
4285         * appdomain.c threads.c: Call GC_CreateThread on windows.
4286
4287         * Makefile.am (libmetadata_la_LIBADD): Avoid linking libmonoos into
4288         multiple libraries since this don't work on windows.
4289
4290 2004-08-18  Martin Baulig  <martin@ximian.com>
4291
4292         * class-internals.h
4293         (MonoMethodNormal): Moved `MonoGenericParam *gen_params' here from
4294         MonoMethodHeader.
4295
4296         * metadata.h (MonoMethodHeader): Moved the `gen_params' field to
4297         MonoMethodNormal since we also need it for abstract and interface
4298         methods.
4299
4300         * reflection.c
4301         (build_compressed_metadata): Sort the GenericParam table.
4302         (mono_image_create_token): Added `gboolean create_methodspec'
4303         argument; this is false when generating a MethodImpl token.
4304         (reflection_methodbuilder_to_mono_method): Abstract and interface
4305         methods may also have generic parameters.
4306
4307 2004-08-17 Ben Maurer  <bmaurer@users.sourceforge.net>
4308
4309         * appdomain.c: thread local alloc
4310
4311 2004-08-17  Martin Baulig  <martin@ximian.com>
4312
4313         * appdomain.c: Bumped MONO_CORLIB_VERSION to 24.
4314
4315         * icall.c
4316         (ves_icall_System_MonoType_getFullName): Added `gboolean full_name'
4317         argument.
4318
4319         * class.c (mono_type_get_full_name): New public function.
4320         (mono_type_get_name): Don't include the type arguments.
4321
4322 2004-08-16  Zoltan Varga  <vargaz@freemail.hu>
4323
4324         * Makefile.am: Build static versions of libmetadata and libmonoruntime
4325         for inclusion into the mono executable.
4326
4327 2004-08-16  Martin Baulig  <martin@ximian.com>
4328
4329         * metadata.c (do_mono_metadata_parse_generic_inst): Store the
4330         MonoGenericInst, not the MonoType in the `generic_inst_cache'.
4331
4332 2004-08-14  Martin Baulig  <martin@ximian.com>
4333
4334         * class.c (dup_type): Also copy the `byref' field.
4335
4336 2004-08-15  Zoltan Varga  <vargaz@freemail.hu>
4337
4338         * reflection.c (create_dynamic_mono_image): Revert the last change 
4339         since it breaks bootstrap.
4340
4341 2004-08-14  Zoltan Varga  <vargaz@freemail.hu>
4342
4343         * reflection.c (create_dynamic_mono_image): Set ref_count to 1.
4344
4345         * image.c (mono_image_close): Dynamic images are GC_MALLOCed, so do
4346         not free them with g_free.
4347
4348 2004-08-11  Martin Baulig  <martin@ximian.com>
4349
4350         * reflection.c (mono_reflection_setup_internal_class): Also call
4351         mono_class_setup_mono_type() if we already have a `tb->type.type'.
4352
4353 2004-08-09  Sebastien Pouliot  <sebastien@ximian.com>
4354
4355         * appdomain.c: Fix ves_icall_System_AppDomain_getDomainByID when 
4356         called during default (first) AppDomain creation. Keep track of
4357         Evidence when loading assemblies.
4358
4359 Mon Aug 9 14:41:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4360
4361         * opcodes.c, opcodes.h: reduce runtime relocations.
4362
4363 Mon Aug 9 13:30:53 CEST 2004 Paolo Molaro <lupus@ximian.com>
4364
4365         * culture-info.h, locales.c: fixes and chages to sue the new
4366         optimized format of the locale data.
4367         * culture-info-tables.h: regenerated.
4368
4369 2004-08-06  Geoff Norton <gnorton@customerdna.com>
4370         
4371         * filewatcher.c: If HAVE_KQUEUE return mode 3 to use the new kqueue watcher
4372
4373 2004-08-05  Sebastien Pouliot  <sebastien@ximian.com>
4374
4375         * appdomain.c: Bumped MONO_CORLIB_VERSION to 23. Added new icall
4376         ves_icall_System_AppDomain_getDomainByID to get an AppDomain by Id.
4377         * domain-internals.h: icall declaration.
4378         * icall.c: icall registration.
4379         * object-internals.h: New fields in MonoAssembly for CAS.
4380
4381 2004-08-05  Duncan Mak  <duncan@ximian.com>
4382
4383         * verify.c: Renamed CEE_STELEM to CEE_STELEM_ANY and CEE_LDELEM to
4384         CEE_LDELEM_ANY.
4385
4386 Thu Aug 5 17:11:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4387
4388         * reflection.c: fix to deal with object[] arrays in custom ctors
4389         (bug #62550).
4390
4391 2004-08-05  Martin Baulig  <martin@ximian.com>
4392
4393         * class.c (mono_class_array_element_size): Added support for
4394         generic instances and correctly handle "recursive" types.
4395
4396 2004-08-05  Zoltan Varga  <vargaz@freemail.hu>
4397
4398         * assembly.c: Fix warnings.
4399
4400 2004-08-04  Martin Baulig  <martin@ximian.com>
4401
4402         * class.c
4403         (mono_type_get_name_recurse): Added `gboolean include_arity'
4404         argument specifying whether or not we should include the generic
4405         arity in the type name.
4406         (_mono_type_get_name): New static function.
4407         (mono_class_setup_vtable): If we're a generic instance, don't
4408         include the generic arity in the names of explicit method
4409         implementations.        
4410
4411 2004-08-03  Martin Baulig  <martin@ximian.com>
4412
4413         * class.c (mono_type_get_name_recurse): Enclose the generic type
4414         arguments in `<', '>'.
4415
4416 Tue Aug 3 17:54:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4417
4418         * gc.c: make GC warning messages use the trace API, they are just
4419         noise to most of the users.
4420
4421 2004-08-03  Martin Baulig  <martin@ximian.com>
4422
4423         * debug-mono-symfile.c (read_string): Correctly read the string.
4424
4425 2004-07-30  Zoltan Varga  <vargaz@freemail.hu>
4426
4427         * marshal.c (signature_dup_add_this): Fix bug in previous patch.
4428         
4429         * marshal.c (mono_marshal_get_icall_wrapper): Add support for vararg
4430         icalls.
4431         (mono_marshal_get_runtime_invoke): Correctly handle valuetype methods.
4432
4433 2004-07-30  Martin Baulig  <martin@ximian.com>
4434
4435         * debug-mono-symfile.c, mono-debug.c, mono-debug-debugger.c:
4436         Reflect latest symbol writer changes.   
4437
4438 Fri Jul 30 16:49:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4439
4440         * object.c: always create an object if null is passed
4441         to Invoke() where a valuetype is expected.
4442
4443 2004-07-29  Bernie Solomon  <bernard@ugsolutions.com>
4444
4445         * marshal.c (mono_marshal_init): make managed
4446         signatures match native ones better for 64bits.
4447
4448 2004-07-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4449
4450         * appdomain.c: hack to build correctly the private bin path on windows.
4451         Fixes bug #61991.
4452
4453 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
4454
4455         * assembly.c: Load mscorlib from the correct framework directory
4456           (mono/<version>/mscorlib.dll).
4457         * appdomain.h: Added prototypes for new functions.
4458         * internals.h: Added some prototypes.
4459         * domain.c: When initializing the runtime, get from the executable and
4460           the configuration files the runtime version that the app supports.
4461           Added support methods for reading app.exe.config. Added list of versions
4462           supported by the JIT. Added two new methods: mono_init_from_assembly,
4463           which initializes the runtime and determines the required version from
4464           the provided exe file, and mono_init_version, which initializes
4465           the runtime using the provided version.
4466         * icall.c: Get machine.config from version-specific directory.
4467         * reflection.c: When generating an image, embed the version number
4468           of the current runtime.
4469
4470 2004-07-28  Dick Porter  <dick@ximian.com>
4471
4472         * socket-io.c
4473         (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal): Check
4474         returned sockaddr size before creating the remote address object.
4475         Patch by Nick Vaughan (dev@6wardlaw.freeserve.co.uk), fixes bug
4476         61608.
4477
4478 2004-07-28  Dick Porter  <dick@ximian.com>
4479
4480         * locales.c (string_invariant_compare_char): Fix invariant char
4481         compares between upper and lower cases.  Fixes bug 61458.
4482
4483 2004-07-27  Ben Maurer  <bmaurer@ximain.com>
4484         
4485         * marshal.c: actually cache stelem.ref wrappers.
4486         
4487 Tue Jul 27 16:56:55 CEST 2004 Paolo Molaro <lupus@ximian.com>
4488
4489         * class.c, image.c, loader.c, cil-coff.h: lazily mmap the image 
4490         sections and remove the mono_cli_rva_map () function.
4491
4492 Tue Jul 27 15:58:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4493
4494         * debug-mono-symfile.c: fix one more endianess issue, from a patch
4495         by Geoff Norton (<gnorton@customerdna.com>).
4496
4497 Tue Jul 27 15:47:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
4498
4499         * class.c: fix class loads for pointer types (typeof(int) !=
4500         typeof(int*)).
4501
4502 2004-07-27  Martin Baulig  <martin@ximian.com>
4503
4504         * debug-mono-symfile.c (mono_debug_open_mono_symbol_file): Support
4505         reading the debugging information from an external ".mdb" file.
4506
4507 2004-07-24  Martin Baulig  <martin@ximian.com>
4508
4509         * reflection.c (mono_image_get_type_info): Only write a class
4510         layout entry if we actually have a size or a packing size.
4511
4512 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4513
4514         * reflection.c (type_get_fully_qualified_name): 
4515         insert cast to get type checking of ?: with non-gcc compilers
4516
4517 2004-07-21  Bernie Solomon  <bernard@ugsolutions.com>
4518
4519         * rand.c: use g_getenv for both lookups of
4520         MONO_EGD_SOCKET
4521
4522 2004-07-17  Martin Baulig  <martin@ximian.com>
4523
4524         * reflection.c (mono_reflection_bind_generic_method_parameters):
4525         Set `gmethod->reflection_info'.
4526
4527 2004-07-17  Martin Baulig  <martin@ximian.com>
4528
4529         * class.c (mono_class_create_from_typedef): Insert the newly
4530         created class into the hash table before computing the interfaces
4531         since we could be called recursively.
4532
4533 2004-07-16  Ben Maurer  <bmaurer@ximain.com>
4534
4535         * marshal.[ch] (mono_marshal_get_stelemref): a new wrapper
4536         function to implement stelem.ref in managed code
4537         * class-internals.h, debug-helpers.c: a new wrapper type
4538         for the above.
4539
4540 Wed Jul 14 19:26:05 CEST 2004 Paolo Molaro <lupus@ximian.com>
4541
4542         * gc.c: allow GC handles to work even when no GC is compiled in.
4543         Fix part of bug #61134 (GetAddrOfPinnedObject).
4544
4545 2004-07-13  Peter Williams  <peter@newton.cx>
4546  
4547         * process.c (complete_path): Make sure we don't attempt to execute
4548         directories.
4549  
4550 2004-07-12  Geoff Norton <gnorton@customerdna.com>
4551
4552         * DateTime.cs: Patch for bug #61112.  Our DateTime wasn't roundtripping over timezone
4553           boundaries properly.  This patch checkes ToLocalTime() to see if we're tripping over a boundary
4554           and will add/subtract the hour if needed
4555
4556 2004-07-12  Martin Baulig  <martin@ximian.com>
4557
4558         * reflection.c (mono_field_get_object): If we have
4559         `field->generic_info', take the attributes from
4560         `field->generic_info->generic_type'.    
4561
4562 2004-07-12  Martin Baulig  <martin@ximian.com>
4563
4564         * mono-debug.c (mono_debug_init): Don't take a `MonoDomain *'.
4565         This function must be called before initializing the runtime.
4566         (mono_debug_init_1): New function; call this after initializing
4567         the runtime, but before loading the assembly.  It tells the
4568         debugger to load corlib and the builtin types.
4569
4570         * mono-debug-debugger.c: Did some larger changes in the debugging
4571         code; support recursive class declarations, make sure we actually
4572         add all classes.
4573
4574 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4575
4576         * debug-helpers.c: undo my previous patch and fixed the real issue in
4577         ../mini/exceptions-x86.c
4578
4579 2004-07-11 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4580
4581         * debug-helpers.c: prevent SIGSEGV. It happened running xsp on monodoc
4582         when no HOME env. variable was set and a NullRef was thrown in a .cctor
4583         called from other .cctors.
4584
4585 2004-07-09  Miguel de Icaza  <miguel@ximian.com>
4586
4587         * loader.c: Removed the mono_loader_wine_init hack now that we are
4588         doing a managed version of Windows.Forms.
4589
4590 2004-07-09  Ben Maurer  <bmaurer@ximian.com>
4591
4592         * domain.c, gc.c, marshal.c, mono-debug-debugger.c,
4593         threadpool.c, threads.c: remove static data from rootset.
4594
4595 2004-07-09  Dick Porter  <dick@ximian.com>
4596
4597         * locales.c (ves_icall_System_String_InternalReplace_Str_Comp):
4598         Don't do any more processing if the matched length was 0.  It was
4599         increasing the size of the string before.  Fixes bug 61167.
4600
4601 2004-07-09  Dick Porter  <dick@ximian.com>
4602
4603         * socket-io.h:
4604         * socket-io.c
4605         (ves_icall_System_Net_Sockets_Socket_GetSocketOption_obj_internal):
4606         Add support for SO_PEERCRED if its available.
4607
4608 2004-07-09  Peter Bartok <pbartok@novell.com>
4609         * loader.c: winelib.exe.so error message is now only displayed if
4610         MONO_DEBUG is set. To help us avoid questions when people are trying
4611         out the new Managed.Windows.Forms.
4612
4613 2004-07-08  Zoltan Varga  <vargaz@freemail.hu>
4614
4615         * class-internals.h debug-helpers.c marshal.c: Add new wrapper types 
4616         for isinst and castclass wrappers.
4617
4618         * class-internals.h icall.c: Move registration and lookup of JIT icalls
4619         to libmetadata from the JIT, so they could be used by the marshalling
4620         code and the interpreter.
4621
4622         * marshal.c: Register marshalling related JIT icalls here instead of
4623         in mini.c. Use CEE_MONO_ICALL instead of the family of 
4624         CEE_MONO_PROC<x> opcodes to call marshalling functions.
4625
4626         * metadata.h: Remove unneeded marshalling conversions.
4627
4628         * opcodes.c: Update for new opcodes.
4629         
4630 2004-07-08  Martin Baulig  <martin@ximian.com>
4631
4632         * mono-debug.c: Check for `handle->symfile' being non-NULL everywhere.
4633         (mono_debug_get_domain_data): Make this function static.
4634
4635 Wed Jul 7 12:32:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4636
4637         * gc.c, object.h: add nice GC handle API for embedders.
4638
4639 2004-07-06  Ben Maurer  <bmaurer@ximian.com>
4640
4641         * reflection.c: more changes for the new api
4642
4643         * object.c: When we reflect on a field w/ a constant value, it
4644         will not have a memory location, so we must access metadata. Also,
4645         allow easier reading of strings so that we can read them from
4646         the constant data.
4647
4648         * class.c (mono_class_layout_fields): no need for literal fields here.
4649
4650         * class-internals.h: api changes for const fields
4651
4652         * icall.c (ves_icall_get_enum_info): use new apis for const fields
4653
4654 2004-07-06  Martin Baulig  <martin@ximian.com>
4655
4656         * mono-debug.h: Increment version number to 44.
4657
4658         * mono-debug.c (mono_debug_add_wrapper): The second argument is
4659         now a gpointer, rewrote this whole method.
4660
4661         * mono-debug-debugger.c (mono_debugger_add_wrapper): New
4662         function.  Add information about the wrapper in a new "misc table".
4663
4664         * mono-debug-debugger.h (MonoDebuggerSymbolTable): Added fields
4665         for the new misc table.
4666
4667 2004-07-05  Zoltan Varga  <vargaz@freemail.hu>
4668
4669         * metadata-internals.h image.c: Add a cache for helper signatures.
4670
4671         * monosn.c: Applied patch from "grompf" (grompf@sublimeintervention.com). Fix compilation under OSX.
4672
4673 2004-07-03  Zoltan Varga  <vargaz@freemail.hu>
4674
4675         * marshal.c (mono_marshal_get_managed_wrapper): Handle returning
4676         delegates from a delegate. Fixes #61033.
4677         
4678         * marshal.c: Fix managed->native stringbuilder marshalling. Implement
4679         marshalling of stringbuilder arrays. Fixes #59900.
4680
4681 2004-07-02  Zoltan Varga  <vargaz@freemail.hu>
4682
4683         * icall.c: Add EnumBuilder:setup_enum_type icall.
4684
4685 2004-06-30  Ben Maurer  <bmaurer@ximian.com>
4686
4687         * icall.c: Added a new icall for the property version of
4688         OffsetOfStringData.
4689
4690 2004-06-30  Zoltan Varga  <vargaz@freemail.hu>
4691
4692         * class-internals.h (MonoVTable): Make max_interface_id a guint32 so
4693         it has a constant size across platforms.
4694
4695         * marshal.c (mono_delegate_end_invoke): Avoid crash when there is no
4696         stack trace.
4697
4698 2004-06-29  Martin Baulig  <martin@ximian.com>
4699
4700         * mono-debug.c (mono_debug_add_method): Protect the whole function
4701         in mono_debugger_lock(), not just parts of it.
4702
4703 Fri Jun 25 21:36:26 CEST 2004 Paolo Molaro <lupus@ximian.com>
4704
4705         * reflection.c: make sure padding bytes in heaps are zeroed.
4706
4707 2004-06-24  David Waite  <mass@akuma.org>
4708
4709         * appdomain.c, class.c, domain.c, file-io.c, gc.c, icall.c,
4710         image.c, loader.c, locales.c, marshal.c, metadata.c,
4711         mono-debug.[ch], object.c, reflection.c, security.c, socket-io.c,
4712         string-icalls.c, threads.c: change to C90-style comments from C99 /
4713         C++ -style
4714
4715 2004-06-24  Dick Porter  <dick@ximian.com>
4716
4717         * threads.c
4718         (ves_icall_System_Threading_Mutex_CreateMutex_internal): Correctly
4719         return createdNew.  Fixes bug 60412.
4720
4721         * threads-types.h: 
4722         * icall.c: Add createdNew parameter to CreateMutex icall
4723
4724 Thu Jun 24 16:06:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4725
4726         * reflection.c, object-internals.h: save default value in params.
4727
4728 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4729
4730         * appdomain.c: for paths in PrivateBinPath that are absolute, there's
4731         no need to build a new path combining that with the application base.
4732         Fixes bug #60442.
4733
4734 Wed Jun 23 18:36:58 CEST 2004 Paolo Molaro <lupus@ximian.com>
4735
4736         * reflection.c: fixed minor standard compliance issues.
4737
4738 Wed Jun 23 17:59:29 CEST 2004 Paolo Molaro <lupus@ximian.com>
4739
4740         * reflection.c: fixed issue with encoding some custom attributes
4741         (arrays in properties and fields, bug #60411).
4742
4743 2004-06-23 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4744
4745         * reflection.c: fix start address when copying the public key token.
4746
4747 2004-06-23  Martin Baulig  <martin@ximian.com>
4748
4749         * mono-debug-debugger.c (mono_debugger_unhandled_exception): Store
4750         the `exc' object in a static object to put it into the GC's root set.
4751
4752 Wed Jun 23 15:37:31 CEST 2004 Paolo Molaro <lupus@ximian.com>
4753
4754         * reflection.c: make mono_reflection_setup_internal_class ()
4755         callable a second time to setup a new parent class.
4756
4757 2004-06-23  Dick Porter  <dick@ximian.com>
4758
4759         * threads.c: Check for WAIT_IO_COMPLETION return values.
4760
4761 2004-06-22  Sebastien Pouliot  <sebastien@ximian.com>
4762
4763         * appdomain.c: Removed the g_free on the public key token. Now copy 
4764         the pk token string into the MonoAssemblyName buffer using g_strlcpy.
4765         * assembly.c: Added public key token string value when loading 
4766         assemblies. Fix bug #60439.
4767         * icall.c: Added missing informations (like public key) in 
4768         GetReferencedAssemblies. Fix #60519.
4769         * image.h: Changed definition for public key token from const char*
4770         public_tok_value to guchar public_key_token [17];
4771         * reflection.c: Updated for changes to public key token.
4772
4773 2004-06-22  Lluis Sanchez Gual
4774
4775         * icall.c: In ves_icall_InternalExecute, when setting a filed, also look 
4776         for the field in base classes.
4777
4778 Tue Jun 22 16:48:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4779
4780         * mono-debug.h, mono-debug-debugger.h, debug-mono-symfile.h:
4781         mark headers as not supported, they are installed only for use by the
4782         debugger.
4783
4784 Tue Jun 22 16:32:03 CEST 2004 Paolo Molaro <lupus@ximian.com>
4785
4786         * *.c, *.h: avoid namespace pollution in public headers.
4787
4788 2004-06-21  Martin Baulig  <martin@ximian.com>
4789
4790         * exception.c (mono_get_exception_security): It's in
4791         "System.Security", not in "System".
4792
4793         * mono-debug-debugger.c (mono_debugger_add_builtin_types): Add all
4794         the exception classes.
4795
4796 2004-06-21  Martin Baulig  <martin@ximian.com>
4797
4798         * mono-debug-debugger.c (mono_debugger_unhandled_exception):
4799         Protect the exception object from being finalized.
4800
4801 2004-06-21  Martin Baulig  <martin@ximian.com>
4802
4803         * mono-debug-debugger.h (mono_debugger_unhandled_exception): New
4804         public function.
4805
4806 2004-06-21  Sebastien Pouliot  <sebastien@ximian.com>
4807
4808         * reflection.c: Load the assembly in mono_reflection_type_from_name,
4809         if it was not loaded before. Fix parts of #60439.
4810
4811 Mon Jun 21 16:04:43 CEST 2004 Paolo Molaro <lupus@ximian.com>
4812
4813         * marshal.c, icall.c, object.c, image.c: fix the runtime_invoke ()
4814         code that was broken since Ben's change: wrappers are now
4815         dependent on the method signature only again.
4816
4817 2004-06-21  Martin Baulig  <martin@ximian.com>
4818
4819         * mono-debug-debugger.c (write_class): Cleaned this up a bit and
4820         added interface support.
4821
4822 2004-06-21  Martin Baulig  <martin@ximian.com>
4823
4824         * class.c (mono_vtable_get_static_field_data): New public method.
4825
4826 2004-06-20  Atsushi Enomoto  <atsushi@ximian.com>
4827
4828         * filewatcher.c : Windows build fix to be compliant with API changes.
4829
4830 Sat Jun 19 19:04:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4831
4832         * class.h, class.c: more accessors.
4833         * metadata.h, metadata.c: prepare for hiding MonoType and
4834         MonoMethodSignature: people should use the accessors from now on
4835         outside of the tree.
4836
4837 Sat Jun 19 17:56:50 CEST 2004 Paolo Molaro <lupus@ximian.com>
4838
4839         * *.c, *.h: more API cleanups.
4840
4841 2004-06-18  Jackson Harper  <jackson@ximian.com>
4842
4843         * assembly.c: Trace loading assemblies.
4844         * loader.c: Trace loading native libraries.
4845         * mono-config.c: Trace loading config files.
4846         
4847 2004-06-18  Dick Porter  <dick@ximian.com>
4848
4849         * locales.c: Tell ICU the lengths of strings, it can cope with
4850         embedded \0 then.  Fixes bug 59274, and doesn't break bug 55822.
4851
4852 Fri Jun 18 11:59:57 CEST 2004 Paolo Molaro <lupus@ximian.com>
4853
4854         * image.c: swapped name/filename;
4855
4856 2004-06-18  Martin Baulig  <martin@ximian.com>
4857
4858         * mono-debug-debugger.c (write_class): Write the parent class at
4859         the end of the header.
4860
4861 Thu Jun 17 16:50:44 CEST 2004 Paolo Molaro <lupus@ximian.com>
4862
4863         * *.c, *.h, Makefile.am: more API cleanups and bugfixes.
4864
4865 2004-06-17  Raja R Harinath  <rharinath@novell.com>
4866
4867         * Makefile.am (PLATFORM_LIB): New.  Possibly refer to ../os/libmonoos.la.
4868         (bundle_obj): New conditional define.
4869         (BUILT_SOURCES): Remove.
4870         ($(bundle_srcs)): Make parallel-make safe.
4871         (libmonoruntime_la_LIBADD): Make unconditional.
4872         (libmetadata_la_LIBADD): Make unconditional.  Refer to $(bundle_obj).
4873         (libmetadata_la_SOURCES): Don't refer to $(bundle_srcs).
4874
4875 2004-06-17  Atsushi Enomoto  <atsushi@ximian.com>
4876
4877         * culture-info-tables.h: It was inconsistent with the latest
4878           supp info files.
4879
4880 2004-06-17  Zoltan Varga  <vargaz@freemail.hu>
4881
4882         * assembly.c (mono_assembly_open): Fix crash when the assembly can't
4883         be loaded.
4884
4885         * threads.c (ves_icall_System_Threading_Thread_Resume): Fix compilation
4886         with gcc 2.95.
4887
4888 Wed Jun 16 18:23:45 CEST 2004 Paolo Molaro <lupus@ximian.com>
4889
4890         * threads.h, icall.c, object.c, threadpool.c, threads-types.h:
4891         cleaned up public header threads.h.
4892
4893 Wed Jun 16 18:11:41 CEST 2004 Paolo Molaro <lupus@ximian.com>
4894
4895         * Makefile.am, *.c, *.h: more API cleanups.
4896
4897 Wed Jun 16 14:33:22 CEST 2004 Paolo Molaro <lupus@ximian.com>
4898
4899         * Makefile.am: removed monosn from compilation.
4900         * appdomain.c, assembly.c, assembly.h, blob.h, class.c,
4901         debug-helpers.c, debug-mono-symfile.c, domain.c, icall.c,
4902         image.c, image.h, loader.c, marshal.c, metadata-internals.h,
4903         metadata.c, metadata.h, mono-config.c, mono-debug-debugger.c,
4904         mono-debug.c, object.c, opcodes.c, opcodes.h, pedump.c, process.c,
4905         reflection.c, reflection.h, verify.c: more API cleanups and fixes.
4906
4907 2004-06-15  Jackson Harper  <jackson@ximian.com>
4908
4909         * assembly.c: Make locales lower case when searching the GAC for
4910         assemblies. gacutil will always make locales lowercase when
4911         installing so this effectively makes them case insensitive.
4912         
4913 2004-06-15  Lluis Sanchez Gual  <lluis@ximian.com>
4914
4915         * locales.c, threadpool.c: use mono_monitor_enter instead of mono_monitor_try_enter.
4916         * monitor.c: New method mono_monitor_try_enter_internal, which takes a new
4917           parameter which allows to choose whether the wait can be interrupted or 
4918           not. Also added the method mono_monitor_enter(), which locks the monitor
4919           using an infinite wait and without allowing interruption.
4920           In the Monitor.Enter and Wait icalls, retry the lock if the wait is
4921           interrupted.
4922         * object.h: Added new fields in MonoThread. suspend_event holds the event
4923           used to susped/resume the thread. synch_lock is the lock object to use for
4924           modifying the thread state.
4925         * threads.c: Use the new synch_lock object for locking, instead of "this",
4926           which can generate deadlocks.
4927           Moved thread state change in Thread.Sleep and Thread.Join from managed
4928           to unmanaged code. This avoids a deadlock when the thread was suspended
4929           just after acquiring the thread lock.
4930           In general, use mono_monitor_enter instead of mono_monitor_try_enter.
4931           Implemented Thread.Suspend using an event instead of ThreadSuspend,
4932           which is not fully implemented in the io-layer.
4933         * socket-io.c: Only try IPv6 DNS lookup if IPv4 fails.
4934
4935 Tue Jun 15 18:34:21 CEST 2004 Paolo Molaro <lupus@ximian.com>
4936
4937         * Makefile.am, monitor.h, object.h, threadpool.c, threadpool.h,
4938         threads-types.h: more API cleanups.
4939
4940 Tue Jun 15 16:40:19 CEST 2004 Paolo Molaro <lupus@ximian.com>
4941
4942         * domain-internals.h, Makefile.am, appdomain.c, appdomain.h,
4943         domain.c, gc.c, icall.c, mono-debug.c, object.c, reflection.c,
4944         threadpool.c, threads.c: first pass at the exported API cleanup.
4945
4946 Tue Jun 15 15:29:47 CEST 2004 Paolo Molaro <lupus@ximian.com>
4947
4948         * icall.c: fix signatures of some VolatileRead and VolatileWrite icalls.
4949
4950 2004-06-15 Gonzalo Paniagua Javier <gonzalo@ximian.com>
4951
4952         * icall.c: added internalGetHome.
4953
4954 2004-06-14  Dick Porter  <dick@ximian.com>
4955
4956         * file-io.c (ves_icall_System_IO_MonoIO_FindFirstFile): It was
4957         possible to return successfully when '.' or '..' were the only
4958         entries in a directory, but were skipped.  The MonoIOStat was not
4959         filled in in that case.  Now return ERROR_NO_MORE_FILES instead.
4960         Fixes bug 59574.
4961
4962 Mon Jun 14 00:27:15 CEST 2004 Paolo Molaro <lupus@ximian.com>
4963
4964         * reflection.c: make binaries run on .Net 1.1 by default.
4965
4966 Sun Jun 13 18:22:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
4967
4968         * threadpool.c, threadpool.h: use the correct return type in SetMinThreads ().
4969
4970 Sun Jun 13 16:44:39 CEST 2004 Paolo Molaro <lupus@ximian.com>
4971
4972         * marshal.c: keep track of struct size with explicit layout
4973         (bug #59979).
4974
4975 2004-06-12  Martin Baulig  <martin@ximian.com>
4976
4977         * mono-debug-debugger.c: Comment out a debugging g_message().
4978
4979 Sat Jun 12 14:15:02 CEST 2004 Paolo Molaro <lupus@ximian.com>
4980
4981         * reflection.c, reflection.h: do not free custom attrs that are cached.
4982         * icall.c: use braces to make code clearer.
4983
4984 2004-06-11  Martin Baulig  <martin@ximian.com>
4985
4986         * class.h (MonoInflatedField): New type.
4987         (MonoClassField): Replaced `MonoType *generic_type' with
4988         `MonoInflatedField *generic_info'.
4989
4990         * icall.c
4991         (ves_icall_MonoField_Mono_GetGenericFieldDefinition): New icall.
4992
4993 2004-06-11  Martin Baulig  <martin@ximian.com>
4994
4995         * reflection.c (mono_image_create_method_token): Correctly encode
4996         varargs methods.
4997
4998 2004-06-11  Martin Baulig  <martin@ximian.com>
4999
5000         * metadata.c (mono_metadata_parse_method_signature): When parsing
5001         a MethodDef which has VarArgs, also set sentinelpos if we don't
5002         have any parameters.
5003
5004 2004-06-11  Martin Baulig  <martin@ximian.com>
5005
5006         * verify.c (mono_method_verify): In CEE_CALL, use
5007         mono_method_get_signature() to get the method's signature, unless
5008         we're a PInvoke method.
5009
5010 2004-06-10  Jackson Harper  <jackson@ximian.com>
5011
5012         * assembly.c: Use <path>/lib/mono/gac for the extra paths
5013         lookup. Rename MONO_GAC_PATH to MONO_GAC_PREFIX, this is a more
5014         logical name as the supplied path is just a prefix to the gac not
5015         the direct path to it.
5016         
5017 Thu Jun 10 20:10:16 CEST 2004 Paolo Molaro <lupus@ximian.com>
5018
5019         * reflection.c: make the token for a created method match
5020         the token of the MethodBuilder it was created from
5021         (IKVM requires this behaviour now).
5022
5023 Thu Jun 10 16:02:27 CEST 2004 Paolo Molaro <lupus@ximian.com>
5024
5025         * image.c, image.h, appdomain.c, assembly.c, loader.c, metadata.c,
5026         reflection.c, socket-io.c: leak fixes.
5027
5028 Wed Jun 9 18:23:59 CEST 2004 Paolo Molaro <lupus@ximian.com>
5029
5030         * icall.c: handle sentinel pos in vararg methods in position different
5031         from 0.
5032
5033 2004-06-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5034
5035         * culture-info-tables.h: freshly generated.
5036
5037 2004-06-09  Martin Baulig  <martin@ximian.com>
5038
5039         * loader.c (mono_get_method_constrained): Call `mono_class_init
5040         (constrained_class)'.   
5041
5042 2004-06-08  Gert Driesen <drieseng@users.sourceforge.net>
5043
5044         * icall.c (ves_icall_MonoType_GetEvent): Handle events without
5045         any methods. Fixes #59629.
5046
5047 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5048
5049         * culture-info-tables.h: reflecting locale-builder updates.
5050
5051 2004-06-08  Dick Porter  <dick@ximian.com>
5052
5053         * object.h:
5054         * locales.c: Fixed compile warnings, including a real bug in
5055         CompareInfo_internal_compare.
5056         
5057 2004-06-08  Dick Porter  <dick@ximian.com>
5058
5059         * locales.c
5060         (ves_icall_System_Globalization_CompareInfo_internal_index):
5061         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5062         Double-check the resuls of usearches, because ICU currently
5063         ignores most of the collator settings here.  Fixes bug 59720.
5064         
5065 2004-06-08  Dick Porter  <dick@ximian.com>
5066
5067         * locales.c
5068         (ves_icall_System_Globalization_CompareInfo_internal_index_char):
5069         Fix memory leak and segfault-causing typo.  No idea how this one
5070         lasted so long without being noticed.
5071
5072 2004-06-09  Zoltan Varga  <vargaz@freemail.hu>
5073
5074         * icall.c (ves_icall_Type_GetEvents_internal): Handle events without
5075         any methods. Fixes #59629.
5076
5077 2004-06-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5078
5079         * assembly.c:
5080         (mono_assembly_load): search_loaded -> mono_assembly_loaded (we didn't
5081         own the critical section before). Removed dead code (that's done
5082         in the preload hook).
5083
5084         (mono_assembly_load_with_partial_name): call the preload hook.
5085
5086 2004-06-08  Martin Baulig  <martin@ximian.com>
5087
5088         * metadata.c (mono_metadata_signature_alloc): Default
5089         `sentinelpos' to -1.
5090
5091         * reflection.c (mono_image_get_array_token): Likewise.
5092
5093 2004-06-08  Martin Baulig  <martin@ximian.com>
5094
5095         * icall.c (ves_icall_ModuleBuilder_getMethodToken): New icall.
5096
5097         * metadata.c (mono_metadata_parse_method_signature): When parsing
5098         a MethodDef which has VarArgs, set sentinelpos.
5099
5100         * metadata.h (MonoMethodSignature): Make `sentinalpos' a signed
5101         `gint16' since we're using -1 for non-varargs methods.
5102
5103         * reflection.c
5104         (ReflectionMethodBuilder): Added `MonoArray *opt_types'.
5105         (method_encode_signature): Added varargs support.
5106         (method_builder_encode_signature): Likewise.
5107         (mono_image_get_varargs_method_token): New static method.
5108         (mono_image_create_method_token): New public method; this is
5109         called via an icall instead of mono_image_create_token() when
5110         calling a varargs method.       
5111
5112 2004-06-08  Lluis Sanchez Gual  <lluis@ximian.com>
5113
5114         * locales.c: Fixed memory leak in Char.ToLower/ToUpper.
5115
5116 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5117
5118         * culture-info-tables.h : Reflecting the latest locale-builder that
5119           fixed empty array representation ({} to {0}).
5120
5121 2004-06-07  Jackson Harper  <jackson@ximian.com>
5122
5123         * assembly.c: It should be <MONO_GAC_PATH>/lib/mono/gac when
5124         looking up extra gac paths. This allows MONO_GAC_PATH to act
5125         exactly like a prefix.
5126         
5127 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5128
5129         * reflection.c (mono_reflection_type_from_name): Make a copy of the
5130         type name before modifying it. Fixes #59405.
5131
5132 2004-06-08  Atsushi Enomoto  <atsushi@ximian.com>
5133
5134         * culture-info.h: added fields for "all datetime patterns".
5135         * locales.c: (  ves_icall_System_Globalization_CultureInfo
5136           _construct_datetime_format ()): fill xxx_patterns fields.
5137         * object.h: added fields for "all datetime patterns" to
5138           MonoDateTimeFormatInfo.
5139         * culture-info-tables.h: reflecting locale-builder updates.
5140
5141 2004-06-08  Zoltan Varga  <vargaz@freemail.hu>
5142
5143         * icall.c (ves_icall_Type_GetEvents_internal): Handle the case when
5144         the event has no add and remove methods. Fixes #59629.
5145
5146 2004-06-05  Sebastien Pouliot  <sebastien@ximian.com>
5147
5148         * object.c: Fixed possible integer overflow when allocating large
5149         strings.
5150
5151 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5152
5153         * culture-info-tables.h: reflecting locale-builder updates.
5154
5155 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
5156
5157         * culture-info-tables.h: reflecting locale-builder updates.
5158
5159 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
5160
5161         * culture-info-tables.h: reflecting locale-builder updates.
5162
5163 2004-06-03  Lluis Sanchez Gual  <lluis@ximian.com>
5164
5165         * threads.c: Made Thread.Sleep abortable.
5166
5167 2004-06-02  Martin Baulig  <martin@ximian.com>
5168
5169         * mono-debug.h (MONO_DEBUGGER_VERSION): Bumped version to 41.
5170
5171         * debug-mono-symfile.h: Bumped symbol file version number to 37.
5172
5173 2004-05-31  Zoltan Varga  <vargaz@freemail.hu>
5174
5175         * marshal.c (mono_marshal_get_runtime_invoke): Fix CR/LFs.
5176
5177 2004-05-30  Jackson Harper  <jackson@ximian.com>
5178
5179         * reflection.c: Do not hardcode assembly versions or public key
5180         tokens anymore. All of this except the corlib section was dead
5181         code anyways.
5182         
5183 2004-05-29  Zoltan Varga  <vargaz@freemail.hu>
5184
5185         * object.c (mono_runtime_invoke_array): Automatically create boxed
5186         objects for byref valuetypes if needed. Fixes #59300.
5187         
5188         * object.c (mono_method_return_message_restore): Handle 
5189         MONO_TYPE_OBJECT as well.
5190
5191 2004-05-28  Jackson Harper  <jackson@ximian.com>
5192
5193         * reflection.c: The modified type encoding was causing build
5194         problems. Reverted for now.
5195         
5196 2004-05-28  Jackson Harper  <jackson@ximian.com>
5197
5198         * reflection.c/h: Take an assembly ref so that we dont create
5199         fully qualified names when encoding types in the same assembly as
5200         the custom attribute being emitted.
5201         * appdomain.c: Increment version number.
5202         
5203 2004-05-26  Duncan Mak  <duncan@ximian.com>
5204
5205         * icall.c
5206         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
5207         Set the full version number (major, minor, build, revision).
5208
5209 2004-05-28  Vladimir Vukicevic  <vladimir@pobox.com>
5210
5211         * marshal.c (emit_struct_conv): increment src/dst after blit
5212         (mono_marshal_get_managed_wrapper,
5213         mono_marshal_get_native_wrapper): make sure we have marshalling
5214         info before marshalling params (info computation affects
5215         blittable)
5216
5217         * class.c (class_compute_field_layout): correctly deal with
5218         blittable
5219         (mono_class_layout_fields): Don't do gc_aware_layout for AUTO
5220         value types (as per what windows dows by default)
5221         (mono_class_setup_mono_type): System.ValueType is blittable
5222         (mono_ptr_class_get, mono_fnptr_class_get): Pointer classes are
5223         blittable
5224
5225         * marshal.c (mono_marshal_load_type_info): flag types  as
5226         non-blittable if the native layout doesn't match the managed
5227         layout
5228
5229 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5230
5231         * appdomain.c: don't add stuff in the private search path that is
5232         above the application base. If application base is not set, there's
5233         no private search path.
5234
5235 2004-05-28  Zoltan Varga  <vargaz@freemail.hu>
5236
5237         * marshal.c (mono_marshal_get_managed_wrapper): Add proper support for
5238         byref struct arguments in native->managed marshalling.
5239
5240 2004-05-28      Patrik Torstensson      <totte@hiddenpeaks.com>
5241
5242         * marshal.c (mono_marshal_get_runtime_invoke): correctly
5243         cache methods using signature (special case for methods
5244         that are value type or string class)
5245         
5246         * image.c (mono_image_close): clean up allocated GSList's
5247         in runtime_invoke_cache.
5248
5249 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5250
5251         * mono-config.c: set the correct path for mono_cfg_dir on windows when
5252         there's no MONO_CFG_DIR environment variable defined.
5253
5254 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5255
5256         * threads.c: windows version must be >= 0x0500 to include OpenThread.
5257
5258 2004-05-28  Lluis Sanchez Gual  <lluis@ximian.com>
5259
5260         * threadpool.c: Really wait for 500ms after the async call, even if the wait
5261           is interrumped.
5262         * threads.c: In mono_thread_manage, call OpenThread to ref each handle
5263           before waiting for it, and call CloseHandle after the wait to unref it.
5264           This will make sure that handles are not disposed too early.
5265
5266 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5267
5268         * appdomain.c:
5269         * appdomain.h:
5270         * icall.c: removed
5271         ves_icall_System_AppDomainSetup_InitAppDomainSetup as it's not
5272         needed now.
5273
5274         * object.c: se the application_base only for the domain that runs
5275         Main. Fixes bug #59216,
5276
5277 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5278
5279         * appdomain.c:
5280         * object.c: only the domain in which Main is run have
5281         SetupInformation.ConfigurationFile set, so moved a few lines from
5282         appdomain.c to object.c.
5283
5284 2004-05-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5285
5286         * appdomain.c: we tried to load [name].(dll|exe), but according
5287         to bug #57710, we must also try [culture]/[name].(dll|exe) and
5288         [culture]/[name]/[name](dll|exe). This patch fixes the bug.
5289         There's a test case attached to bug #58922.
5290
5291 2004-05-27  Dick Porter  <dick@ximian.com>
5292
5293         * icall.c:
5294         * file-io.c: Implemented icalls for locking and unlocking regions
5295         in a file.
5296         (ves_icall_System_IO_MonoIO_FindNextFile): FindNextFile() returns
5297         FALSE on error (fixes both compiler warning and real bug.)
5298
5299 2004-05-27  Atsushi Enomoto  <atsushi@ximian.com>
5300
5301         * culture-info-tables.h: reflecting locale-builder updates.
5302
5303           (Added missing ChangeLog entry for 05/26)
5304
5305 2004-05-27  Jackson Harper  <jackson@ximian.com>
5306
5307         * locales.c: Fix some cut and paste errors.
5308         
5309 2004-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5310
5311         * mono-config.c: set the correct path for config. directory on windows.
5312
5313 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5314
5315         * icall.c : Fixed ves_icall_System_DateTime_GetNow() to return utc
5316           on win32.
5317
5318 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5319
5320         * marshal.c (mono_marshal_get_native_wrapper): Free strings returned
5321         from pinvoke functions.
5322         
5323         * marshal.c (mono_ftnptr_to_delegate): Implement this.
5324
5325 2004-05-26  Atsushi Enomoto  <atsushi@ximian.com>
5326
5327         * culture-info-tables.h: reflecting locale-builder updates.
5328
5329 2004-05-26  Zoltan Varga  <vargaz@freemail.hu>
5330
5331         * profiler.c (simple_allocation): Skip icall wrapper methods. Fixes
5332         #59086.
5333
5334 2004-05-26  Sebastien Pouliot  <sebastien@ximian.com>
5335
5336         * appdomain.cs: Bumped MONO_CORLIB_VERSION to 20.
5337         * icall.c: Modified icalls for RNG.
5338         * rand.c|h: Changed RNG interface to allow thread-safe usage under 
5339         Windows (CryptoAPI).
5340
5341 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5342
5343         * locales.c: Fix build.
5344
5345 2004-05-25  Atsushi Enomoto  <atsushi@ximian.com>
5346
5347         * culture-info-tables.h: reflecting locale-builder updates.
5348
5349 2004-05-25  Jackson Harper  <jackson@ximian.com>
5350
5351         * locales.c: When creating the current culture use the $LANGs
5352         specific culture. So DateTimeFormat and NumberFormat entries are created.
5353         
5354 2004-05-25  Zoltan Varga  <vargaz@freemail.hu>
5355
5356         * string-icalls.{h,c} icalls.c: Add new icalls for Strcpy which take
5357         a char array as parameter.
5358
5359 2004-05-24  Lluis Sanchez Gual  <lluis@ximian.com>
5360
5361         * image.c: In mono_image_open(), always use an absolute path name to
5362           look for already loaded images.
5363
5364 2004-05-24  Sebastien Pouliot  <sebastien@ximian.com>
5365
5366         * icall.c: Added define for CSIDL_FLAG_CREATE (0x8000) in case it is
5367         missing in the windows build (like older cygwin include files).
5368
5369 2004-05-23  Sebastien Pouliot  <sebastien@ximian.com>
5370
5371         * icall.c: Fixed check for possible integer overflow in Buffer_
5372         BlockCopy icall. Replaced comments style // by /* */.
5373
5374 2004-05-22  Zoltan Varga  <vargaz@freemail.hu>
5375
5376         * marshal.c (mono_ftnptr_to_delegate): Fix warning.
5377         
5378         * marshal.c (mono_marshal_get_proxy_cancast): Move thread interrupt
5379         check after MONO_VTADDR. Fixes pinvoke2.exe.
5380
5381         * marshal.h marshal.c metadata.h: Add beginnings of support for
5382         ftnptr -> delegate marshalling.
5383
5384 2004-05-21  Zoltan Varga  <vargaz@freemail.hu>
5385
5386         * threads.c (ves_icall_System_Threading_Thread_ResetAbort): Fix compilation on gcc-2.95.
5387         * threads.c: Fix warnings.
5388
5389 2004-05-20  Lluis Sanchez Gual  <lluis@ximian.com>
5390
5391         * appdomain.c, gc.c: Make use of the new WaitForSingleObjectEx.
5392         * icall.c: Registered icalls for Suspend and Resume.
5393         * locales.c: Beware, mono_monitor_try_enter can now be interrupted by
5394           Thread.Abort.
5395         * monitor.c: Use WaitForSingleObjectEx. Added some interruption checkpoints.
5396         * mono-debug-debugger.c: Use WaitForSingleObjectEx et al.
5397         * process.c: Use WaitForSingleObjectEx.
5398         * threadpool.c: Use WaitForSingleObjectEx. Added some interruption 
5399           checkpoints.
5400         * threads.c, threads.h: Make use of new Ex wait methods. Improved
5401           implementation of Thread.Abort and Thread.ResetAbort icalls. Added icalls
5402           for Suspend and Resume. Added new mono_thread_stop, used for stoping
5403           background threads. Added basic support for Abort in Windows.
5404           Start new threads using a managed delegate invoke wrapper. This wrapper
5405           has an interruption checkpoint that is needed since an interruption
5406           can be requested before the thread leaves the unmanaged code that starts 
5407           the thread.
5408         * marshal.c: Added interruption checkpoint after every native call, and
5409           also before managed calls for wrappers called from unmanaged code to
5410           go into managed code.
5411         * object.h: Added new field in MonoThread to keep track of interruption
5412           requests.
5413
5414 2004-05-20  Zoltan Varga  <vargaz@freemail.hu>
5415
5416         * marshal.c: Insert SAVE_LMF and RESTORE_LMF opcodes around native
5417         calls.
5418
5419 2004-05-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5420
5421         * appdomain.c:
5422         * assembly.c:
5423         * gc.c:
5424         * locales.c:
5425         * mono-config.c:
5426         * rand.c: getenv -> g_getenv (windows!)
5427
5428         * process.c: complete_path is also used on non-windows platforms.
5429
5430 2004-05-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5431
5432         * icall.c: new signature for Process_Start.
5433
5434         * process.[ch]: new signature for Process_Start. If we're on windows
5435         and UseShellExecute is false, we have to search for the program by
5436         ourselves if we don't get a full path.
5437
5438 2004-05-18  Zoltan Varga  <vargaz@freemail.hu>
5439
5440         * marshal.c (mono_marshal_get_native_wrapper): Fix up custom 
5441         marshalling and call CleanUpNativeData if needed. Fixes #58646.
5442
5443 2004-05-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5444
5445         * socket-io.c: field value changed for Int32 from 'value' to 'm_value'.
5446         Fixes bug #58373.
5447
5448 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5449
5450         * process.c: use double quotes to quote program name and arguments on
5451         windows. Fixes bug #58575.
5452
5453 2004-05-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5454
5455         * file-io.c: don't return "." and ".." when using windows Find*File.
5456
5457 2003-05-17      Patrik Torstensson <totte@hiddenpeaks.com>
5458
5459         * marshal.c: Don't pass wrappers to message init because method 
5460         addressed used to lookup metadata. part of remoting[2|3] fix.
5461
5462 2004-05-15  Jackson Harper  <jackson@ximian.com>
5463
5464         * assembly.c: Remove user gac and implement MONO_GAC_PATH, this
5465         path is essentially the same as MONO_PATH except that it points to
5466         GACs instead of lib directories.
5467         * loader.h: The user gac is gone so we dont need function to
5468         enable/disable it.
5469         * mono-config.c: user gac option is now gone.
5470         
5471 2004-05-15  Jackson Harper  <jackson@ximian.com>
5472
5473         * culture-info.h: Make defines more consistent, add calendar data
5474         to the culture info table.
5475         * culture-info-tables.h: Add basic calendar data. Basically
5476         everyone gets default gregorian until all the data is
5477         updated.
5478         * locales.c: Use the new consistent defines. Set calendar data for
5479         culture info objects.
5480         * object.h: add a field for calendar data to CultureInfo
5481         
5482 2004-05-14 Ben Maurer  <bmaurer@users.sourceforge.net>
5483
5484         * image.c: image->runtime_invoke_cache is keyed on signatures now.
5485         * marshal.c (mono_mb_emit_calli): new helper to emit a CEE_CALLI with
5486         a signature.
5487         (mono_mb_emit_managed_call, mono_mb_emit_native_call): use the above.
5488         (mono_marshal_get_runtime_invoke): The runtime invoke method now takes
5489         an extra param that is the pointer of the method to invoke. The IL for
5490         the invoke method is no longer specific to the method, but to the
5491         signature of the method. Thus, we can share the same code for multiple
5492         methods. This reduces the number of methods that have to be compiled.
5493
5494 2004-05-14  Zoltan Varga  <vargaz@freemail.hu>
5495
5496         * icall.c (ves_icall_System_Reflection_Assembly_load_with_partial_name): Fix warning.
5497
5498         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
5499
5500         * icall.c: Optimize Buffer.BlockCopy.
5501
5502 2004-05-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5503
5504         * culture-info-tables.h: seems like Spanish and Portuguese cultures had
5505         DateTimeFormatInfo.YearMonthPattern like "MMMM' yyyy" (note the single
5506         quote). Changed them to "MMMM yyyy".
5507
5508 2004-05-12  Miguel de Icaza  <miguel@ximian.com>
5509
5510         * rand.c
5511         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_InternalGetBytes): Always close the file. 
5512
5513 2004-05-13  Zoltan Varga  <vargaz@freemail.hu>
5514
5515         * reflection.h: Updated after changes to managed structures.
5516
5517         * appdomain.c: Bump corlib version.
5518
5519 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5520
5521         * Makefile.am: also add libmonoos to libmetadata. Fixes the build on
5522         windows.
5523
5524 2004-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5525
5526         * Makefile.am: link to ../os/libmonoos.la on windows.
5527
5528         * assembly.c:
5529                 -If MONO_DEBUG, warn about non-existing directories in
5530                 MONO_PATH.
5531                 -Added mono_assembly_getrootdir() that replaces MONO_ASSEMBLIES
5532                 compile time variable.
5533                 -Removed init_default_path and call mono_set_rootdir from
5534                 libmonoos.a instead (windows only).
5535
5536         * assembly.h: declare mono_assembly_getrootdir().
5537
5538         * domain.c:
5539         * icall.c: use mono_assembly_getrootdir() instead of MONO_ASSEMBLIES.
5540
5541         * loader.c: s/getenv/g_getenv/
5542
5543 2004-05-11  Zoltan Varga  <vargaz@freemail.hu>
5544
5545         * marshal.{h,c}: Add support for UnmanagedType.AsAny.
5546
5547         * marshal.c: Use mono_metadata_signature_{alloc,dup} where appropriate.
5548
5549         * metadata.h: Add new marshalling conversions.
5550
5551         * metadata.h metadata.c (mono_metadata_signature_dup): New helper
5552         function.
5553
5554         * reflection.c (mono_reflection_get_type): Lookup the type in all
5555         modules of a multi-module assembly. Fixes #58291.
5556
5557 2004-05-11  Lluis Sanchez Gual  <lluis@ximian.com>
5558
5559         * threads.c: Before aborting a background, set the StopRequested
5560         state.  This avoids throwing the Abort exception.
5561         In mono_thread_manage, don't continue with the shutdown until all
5562         aborted threads have actually stopped.
5563
5564 2004-05-10  Jackson Harper  <jackson@ximian.com>
5565
5566         * locales.c: Remove the modifier from culture names.
5567         
5568 2004-05-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5569
5570         * Makefile.am: monosn is not installed any more. It has been deprecated
5571         in favor of sn.
5572
5573 2004-05-07  Jackson Harper  <jackson@ximian.com>
5574
5575         * locales.c
5576         (ves_icall_System_Globalization_CultureInfo_internal_get_cultures):
5577         Fix array construction, add bailout if the length is 0.
5578
5579 2004-05-07  Dick Porter  <dick@ximian.com>
5580
5581         * socket-io.c (addrinfo_to_IPHostEntry): Don't crash if the
5582         machine doesn't have a DNS entry.  Patch by Urs Muff
5583         (umuff@quark.com), fixes bug 57928.
5584
5585 2004-05-06  Jackson Harper  <jackson@ximian.com>
5586
5587         * reflection.c: Handle null PublicTokens properly. alloc mem for
5588         assembly names culture so we dont crash when freeing it.
5589         
5590 2004-05-06  Jackson Harper  <jackson@ximian.com>
5591
5592         * assembly.c: Check the usergac when loading with partial names.
5593         
5594 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5595
5596         * rand.c|h: Added new icall for (optionally) seeding the PRNG. This 
5597         does nothing for now (not required for Linux/Windows) but the class
5598         library can call it (and a newer or modified runtime could need it).
5599         * icall.c: Registred icall.
5600
5601 2004-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5602
5603         * loader.c: prints a message on module loading error we set MONO_DEBUG
5604         environment variable.
5605
5606 2004-05-05  Jackson Harper  <jackson@ximian.com>
5607
5608         * appdomain.c: Handle PublicKeyToken=null properly.
5609         
5610 2004-05-05  Sebastien Pouliot  <sebastien@ximian.com>
5611
5612         * environment.c|h: Added icall ves_icall_System_Environment_
5613         GetOSVersionString to get the current OS version as a string.
5614         * icall.c: Registred icall.
5615
5616 2004-05-05  Lluis Sanchez Gual  <lluis@ximian.com>
5617
5618         * object.c: in mono_object_get_virtual_method(), take into account that
5619         non-virtual methods don't have a slot in the vtable. Check needed when
5620         the object is a proxy.
5621
5622 2004-05-05  Zoltan Varga  <vargaz@freemail.hu>
5623
5624         * marshal.h marshal.c icall.c: Applied patch from vladimir@pobox.com
5625         (Vladimir Vukicevic). Implement UnsafeAddrOfPinnedArrayElement.
5626
5627         * object.c (mono_class_compute_gc_descriptor): Fix warning.
5628
5629         * object.c (mono_runtime_invoke_array): Add an assert so null cannot be
5630         passed when a valuetype is expected.
5631
5632         * object.c (mono_unhandled_exception): Only set the exit code if the
5633         exception happens in the main thread. Fixes thread5.exe.
5634
5635         * appdomain.c (get_info_from_assembly_name): Fix infinite loop on
5636         invalid names. Fixes #58047.
5637
5638 2004-05-03  Jackson Harper  <jackson@ximian.com>
5639
5640         * assembly.c: This line was committed accidently and is unneeded.
5641         
5642 2004-05-03  Jackson Harper  <jackson@ximian.com>
5643
5644         * icall.c: Add new icall for Assembly::LoadWithPartialName
5645         * assembly.c/.h: new function that probes the GAC to load partial
5646         assembly names by Paolo Molaro.
5647         
5648 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5649
5650         * appdomain.c: use g_strncasecmp when looking for 'Culture=' et al.
5651         * reflection.c: use g_strncasecmp when looking for 'Culture=' et al.
5652         (type_get_fully_qualified_name): Added PublicKeyToken when building a
5653         full type name.
5654
5655 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5656
5657         * appdomain.c: fixed check for 'neutral' culture and removed warning.
5658         * reflection.c: fix bug when parsing a full type name and Version is not
5659         the last thing in the string.
5660
5661 2004-05-03  Zoltan Varga  <vargaz@freemail.hu>
5662
5663         * appdomain.c (get_info_from_assembly_name): Strdup "" to prevent
5664         crashes when it is freed.
5665
5666 2004-05-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5667
5668         * assembly.c: print the compat warning to stderr.
5669
5670 2004-05-01  Miguel de Icaza  <miguel@ximian.com>
5671
5672         * assembly.c (mono_assembly_load_references): Add a compatibility
5673         hack to run old applications that might be still referencing the
5674         3300-based assemblies, only do this for System.xxx.
5675
5676 2004-05-01  Jackson Harper  <jackson@ximian.com>
5677
5678         * appdomain.c: If the culture is neutral we set it to "".
5679         
5680 2004-04-29  Jackson Harper  <jackson@ximian.com>
5681
5682         * locales.c: Add some missing MONO_ARCH_SAVE_REGS'.
5683
5684 2004-04-29  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
5685  
5686         * string-icalls.c: added low overhead function for copying chars
5687         * icall.c: added needed icall for the above function
5688  
5689 2004-04-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5690
5691         * icall.c: fix return value of get_global_assembly_cache.  Implemented
5692         Environment.GetLogicalDrives.
5693
5694 2004-04-28  Bernie Solomon  <bernard@ugsolutions.com>
5695
5696         * rand.c: try and talk to egd or prngd
5697         for random bytes if opening devices fail.
5698
5699 2004-04-28  Zoltan Varga  <vargaz@freemail.hu>
5700
5701         * marshal.c (mono_marshal_load_type_info): Calculate the minimum
5702         alignment for the type using the native alignment of its members 
5703         instead of using klass->min_align.
5704
5705         * metadata.c (mono_type_stack_size): Fix size of TYPEDBYREF.
5706
5707 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5708
5709         * file-io.c:
5710         * socket-io.c: added check for sys/aio.h.
5711
5712 2004-04-28  Dick Porter  <dick@ximian.com>
5713
5714         * threads.c: Don't abort a thread thats already aborting, when
5715         terminating everything.
5716
5717 2004-04-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5718
5719         * icall.c: added 2 new async calls for Socket.
5720
5721         * socket-io.[ch]: fixed some warnings. Added support for asynchronous
5722         IO on *nix systems.
5723
5724         * threadpool.c: removed unused variable.
5725
5726 2004-04-27  Zoltan Varga  <vargaz@freemail.hu>
5727
5728         * marshal.c: Handle null properly in PtrToString* icalls. Fixes #57706.
5729
5730 Tue Apr 27 15:55:17 CEST 2004 Paolo Molaro <lupus@ximian.com>
5731
5732         * locales.c: put back string_invariant_tolower () and
5733         string_invariant_toupper ().
5734
5735 2004-04-26 David Waite <mass@akuma.org>
5736
5737         * file-io.h:
5738         * socket-io.h:
5739         * threads.h:
5740         * unicode.h: remove comma from end of enumeration declarations
5741
5742 2004-04-26 David Waite <mass@akuma.org>
5743
5744         * debug-mono-symfile.h:
5745         * decimal.c:
5746         * mono_debug.h:
5747         * sysmath.c: Define 64 bit constants as long long types (i.e. 10ULL)
5748
5749
5750 2004-04-26  Jackson Harper  <jackson@ximian.com>
5751
5752         * appdomain.c: Increment version number.
5753         
5754 2004-04-26  Jackson Harper  <jackson@ximian.com>
5755
5756         * appdomain.c: Set assembly references public token value when
5757         PublicKeyToken is specified, not the hash_value. Free public token
5758         values when free assembly name data. Previously the public key
5759         token was hex decoded, however we are using hex encoded public key
5760         tokens, so this is not neccasary.
5761         * assembly.c: Lookup assemblies in the gac if their public token
5762         value is set. Add function to allow enabling user gac
5763         lookups. Specify whether or not the assembly was loaded from the
5764         GAC. Compare full assembly names when checking the cache for
5765         assemblies (Temporarily disabled see comment in code). Remove
5766         mscorlib -> corlib mapping cruft. Add trace-loading. When a user
5767         specifies trace-loader they get extra info to stdout on the
5768         loading of assemblies.
5769         * image.h: Add a field for an assembly references public token
5770         value to MonoAssemblyname. Add a field to MonoAssembly to specifiy
5771         whether an assembly has been loaded from the GAC.
5772         * image.c: Remove a corlib -> mscorlib name mapping.
5773         * loader.h: Add function to enable/disable the user gac.
5774         * mono-config.c: Check if the usergac is enabled in the config
5775         file.
5776         * icall.c: New icall to determine whether or not an assembly has
5777         been loaded from the GAC. Remove some mscorlib -> corlib mappings.
5778         * tabldefs.h: Add constant for assemblyref flag that specifies a
5779         full public key is used instead of a public token.
5780         * reflection.c: Remove mscorlib -> corlib mappings. Set
5781         PublicTokenValue instead of hash value. This value is a hex
5782         string so it does not need to be expanded.
5783
5784 2004-04-26  Martin Baulig  <martin@ximian.com>
5785
5786         * mono-debug-debugger.c (mono_debugger_initialize): Set
5787         `mono_debugger_initialized' before calling mono_debug_lock().
5788
5789 2004-04-42  Robert Shade <rshade@dvsconsulting.com>
5790
5791         * icall.c: icalls for Char.ToUpper/ToLower are now hooked to
5792           InternalToUpper/InternalToLower.
5793         * locales.c: (ves_icall_System_{Char,String}_InternalTo{Upper,Lower}_Comp)
5794           removed invariant culture shortcut.  This is now done in managed code.
5795         * locales.c: (string_invariant_toupper/tolower) removed.
5796
5797 2004-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5798
5799         * icall.c: added GetSupportsAsync for Socket (same as MonoIO).
5800         Added Poll internal call.
5801
5802         * socket-io.[ch]: _wapi_socket == WSASocket. Added internal
5803         call for Poll. Select was too heavy for polling a single socket.
5804
5805         * threadpool.[ch]: added mono_threadpool_cleanup.
5806         * threads.c: use it. Don't use Thread_Abort on windows.
5807
5808 2004-04-23  Martin Baulig  <martin@ximian.com>
5809
5810         * mono-debug-debugger.c (mono_debugger_lookup_assembly): New function.
5811
5812 2004-04-23  Sebastien Pouliot  <sebastien@ximian.com>
5813
5814         * icall.c: Registred new icalls for key pair protection and added an
5815         icall for Environment.GetFolderPath on Windows.
5816         * security.c|h: Added new icalls for key pair protection.
5817
5818 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5819
5820         * socket-io.c: don't display the non-supported family warning for known
5821         families. Now this is not displayed on windows when checking support
5822         for IPv4/IPv6.
5823
5824 2004-04-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5825
5826         * class.c: don't display the layout warning for static fields.
5827
5828 2004-04-21  Lluis Sanchez Gual <lluis@ximian.com>
5829
5830         * icall.cs: Registered new icalls for Char.ToLower and Char.ToUpper.
5831         * locales.c, locales.h: Added new icalls for culture-specific
5832         Char.ToLower and Char.ToUpper.
5833
5834 2004-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5835
5836         * threads.c: the 2nd argument when aborting a thread is NULL now. Patch
5837         by David Waite.
5838
5839 2004-04-20  Martin Baulig  <martin@ximian.com>
5840
5841         * mono-debug-debugger.c (mono_debugger_lookup_type): Make a copy
5842         of the type name before passing it to mono_reflection_type_from_name().
5843
5844 2004-04-19  Zoltan Varga  <vargaz@freemail.hu>
5845
5846         * marshal.c (mono_marshal_get_managed_wrapper): Handle different string
5847         encodings here. Fixes #56965.
5848
5849 2004-04-18  Bernie Solomon <bernard@ugsolutions.com>
5850
5851         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5852         fix test on strstr result not that I can see anything that
5853         relies on the result.
5854
5855 2004-04-18  Zoltan Varga  <vargaz@freemail.hu>
5856
5857         * metadata.c (mono_type_to_unmanaged): Handle MONO_NATIVE_FUNC as well.
5858         Fixes #57081.
5859
5860         * marshal.c (mono_marshal_get_string_encoding): New helper function.
5861
5862         * marshal.c (mono_marshal_get_native_wrapper): Use the new helper
5863         function to determine which marshalling to use for strings. Fixes
5864         #56965.
5865
5866         * marshal.c (mono_marshal_string_array_to_unicode): Fix warning.
5867
5868         * reflection.c (encode_marshal_blob): Add support for LPARRAY.
5869
5870 2004-04-15  Bernie Solomon  <bernard@ugsolutions.com>
5871
5872         * icall.c: #include mono-config.h
5873
5874 2004-04-15  Jackson Harper  <jackson@ximian.com>
5875
5876         * culture-info-tables.h: Fix date formats for en-US culture.
5877         
5878 2004-04-15  Lluis Sanchez Gual  <lluis@ximian.com>
5879
5880         * icall.c: Registered icalls for ThreadPool.GetMinThreads and 
5881         ThreadPool.SetMinThreads.
5882         * threadpool.c: Implemented ThreadPool.GetMinThreads and
5883         ThreadPool.SetMinThreads.
5884
5885 Thu Apr 15 15:36:40 CEST 2004 Paolo Molaro <lupus@ximian.com>
5886
5887         * mono-config.c: also load the .config file in the directory
5888         where the assembly was found.
5889
5890 Thu Apr 15 14:24:49 CEST 2004 Paolo Molaro <lupus@ximian.com>
5891
5892         * assembly.c: load per-assembly config files.
5893         * icall.c: decrapified code to get the config dir and moved to
5894         mono-config.c.
5895         * image.h, loader.c, loader.h, mono-config.c, mono-config.h: allow
5896         per-assembly config files. When doing a dll map lookup give precedence
5897         to the per-assembly data.
5898
5899 2004-04-14  Martin Baulig  <martin@ximian.com>
5900
5901         * mono-debug-debugger.h (MonoDebuggerEvent): Removed
5902         MONO_DEBUGGER_EVENT_TYPE_ADDED and MONO_DEBUGGER_EVENT_METHOD_ADDED
5903         and added MONO_DEBUGGER_EVENT_RELOAD_SYMTABS.
5904
5905         * mono-debugger-debugger.c: While the debugger is locked, remember
5906         whether the symbol tables have changes and send one single
5907         MONO_DEBUGGER_EVENT_RELOAD_SYMTABS when releasing the lock.
5908
5909 2004-04-14  Zoltan Varga  <vargaz@freemail.hu>
5910
5911         * metadata.h: Add STRARRAY_STRWLPARRAY marshalling convention.
5912
5913         * marshal.h marshal.c (mono_marshal_string_array_to_unicode): New 
5914         function.
5915
5916         * marshal.c (mono_marshal_get_native_wrapper): Take CharSet into
5917         account when marshalling string arrays. Fixes #56965.
5918
5919 2004-04-13  Sebastien Pouliot  <sebastien@ximian.com>
5920
5921         * icall.c: Add new icalls mapping for security.
5922         * security.c|h: Add internal calls for WindowsIdentity,
5923         WindowsImpersonationContext and WindowsPrincipal.
5924
5925 2004-04-13  Gert Driesen (drieseng@users.sourceforge.net)
5926
5927         * class.c: Added comment to ensure the System.MonoDummy class
5928         is removed when no longer necessary
5929
5930 2004-04-13  Miguel de Icaza  <miguel@ximian.com>
5931
5932         * appdomain.c: Pass arguments to the bootstraping exceptions to
5933         minimize JITed methods at boot
5934
5935         * metadata.c (mono_exception_from_name_two_strings): Allow for the
5936         second string to be null.
5937
5938         * icall.c (ves_icall_System_Text_Encoding_InternalCodePage):
5939         Change the protocol to minimize the JIT methods at startup.  Now
5940         it Returns the internal codepage, if the value of "int_code_page"
5941         is 1 at entry, and we can not compute a suitable code page
5942         number, returns the code page as a string.
5943
5944 2004-04-13  Jackson Harper  <jackson@ximian.com>
5945
5946         * culture-info-tables.h: Fix number of decimal digits for all
5947         english locales.
5948
5949 2004-04-13  Jackson Harper  <jackson@ximian.com>
5950
5951         * icall.c: Clairfy out of sync error message. It is not always
5952         your corlib that is out of sync.
5953
5954 2004-04-13  Zoltan Varga  <vargaz@freemail.hu>
5955
5956         * icall.c (ves_icall_Type_GetPropertiesByName): Avoid duplicate
5957         properties when only the set accessor is overriden. Fixes #55874.
5958
5959 2004-04-09  Zoltan Varga  <vargaz@freemail.hu>
5960
5961         * assembly.c (mono_assembly_load_references): Make this thread safe.
5962         Fixes #56327.
5963
5964 2004-04-08  Zoltan Varga  <vargaz@freemail.hu>
5965
5966         * monosn.c: Add missing initialization calls.
5967
5968 2004-04-08  Bernie Solomon  <bernard@ugsolutions.com>
5969
5970         * locales.c:
5971         ves_icall_System_Globalization_CultureInfo_construct_number_format
5972         Fix g_assert so it compiles on fussier compilers re int/ptr
5973         mismatch
5974
5975 2004-04-08  Dick Porter  <dick@ximian.com>
5976
5977         * socket-io.h:
5978         * socket-io.c: Don't set SO_REUSEADDR on windows.  Fixes bug
5979         53992.  Also rearrange the code so that the internal calls return
5980         an error value and exceptions are thrown from managed code.
5981
5982         * icall.c: Add type info to the socket icalls.
5983
5984 2004-04-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5985
5986         * object.h: synchronize MonoCompareInfo with CompareInfo class. Someone
5987         owes me a beer.
5988
5989 2004-04-07  Martin Baulig  <martin@ximian.com>
5990
5991         * class.c (mono_class_from_generic_parameter): Don't default
5992         `klass->parent' to `mono_defaults.object_type'.
5993
5994 2004-04-07  Martin Baulig  <martin@ximian.com>
5995
5996         * reflection.c (mono_reflection_initialize_generic_parameter): Set
5997         `param->pklass->reflection_info'.       
5998
5999 2004-04-07  Jackson Harper  <jackson@ximian.com>
6000
6001         * culture-info-tables.h: Fix date separator symbol.
6002         
6003 2004-04-07  Martin Baulig  <martin@ximian.com>
6004
6005         * icall.c (ves_icall_Type_GetGenericArguments): Moved this icall
6006         from System.Type to System.MonoType.
6007
6008 2004-04-07  Martin Baulig  <martin@ximian.com>
6009
6010         * reflection.h
6011         (MonoReflectionGenericParam): Added `has_reference_type' and
6012         `has_value_type' fields.
6013
6014         * reflection.c (mono_image_get_generic_param_info): Encode the
6015         correct flags if we have the `class' or `struct' constraint.
6016
6017 2004-04-07  Martin Baulig  <martin@ximian.com>
6018
6019         * reflection.h
6020         (MonoReflectionGenericParam): Added `MonoBoolean has_ctor_constraint'.
6021
6022 2004-04-07  Jackson Harper  <jackson@ximian.com>
6023
6024         * appdomain.c: Revert extra patches, just wanted to bump the
6025         version number.
6026         
6027 2004-04-07  Jackson Harper  <jackson@ximian.com>
6028
6029         * Makefile.am: Add culture-info private headers.
6030         * icall.c: Add new icalls for contructing locales.
6031         * locales.c: Construct CultureInfo objects from lookup tables instead of using ICU.
6032         * locales.h: Declare new culture info construction methods.
6033         * object.h: Add new fields used to avoid the CultureMap to
6034         MonoCultureInfo.
6035         * culture-info.h: Definition of structs used in the culture info
6036         tables.
6037         * culture-info-tables.h: Autogenerated tables that contain culture
6038         info data. This file was generated with the locale-builder tool.
6039         * appdomain.c: Incement corlib version number.
6040         
6041 2004-04-07  Bernie Solomon  <bernard@ugsolutions.com>
6042
6043         * appdomain.c: (mono_runtime_init) move mono_thread_init
6044         to before mono_object_new calls so critical sections
6045         are initialized before use.
6046
6047 2004-04-07  Martin Baulig  <martin@ximian.com>
6048
6049         * icall.c
6050         (ves_icall_TypeBuilder_define_generic_parameter): Removed.
6051         (ves_icall_MethodBuilder_define_generic_parameter): Removed.
6052         (ves_icall_MonoGenericParam_initialize): Removed.
6053         (monogenericparam_icalls): Removed.
6054         (generictypeparambuilder_icalls): Added new table for
6055         System.Reflection.Emit.GenericTypeParameterBuilder.
6056
6057         * reflection.c
6058         (mono_reflection_define_generic_parameter): Removed.
6059         (mono_reflection_initialize_generic_parameter): This is now called
6060         from GenericTypeParameterBuilder's .ctor.
6061
6062 2004-04-06  Martin Baulig  <martin@ximian.com>
6063
6064         * class.c (mono_class_init): Don't inflate nested classes in a
6065         generic instance.
6066         (mono_type_get_name_recurse): Include the generic arguments for
6067         generic instances and generic type declarations.
6068         (inflate_generic_type): Correctly inflate MONO_TYPE_SZARRAY.
6069         (_mono_class_get_instantiation_name): Removed.
6070         (mono_class_create_generic): Always use `gklass->name' as our name.
6071
6072         * class.h (MonoGenericInst): Removed `nested_in', and `nested'.
6073
6074         * icall.c (ves_icall_MonoGenericInst_GetDeclaringType): Removed.
6075         (ves_icall_MonoGenericInst_GetNestedTypes): Removed.
6076         (ves_icall_MonoMethod_GetGenericParameters): Renamed to
6077         ves_icall_MonoMethod_GetGenericArguments() and correctly handle
6078         closed generic methods here.
6079
6080         * reflection.c
6081         (mono_reflection_generic_inst_get_nested_types): Removed.
6082         (inflate_mono_method): Copy the generic parameters from the
6083         MonoMethodHeader into out MonoGenericMethod.
6084
6085 2004-04-06  Martin Baulig  <martin@ximian.com>
6086
6087         * row-indexes.h
6088         (MONO_GENERICPARAM_DEPRECATED_CONSTRAINT): Removed.
6089
6090         * metadata.c (GenericParamSchema): Removed "DeprecatedConstraint".
6091
6092         * reflection.c (build_compressed_metadata): If we have any entries
6093         in the GenericParam, MethodSpec or GenericParamConstraint tables,
6094         set the header version to 1.1.
6095
6096 2004-04-06  Martin Baulig  <martin@ximian.com>
6097
6098         * class.c (mono_class_init): If we're a generic instance,
6099         initialize our nested classes, too.
6100         (_mono_class_get_instantiation_name): Deal with the new `!%d'
6101         suffix. 
6102
6103 2004-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6104
6105         * process.c: quote the argument passed to the shell on windows.
6106
6107 2004-04-05  Zoltan Varga  <vargaz@freemail.hu>
6108
6109         * threads.c (mono_alloc_special_static_data): Allow this to be
6110         called during startup.
6111
6112 2004-04-02  Martin Baulig  <martin@ximian.com>
6113
6114         * icall.c
6115         (ves_icall_MonoGenericInst_GetDeclaringType): New icall.
6116
6117 2004-04-02  Zoltan Varga  <vargaz@freemail.hu>
6118
6119         * icall.c: Fix build.
6120
6121 2004-04-02  Sebastien Pouliot  <sebastien@ximian.com>
6122
6123         * Makefile.am: Added security.c|h.
6124         * icall.c: Added icall for get_UserName;
6125         * security.c: New file for security related icalls. Added function
6126         get_UserName for System.Environment (fix #56144).
6127         * security.h: New. Header file for security.c
6128
6129 2004-04-02  Dick Porter  <dick@ximian.com>
6130
6131         * icall.c: Deleted the icalls that were obsoleted some time ago
6132         by the ICU string code, and which were mixed into the icall
6133         rearranging.  Fixes bug 55969.
6134
6135         * string-icalls.h: 
6136         * string-icalls.c: Deleted the code that those icalls reference.
6137
6138 2004-04-01  Martin Baulig  <martin@ximian.com>
6139
6140         * metadata.h (MONO_CLASS_IS_INTERFACE): New macro.
6141
6142         * class.c (mono_class_from_generic_parameter): Don't set 
6143         TYPE_ATTRIBUTE_INTERFACE.
6144         (my_mono_class_from_generic_parameter): Likewise.
6145
6146 2004-04-01  Martin Baulig  <martin@ximian.com>
6147
6148         * loader.c (find_method): Added an optional `MonoClass *ic'
6149         argument to search in a specific interface.
6150         (mono_get_method_constrained): New public function.
6151
6152 2004-04-01  Martin Baulig  <martin@ximian.com>
6153
6154         * reflection.c (mono_image_get_generic_field_token): Use the
6155         `handleref' cache here.
6156
6157 2004-04-01  Martin Baulig  <martin@ximian.com>
6158
6159         * reflection.h (MonoDynamicImage): Added `GHashTable *typespec'.
6160
6161         * reflection.c (create_generic_typespec): Use the `typespec' hash
6162         here, not the `typeref' one.    
6163
6164 2004-04-01  Martin Baulig  <martin@ximian.com>
6165
6166         * class.c (mono_class_inflate_generic_type): Moved the
6167         functionality into a new static inflate_generic_type() which
6168         returns NULL if it didn't do anything.  Only increment the
6169         `mono_stats.inflated_type_count' if we actually inflated
6170         something.
6171         (mono_class_get_full): Check the classes type to see whether we
6172         need to inflate it; also inflate MONO_TYPE_(M)VAR.
6173
6174 2004-04-01  Jackson Harper  <jackson@ximian.com>
6175
6176         * reflection.c: Set culture for assembly references.
6177         
6178 2004-04-01 Ben Maurer  <bmaurer@users.sourceforge.net>
6179
6180         * reflection.[ch], icall.[ch], Fix support for pinning variables.
6181
6182 2004-04-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6183
6184         * assembly.c:
6185         (do_mono_assembly_open): the critical section also covers
6186         mono_image_open and mono_image_open_from_data. Fixes bug #56327.
6187
6188 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6189
6190         * threads.c:
6191         (mono_manage_threads): abort the background threads when finishing.
6192         Fixes bug #47232.
6193
6194 2004-03-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6195
6196         * gc.c: only close the done_event handle if there was no timeout.
6197         C-ified comments.
6198
6199 2004-03-30  Martin Baulig  <martin@ximian.com>
6200
6201         * icall.c (icall_entries): It's called "System.Activator", not
6202         "System.Activation".    
6203
6204 2004-03-30  Martin Baulig  <martin@ximian.com>
6205
6206         * class.c (mono_ldtoken): Added `MonoGenericContext *' argument.
6207         (mono_class_create_from_typespec): Likewise.
6208
6209 2004-03-30  Martin Baulig  <martin@ximian.com>
6210
6211         * reflection.h (MonoReflectionGenericParam): Use MonoBoolean for
6212         `has_ctor_constraint' and `initialized'.
6213
6214 2004-03-30  Martin Baulig  <martin@ximian.com>
6215
6216         * reflection.c (encode_new_constraint): New static function to add
6217         the constructor constraint attribute to a type parameter.
6218         (encode_constraints): Call encode_new_constraint() if necessary.
6219
6220         * reflection.h
6221         (MonoReflectionGenericParam): Added `guint32 has_ctor_constraint'.
6222
6223         * row-indexes.h: Added CUSTOM_ATTR_GENERICPAR.
6224         
6225 2004-03-29 Ben Maurer  <bmaurer@users.sourceforge.net>
6226
6227         * reflection.c, icall.c: add support for pinning variables. 
6228
6229 2004-03-29  Bernie Solomon  <bernard@ugsolutions.com>
6230
6231         * marshal.c (mono_marshal_get_managed_wrapper):
6232         init bool local with zero rather than null.
6233
6234 2004-03-29  Martin Baulig  <martin@ximian.com>
6235
6236         * icall.c (ves_icall_MonoMethod_get_HasGenericParameters): Show
6237         the "official" behavior here.
6238         (ves_icall_MonoMethod_get_Mono_IsInflatedMethod): New interncall.
6239
6240 2004-03-29  Martin Baulig  <martin@ximian.com>
6241
6242         * icall.c: Reflect latest API changes.
6243
6244 2004-03-29  Martin Baulig  <martin@ximian.com>
6245
6246         * loader.c (mono_get_method_from_token): Also call
6247         mono_metadata_load_generic_params () for abstract and interface
6248         methods; replace the type arguments in the method signature with
6249         the ones which are loaded from the metadata.
6250
6251 2004-03-29  Lluis Sanchez Gual  <lluis@ximian.com>
6252
6253         * monitor.c: In mono_monitor_exit(), don't throw an exception if the owner
6254         of the lock is not the current thread. MS.NET don't do it, in spite of
6255         what the documentation says. See bug #56157.
6256
6257 2004-03-28  Martin Baulig  <martin@ximian.com>
6258
6259         * class.c (mono_class_init): Don't call init_properties() and
6260         init_events() for generic instances; set `prop->parent' when
6261         inflating properties.
6262
6263         * reflection.c (mono_generic_inst_get_object): Call
6264         `mono_class_init (ginst->klass)'.
6265         (mono_type_get_object): Only create a MonoGenericInst if your
6266         generic type is a TypeBuilder.
6267         (do_mono_reflection_bind_generic_parameters): Only set
6268         `ginst->is_dynamic' if our generic type is a TypeBuilder.
6269
6270 2004-03-28  Zoltan Varga  <vargaz@freemail.hu>
6271
6272         * appdomain.c (unload_thread_main): Do not clear proxy_vtable_hash.
6273         Fixes #56091.
6274
6275 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6276
6277         * icall.c: added Kill_internal icall.
6278         * process.[ch]: added Kill_internal icall.
6279
6280 2004-03-25  Martin Baulig  <martin@ximian.com>
6281
6282         * class.h (MonoStats): Added `generic_instance_count',
6283         `inflated_method_count', `inflated_type_count' and
6284         `generics_metadata_size'.       
6285
6286 2004-03-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6287
6288         * reflection.c: no warnings now.
6289
6290 2004-03-25  Martin Baulig  <martin@ximian.com>
6291
6292         * class.c (mono_class_get_full): New public function; does a
6293         mono_class_get(), but also takes a `MonoGenericContext *'.
6294
6295         * loader.c (mono_field_from_memberref): Renamed to
6296         `field_from_memberref', made static and added `MonoGenericContext *'
6297         argument.
6298         (mono_field_from_token): Added `MonoGenericInst *' argument.
6299         (method_from_memberef): Likewise.
6300         (mono_get_method_from_token): Likewise.
6301         (mono_get_method_full): New public function; does a
6302         mono_get_method(), but also takes a `MonoGenericContext *'.
6303
6304         * verify.c (mono_method_verify): Get the method's generic context
6305         and pass it to mono_field_from_token(), mono_get_method_full() and
6306         mono_class_get_full().
6307
6308 2004-03-25  Martin Baulig  <martin@ximian.com>
6309
6310         * class.c (mono_class_inflate_generic_type): Take a
6311         `MonoGenericContext *' instead of a `MonoGenericInst *' and a
6312         `MonoGenericMethod *'.
6313
6314 2004-03-25  Martin Baulig  <martin@ximian.com>
6315
6316         * loader.h (MonoMethodInflated): Store the MonoGenericContext
6317         instead of the MonoGenericMethod here.
6318
6319 2004-03-25  Martin Baulig  <martin@ximian.com>
6320
6321         * class.h (MonoGenericInst): Added `MonoGenericContext *context';
6322         each time we create a new MonoGenericInst, we also create a new
6323         context which points back to us.
6324
6325         * class.c (inflate_method): Use `ginst->context' instead of
6326         creating a new context.
6327
6328         * loader.c (method_from_memberref): Use
6329         `klass->generic_inst->context' instead of creating a new context.
6330
6331 2004-03-25  Martin Baulig  <martin@ximian.com>
6332
6333         * class.h (MonoGenericContext): New struct.
6334         (MonoGenericMethod): Removed `generic_inst'.
6335
6336         * class.c (mono_class_inflate_generic_method): Take a
6337         `MonoGenericContext *' instead of a `MonoGenericMethod *'.
6338
6339 2004-03-25  Martin Baulig  <martin@ximian.com>
6340
6341         * loader.h (MonoMethodInflated): New typedef.
6342
6343         * metadata.h (MonoMethodSignature): Removed `gen_method', make
6344         `generic_param_count' consume just 30 bits, added `is_inflated'
6345         and `has_type_parameters' flags (one bit each).
6346
6347         * class.c (mono_class_inflate_generic_method): Create a
6348         MonoMethodInflated instead of a MonoMethodNormal and set
6349         `is_inflated' in the method signature.
6350
6351         * class.h (MonoGenericMethod): Removed `generic_method'.
6352
6353 2004-03-25  Lluis Sanchez Gual  <lluis@ximian.com>
6354
6355         * image.c: Make sure the name of a MonoImage is always an absolute path.
6356           This fixes bug #54415.
6357
6358 2004-03-24  Martin Baulig  <martin@ximian.com>
6359
6360         * class.c (mono_class_setup_vtable): If we're a generic instance,
6361         use our generic type's vtable size.
6362
6363 2004-03-24  Zoltan Varga  <vargaz@freemail.hu>
6364
6365         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Add
6366         MONO_NO_UNLOAD env var as a temporary workaround for unloading 
6367         problems.
6368
6369 2004-03-23  Martin Baulig  <martin@ximian.com>
6370
6371         * class.h (MonoDynamicGenericInst): Added `int count_events' and
6372         `MonoEvent *events'.
6373
6374         * icall.c (ves_icall_MonoGenericInst_GetEvents): New interncall.
6375         (typebuilder_icalls): Added "get_event_info"; calls
6376         mono_reflection_event_builder_get_event_info(). 
6377
6378         * reflection.c (mono_reflection_generic_inst_initialize): Added
6379         `MonoArray *events'.
6380         (mono_reflection_event_builder_get_event_info): New function.
6381
6382 2004-03-23  Bernie Solomon  <bernard@ugsolutions.com>
6383
6384         * object.h: add mono_type_initialization_init
6385
6386         * object.c (mono_runtime_class_init): 
6387         implement class constructor synchronization rules
6388         to cope with threading issues.  
6389         add mono_type_initialization_init
6390
6391         * appdomain.c (mono_runtime_init): call 
6392         mono_type_initialization_init
6393
6394         * class.h: removing initializing field from MonoVTable
6395
6396 2004-03-23  Martin Baulig  <martin@ximian.com>
6397
6398         * class.c (my_mono_class_from_generic_parameter): Use
6399         `param->name' if it's not NULL. 
6400
6401 2004-03-22 Ben Maurer  <bmaurer@users.sourceforge.net>
6402
6403         * class.c: do not insert non-virtual methods in the vtable.
6404         * icall.c, mono-debug-debugger.c, object.c: if method->slot == -1,
6405         that means the method is non-virtual. This never would have
6406         happened before.
6407
6408 2004-03-22  Lluis Sanchez Gual  <lluis@ximian.com>
6409
6410         * profiler.c: Added lock for accessing coverage_hash.
6411
6412 2004-03-22  Martin Baulig  <martin@ximian.com>
6413
6414         * icall.c (ves_icall_MethodInfo_get_IsGenericMethod): Use
6415         `method->method->signature->generic_param_count != 0' to make it
6416         work for interface methods.
6417
6418 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6419
6420         * process.c: quote the string passed to the shell using g_shell_quote.
6421
6422 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6423
6424         * threads.c:
6425         (mono_threads_manage): don't remove the finalizer thread and self
6426         from the threads hash table so that mono_thread_manage can be called
6427         more than once.
6428
6429 2004-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6430
6431         * process.c: quote the arguments when UseShellExecute is true. Fixes
6432         bug #55790.
6433
6434 2004-03-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6435
6436         * threads.c: set mono_thread_detach as a cleanup routine for every
6437         thread. This way it's always executed upon thread termination, either
6438         aborted or finished normally. No more xsp hangs!
6439
6440 2004-03-17  Martin Baulig  <martin@ximian.com>
6441
6442         * class.h (MonoGenericInst): Replaced the `GList *nested' with an
6443         `int count_nested' and a `MonoType **nested'.
6444
6445         * reflection.c (mono_reflection_bind_generic_parameters): Moved
6446         most of the functionality into a new static
6447         do_mono_reflection_bind_generic_parameters() and don't take a
6448         `MonoType *nested_in' argument any more.  Don't compute nested
6449         types here.
6450         (mono_reflection_generic_inst_get_nested_types): New public method
6451         to get nested types.
6452
6453         * class.c (mono_class_create_generic): Set `klass->nested_in' if
6454         we're a nested class.
6455
6456         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): Call
6457         mono_reflection_generic_inst_get_nested_types() to compute the
6458         nested types.
6459
6460 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6461
6462         * threads.c (ves_icall_System_Threading_Thread_Abort): Add a more
6463         descriptive error message under windows.
6464         
6465 2004-03-17  Martin Baulig  <martin@ximian.com>
6466
6467         * class.c (dup_type): Added `const MonoType *original' argument;
6468         copy the attrs from the original type.
6469
6470 2004-03-17  Martin Baulig  <martin@ximian.com>
6471
6472         * metadata.c (do_mono_metadata_parse_generic_inst): Use the
6473         `m->generic_inst_cache' here.
6474
6475 2004-03-17  Zoltan Varga  <vargaz@freemail.hu>
6476
6477         * exception.h exception.c: Add stack_overflow_exception.
6478
6479 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6480
6481         * threadpool.c:
6482         (overlapped_callback): call SetEvent *after* invoking the callback.
6483         No need to call CloseHandle.
6484
6485 2004-03-16  Martin Baulig  <martin@ximian.com>
6486
6487         * reflection.c (mono_image_get_fieldref_token): Take a
6488         `MonoReflectionField *' instead of a `MonoClassField *' and a
6489         `MonoClass *'; store the `MonoReflectionField *' in the hash.
6490
6491 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6492
6493         * appdomain.c: don't add the culture to the filename we're looking for
6494         if it's neutral or NULL. Fixes bug #53788. Removed redundant memset.
6495
6496 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6497
6498         * locales.c: don't ignore symbols when doing case insensitive compares.
6499         Thanks Dick! Fixes bug #54046.
6500
6501         * threads.c: surround 'threads' usage with enter/leave in
6502         mono_thread_manage.
6503
6504 2004-03-16  Zoltan Varga  <vargaz@freemail.hu>
6505
6506         * marshal.c (mono_marshal_get_native_wrapper): Char arrays are 
6507         implicitly marshalled as [Out]. Fixes #55450.
6508
6509         (mono_marshal_get_runtime_invoke): Zero out the result if there is
6510         an exception.
6511
6512 2004-03-16  Martin Baulig  <martin@ximian.com>
6513
6514         * class.c (mono_class_from_generic_parameter): Use the actual
6515         parameter name. 
6516
6517 2004-03-16  Martin Baulig  <martin@ximian.com>
6518
6519         * reflection.c (type_get_signature_size): New static function.
6520         Compues the size of the type in a method signature.
6521         (method_get_signature_size): New static function; calls
6522         type_get_signature_size() to compute the actual size of the
6523         method's signature.
6524         (method_encode_signature): Use method_get_signature_size() to get
6525         the signature's size rather than using `nparams * 10'.
6526
6527 2004-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6528
6529         * file-io.h: define here WapiOverlapped on windows. I don't want the
6530         regular OVERLAPPED one.
6531
6532         * file-io.c:
6533         * threadpool.c: somehow, BindIoCompletionCallback is not found.
6534         Disabling AIO on windows.
6535
6536 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6537
6538         * marshal.c: Marshal.SizeOf throws an exception for AutoLayout. Fixes
6539         bug #55385.
6540
6541 2004-03-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6542
6543         * appdomain.c: upgraded corlib version.
6544
6545         * file-io.c: implemented new icalls: GetSupportsAIO, BeginRead
6546         and BeginWrite. Allow opening files for asynchrnous operations.
6547
6548         * file-io.h: new struct that maps FileStreamAsyncResult.
6549         * icall.c: added new icalls.
6550         * process.[ch]: support setting child process environment variables
6551         and use the SHELL or COMSPEC when UseShellExecute is true.
6552
6553         * threadpool.[ch]: fixed warnings, moved ThreadPool icalls here. The
6554         callback for async. IO is here and also BindHandle.
6555
6556         * threads.[ch]: added mono_thread_detach and removed ThreadPool icalls
6557         from here.
6558
6559 2004-03-14  Zoltan Varga  <vargaz@freemail.hu>
6560
6561         * reflection.c (create_custom_attr): Allow len == 0.
6562
6563         * object.c (mono_class_compute_gc_descriptor): Fix descriptor
6564         computation on big-endian machines.
6565
6566 2004-03-13  Martin Baulig  <martin@ximian.com>
6567
6568         * class.h (MonoGenericInst): Added `int count_ifaces'.
6569
6570         * iclass.c (ves_icall_MonoGenericInst_GetInterfaces): Use
6571         `ginst->count_ifaces' instead `klass->interface_count' since we
6572         may get called before the vtable is created.
6573
6574         * loader.c (mono_method_get_param_names): If we're a generic
6575         instance, return and don't initialize the class.
6576
6577         * reflection.c (mono_reflection_setup_generic_class): Don't call
6578         ensure_runtime_vtable().
6579         (mono_reflection_bind_generic_parameters): Set
6580         `ginst->count_ifaces'.
6581
6582 2004-03-11  Jackson Harper <jackson@ximian.com>
6583
6584         * icall.c:
6585         * unicode.c:
6586         * unicode.h: Remove unused System.Char icalls.
6587         
6588 2004-03-11  Miguel de Icaza  <miguel@ximian.com>
6589
6590         * loader.c (mono_lookup_pinvoke_call): Call the Windows.Forms init
6591         code when we P/Invoke the first library in Windows.Forms, instead
6592         of when we first open the assembly.
6593
6594         * assembly.c: Drop the lookup from here.
6595
6596 2004-03-10  Martin Baulig  <martin@ximian.com>
6597
6598         * reflection.c (mono_reflection_get_custom_attrs): Use the correct
6599         class for properties, fields and events.  Finally fixes #54945.
6600
6601 2004-03-10  Martin Baulig  <martin@ximian.com>
6602
6603         * metadata.c (mono_metadata_class_equal): New static function;
6604         checks whether two generic instances or two generic parameters are
6605         equal.
6606         (mono_metadata_type_equal): Use mono_metadata_class_equal() to
6607         compare classes.        
6608
6609 2004-03-10  Martin Baulig  <martin@ximian.com>
6610
6611         * class.h (MonoGenericMethod): Added `gpointer reflection_info'.
6612
6613         * reflection.c (inflate_mono_method): Added `MonoObject *obj'
6614         argument and write it into the `reflection_info' field.
6615
6616         * icall.c
6617         (ves_icall_MethodBase_GetGenericMethodDefinition): New interncall.
6618         (ves_icall_MethodBase_get_HasGenericParameters): New interncall.
6619
6620 2004-03-09  Jackson Harper  <jackson@ximian.com>
6621
6622         * char-conversions.h: use 8 bits for numeric data its all we need
6623         * icall.c: numeric data is only 8 bits now.
6624
6625 2004-03-09  Martin Baulig  <martin@ximian.com>
6626
6627         * class.h (MonoProperty, MonoEvent): Added `MonoClass *parent'.
6628
6629         * class.c (init_properties, init_events): Initialize the new
6630         `parent' field.
6631
6632         * reflection.c (typebuilder_setup_properties): Likewise.
6633         (typebuilder_setup_events): Likewise.
6634
6635         * reflection.h (MonoEventInfo): Replaced `parent with
6636         `declaring_type' and `reflected_type'.
6637
6638         * icall.c (ves_icall_get_property_info): Distinguish between
6639         declaring and reflected type.
6640         (ves_icall_get_event_info): Likewise.
6641
6642 2004-03-09  Martin Baulig  <martin@ximian.com>
6643
6644         * icall.c (ves_icall_Type_GetTypeCode): Added MONO_TYPE_GENERICINST.
6645         (ves_icall_Type_GetField): Correctly set field->klass.
6646
6647 2004-03-09  Zoltan Varga  <vargaz@freemail.hu>
6648
6649         * loader.h: Fix warning.
6650
6651 2004-03-08  Miguel de Icaza  <miguel@ximian.com>
6652
6653         *  loader.c, loader.h (mono_loader_wine_init): Loads the Wine/Lib
6654         library routine if present.  Notice that it will still continue
6655         executing even if its missing, for those working on the Gtk#
6656         edition of Windows.Forms.
6657
6658         * assembly.c (do_mono_assembly_open): If loading the
6659         System.Windows.Forms call mono_loader_wini_init.
6660
6661 2004-03-04  Lluis Sanchez Gual  <lluis@ximian.com>
6662
6663         * class.h: Added MonoRemoteClass struct.
6664         * domain.c: Changed hash function for proxy_vtable_hash. It now uses a
6665         function for MonoStrings.
6666         * icall.c: In GetTransparentProxy, assign a MonoRemoteClass to the proxy.
6667         Added internal call for getting the proxy type.
6668         * marshal.c: Get the type of transparent proxies from its remote_class.
6669         Added methods that generate the IL for type checks and casts:
6670         mono_marshal_get_isinst, mono_marshal_get_castclass, 
6671         mono_marshal_get_proxy_cancast.
6672         * marshal.h: Declaration of the previous new methods.
6673         * object.c: Added new moethods for creating and updating MonoRemoteClass
6674         instances: mono_remote_class, mono_upgrade_remote_class, 
6675         * object.h: Added MonoRemoteClass reference in MonoTransparentProxy.
6676         * verify.c: FIx transparent_proxy_fields layout.
6677         * appdomain.c: Bump corlib version.
6678
6679 2004-03-04  Jackson Harper  <jackson@ximian.com>
6680
6681         * icall.c: Add icall to access char conversion tables.
6682         * char-conversions.h: Character conversion tables.
6683         * Makefile.am: Add char-conversions.h private header file.
6684         
6685 2004-03-04  Zoltan Varga  <vargaz@freemail.hu>
6686
6687         * appdomain.c (unload_thread_main): Increase unloading timeout to
6688         10 sec as a temporary workaround for Nant problems.
6689
6690 2004-02-29  Zoltan Varga  <vargaz@freemail.hu>
6691
6692         * gc.c: Add checks for GC_enable and GC_disable.
6693
6694         * string-icalls.c locales.c: Applied patch from Jaroslaw Kowalski
6695         (jaak@zd.com.pl). Fix memory corruption in String.Replace 
6696         (bug #54988).
6697         
6698 2004-02-27  Martin Baulig  <martin@ximian.com>
6699
6700         * reflection.c (mono_reflection_bind_generic_parameters): Take a
6701         `MonoReflectionType *' instead of a `MonoType *'.
6702
6703 2004-02-26  Zoltan Varga  <vargaz@freemail.hu>
6704
6705         * gc.c (run_finalize): Avoid finalizing the object representing the
6706         finalizer thread.
6707         (finalizer_thread): Fix warning.
6708
6709 2004-02-25  Martin Baulig  <martin@ximian.com>
6710
6711         * class.c (_mono_class_get_instantiation_name): Added `int offset'
6712         argument for nested types.
6713         (mono_class_create_generic): Added support for nested generictypes.
6714
6715         * class.h (MonoGenericInst): Added `MonoType *nested_in' and
6716         `GList *nested'.
6717
6718         * icall.c (ves_icall_MonoGenericInst_GetNestedTypes): New icall.
6719
6720         * reflection.c (method_encode_signature): Increase the minimum
6721         value of `size' from 10 to 11.
6722         (mono_reflection_bind_generic_parameters): Take `int type_argc'
6723         and `MonoType **types' arguments instead of the `MonoArray
6724         *types'; added `MonoType *nested_in'.  Recursively instantiate
6725         nested classes. 
6726
6727 2004-02-23  Zoltan Varga  <vargaz@freemail.hu>
6728
6729         * appdomain.h (MonoDomain): Add preallocated null_reference_ex and 
6730         stack_overflow_ex members which are used by exception handling.
6731
6732         * appdomain.c (mono_runtime_init): Initialize the new members.
6733
6734         * gc.c (mono_gc_enable): New helper function.
6735         * gc.c (mono_gc_disable): New helper function.
6736
6737 2004-02-23  Martin Baulig  <martin@ximian.com>
6738
6739         * icall.c: I must have been really stupid - make it actually work
6740         this time ;-)
6741
6742 2004-02-23  Martin Baulig  <martin@ximian.com>
6743
6744         * loader.c (method_from_memberref): Only inflate the method if
6745         it's in another klass.
6746
6747 2004-02-23  Martin Baulig  <martin@ximian.com>
6748
6749         * class.c (mono_class_inflate_generic_type): Fixed two bugs.
6750         (mono_class_init): If we're a generic instance and an interface,
6751         compute `class->interface_id'; also create `class->interfaces'
6752         here and inflate them.
6753
6754         * metadata.c (do_mono_metadata_parse_generic_inst): Compute
6755         `ginst->is_open'.
6756         (mono_type_stack_size): Fix for MONO_TYPE_GENERICINST.
6757
6758         * reflection.c (mono_image_create_token): Allow "MonoGenericInst".
6759
6760 2004-02-15  Miguel de Icaza  <miguel@ximian.com>
6761
6762         * reflection.c (method_encode_code): Improved the error message
6763         generated by the exception.
6764
6765 2004-02-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6766
6767         * icall.c: Martin did not do what he said in the ChangeLog for
6768         2004-02-18, but put back the changes for properties and events.
6769         Commenting those changes out again and adding comment to bug #54518.
6770         
6771         * process.c: removed warning.
6772
6773 2004-02-20  Zoltan Varga  <vargaz@freemail.hu>
6774
6775         * marshal.c (emit_struct_conv): Print an error message instead of
6776         asserting when a type does not have the StructLayout attribute.
6777
6778 2004-02-20  Martin Baulig  <martin@ximian.com>
6779
6780         * reflection.c (mono_type_get_object): Also use the cache for
6781         generic instances.
6782         (mono_reflection_bind_generic_parameters): Always compute
6783         `ginst->ifaces'.        
6784
6785 2004-02-20  Martin Baulig  <martin@ximian.com>
6786
6787         * class.h (MonoGenericMethod): Removed `klass'.
6788
6789         * class.c (mono_class_inflate_generic_method): Added `MonoClass
6790         *klass' argument.
6791
6792 2004-02-20  Martin Baulig  <martin@ximian.com>
6793
6794         * reflection.c (method_encode_methodspec): Actually use the
6795         uninflated signature for the memberref.
6796
6797 2004-02-20  Martin Baulig  <martin@ximian.com>
6798
6799         * class.h (MonoGenericMethod): Removed `declaring'.
6800
6801         * class.c (mono_class_inflate_generic_method): If `gmethod->klass'
6802         is NULL, compute it here.
6803
6804 2004-02-20  Martin Baulig  <martin@ximian.com>
6805
6806         * image.h (MonoImage): Added `GHashTable *generic_inst_cache'.
6807
6808         * metadata.c (mono_metadata_generic_inst_hash): New method.
6809         (mono_metadata_generic_inst_equal): New method.
6810
6811         * reflection.c (mono_reflection_bind_generic_parameters): Use the
6812         `klass->image->generic_inst_cache' cache to avoid creating
6813         duplicate MonoGenericInst's.
6814
6815         * class.c (mono_class_inflate_generic_type): Use the cache.
6816
6817 Thu Feb 19 19:39:09 CET 2004 Paolo Molaro <lupus@ximian.com>
6818
6819         * object.c: fixed gc descriptor calculation for embedded valuetypes.
6820
6821 2004-02-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6822
6823         * icall.c: added Socket.WSAIoctl icall.
6824
6825         * socket-io.[ch]: implemented
6826         ves_icall_System_Net_Sockets_Socket_WSAIoctl.
6827
6828 2004-02-19  Atsushi Enomoto  <atsushi@ximian.com>
6829
6830         * icall.c: removed IsDigit, IsSeparator, IsWhiteSpace from char_icalls.
6831
6832 2004-02-18  Urs C Muff  <umuff@quark.com>
6833
6834         * debug-mono-symfile.c, mono-debug-debugger.c, mono-debug.c: Make
6835         this work on PPC and other big-endian architectures.
6836
6837         * debug-mono-symfile.h: Prepended the names of all the `guint32'
6838         fields with an underscore to make sure they're only accessed by
6839         the read32() macro.
6840
6841 2004-02-18  Martin Baulig  <martin@ximian.com>
6842
6843         * icall.c: Put the klass->refclass changes back for methods and
6844         fields, but not for properties and events.  We're currently not
6845         distinguishing between DeclaringType and ReflectedType for
6846         properties and events, that's what caused the regressions.
6847
6848 2004-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6849
6850         * object.c:
6851         (mono_async_result_new): the handle can be NULL.
6852
6853         * threadpool.c: Use an event instead of a semaphore, don't initialize
6854         it until needed. This saves quite a few semaphores from being created
6855         when using the threadpool.
6856
6857 2004-02-18  Zoltan Varga  <vargaz@freemail.hu>
6858
6859         * object.c (mono_string_is_interned_lookup): Fix interning of long
6860         strings. Fixes #54473.
6861
6862         * domain.c (ldstr_equal): Optimize if the two strings are equal.
6863
6864         * icall.c: Revert the klass->refclass changes since they introduce
6865         regressions (bug #54518).
6866
6867 2004-02-18  Martin Baulig  <martin@ximian.com>
6868
6869         * class.c (mono_class_init): If we're a generic instance and don't
6870         come from a TypeBuilder, inflate our members here.
6871         (mono_class_from_generic): Removed; just use `ginst->klass' instead.
6872         (mono_class_create_generic): New public method.
6873         (mono_class_initialize_generic): Removed.
6874         (get_instantiation_name): Renamed to
6875         _mono_class_get_instantiation_name() and made it public.
6876
6877 2004-02-18  Martin Baulig  <martin@ximian.com>
6878
6879         * class.c (mono_class_inflate_generic_type): Clear the new
6880         instance's `nginst->klass' when inflating a generic instance.
6881         (mono_class_is_subclass_of): Added (basic) support for generic
6882         instances.
6883
6884 Tue Feb 17 21:40:16 CET 2004 Paolo Molaro <lupus@ximian.com>
6885
6886         * appdomain.h, domain.c: use a MonoCodeManager instead of a
6887         MonoMempool to hold compiled native code.
6888
6889 2004-02-17  Martin Baulig  <martin@ximian.com>
6890
6891         * class.h (MonoDynamicGenericInst): Added `count_properties' and
6892         `properties'.
6893
6894         * reflection.c (mono_reflection_generic_inst_initialize): Added
6895         `MonoArray *properties' argument.
6896
6897         * icall.c (ves_icall_MonoGenericInst_GetProperties): New interncall.    
6898
6899 2004-02-17  Martin Baulig  <martin@ximian.com>
6900
6901         * icall.c (ves_icall_Type_GetFields): Renamed to
6902         ves_icall_Type_GetFields_internal() and added a
6903         `MonoReflectionType *rtype' argument; pass it to
6904         mono_field_get_object() to set the field's "reflected" type.
6905         (ves_icall_Type_GetConstructors): Likewise.
6906         (ves_icall_Type_GetEvents): Likewise.
6907         (ves_icall_Type_GetMethodsByName): Added `MonoReflectionType *rtype'
6908         argument; pass it to mono_method_get_object() to set the method's
6909         "reflected" type.       
6910
6911 2004-02-17  Martin Baulig  <martin@ximian.com>
6912
6913         * class.h (MonoDynamicGenericInst): New type.
6914         (MonoGenericInst): Added `dynamic_info' and `is_dynamic' fields.
6915
6916         * icall.c (ves_icall_MonoGenericInst_GetMethods): New interncall.
6917         (ves_icall_MonoGenericInst_GetConstructors): New interncall.
6918         (ves_icall_MonoGenericInst_GetFields): New interncall.
6919
6920         * class.c (mono_class_from_generic): Don't call
6921         mono_class_initialize_generic() if this is a dynamic instance;
6922         ie. it's being created from a TypeBuilder.
6923         Use MONO_TYPE_GENERICINST for `class->this_arg.type' and
6924         `class->byval_arg.type'.
6925
6926         * reflection.c (mono_reflection_inflate_method_or_ctor): Renamed
6927         to `inflate_method' and made static.
6928         (mono_reflection_inflate_field): Removed.
6929         (mono_reflection_generic_inst_initialize): New public method.
6930
6931         * reflection.h (MonoReflectionGenericInst): Removed `methods',
6932         `ctors' and `fields'; added `initialized'.
6933
6934 2004-02-14  Zoltan Varga  <vargaz@freemail.hu>
6935
6936         * debug-helpers.c (mono_method_full_name): Fix output for empty
6937         namespaces.
6938
6939 2004-02-12  Martin Baulig  <martin@ximian.com>
6940
6941         * class.h (MonoClassField): Added `MonoType *generic_type'.
6942
6943         * reflection.c (mono_image_get_fieldref_token): Added support for
6944         instantiated generic types.
6945         (field_encode_inflated_field): Removed.
6946         (mono_image_get_inflated_field_token): Removed.
6947         (mono_reflection_inflate_field): Return a `MonoReflectionField *'.
6948
6949         * reflection.h (MonoReflectionInflatedField): Removed.
6950
6951 2004-02-12  Martin Baulig  <martin@ximian.com>
6952
6953         * metadata.h (MonoMethodHeader, MonoMethodSignature): Moved the
6954         `gen_method' field from MonoMethodHeader to MonoMethodSignature.
6955
6956         * reflection.c (mono_image_get_methodspec_token): Take a
6957         `MonoMethod *' instead of a `MonoReflectionInflatedMethod *'.
6958         (mono_image_create_token): Check whether we have a
6959         `method->signature->gen_method' and call
6960         mono_image_get_methodspec_token() if appropriate.
6961         (inflated_method_get_object): Removed.
6962         (mono_reflection_bind_generic_method_parameters): Return a
6963         `MonoReflectionMethod *', not a `MonoReflectionInflatedMethod *'.
6964         (mono_reflection_inflate_method_or_ctor): Likewise.
6965
6966         * reflection.h (MonoReflectionInflatedMethod): Removed.
6967
6968 2004-02-12  Zoltan Varga  <vargaz@freemail.hu>
6969
6970         * marshal.c (mono_marshal_get_native_wrapper): Implement proper support
6971         for custom valuetype marshalling.
6972
6973         * icall.c (icall_entries): Diagnostic -> Diagnostics. Fixes #54261.
6974
6975 2004-02-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
6976
6977         * icall.c: fixed WSAGetLastError_internal name.
6978
6979 2004-02-11  Zoltan Varga  <vargaz@freemail.hu>
6980
6981         * threads.c (mono_thread_attach): Allow this to be called multiple
6982         times for a thread.
6983         
6984         * threads.c (build_wait_tids): Do not wait for ourselves.
6985
6986         * threads.c (mono_thread_pop_appdomain_ref): Avoid crash if the 
6987         appdomain list is empty.
6988
6989         * marshal.c (mono_marshal_get_native_wrapper): Do not free the
6990         memory returned by mono_string_builder_to_utf16, since it points into
6991         managed memory. Thanks to Bernie Solomon for noticing this.
6992
6993         * icall.c: Add AppDomainSetup icalls.
6994
6995         * reflection.h (MonoReflectionMethodAux): Add 'param_cattr' field.
6996
6997         * reflection.c (mono_custom_attrs_from_param): Add support for dynamic
6998         types.
6999
7000         * reflection.c (reflection_methodbuilder_to_mono_method): Save
7001         custom attributes to the method_aux struct. Also fix array indexes etc.
7002
7003         * loader.c (mono_method_get_param_names): Make dynamic case work again.
7004         
7005 Tue Feb 10 17:03:04 CET 2004 Paolo Molaro <lupus@ximian.com>
7006
7007         * icall.c, loader.c: icall cleanup: we save quite a bit of memory
7008         (both static and runtime) and reduce startup time.
7009
7010 2004-02-10  Zoltan Varga  <vargaz@freemail.hu>
7011
7012         * marshal.c (mono_marshal_get_native_wrapper): Throw an exception on
7013         AsAny marshalling conversion instead of crashing.
7014
7015         * marshal.c: Fix warnings.
7016
7017 2004-02-09  Martin Baulig  <martin@ximian.com>
7018
7019         * class.h (MonoGenericMethod): Added `MonoMethod *declaring'.
7020
7021         * reflection.h (MonoReflectionInflatedMethod): Removed the
7022         `declaring' field, it's now in the unmanaged MonoGenericMethod.
7023
7024         * reflection.c (method_encode_methodspec): Removed the `method'
7025         argument; we get it from `gmethod->declaring'.
7026         (inflated_method_get_object): Removed the `declaring' argument.
7027
7028 2004-02-09  Martin Baulig  <martin@ximian.com>
7029
7030         * class.h (MonoGenericMethod): New type.
7031         (MonoGenericInst): Remove `mtype_argc', `mtype_argv' and
7032         `generic_method'.
7033
7034         * metadata.h (MonoMethodHeader): Replaced the `geninst' field with
7035         a `MonoGenericMethod *gen_method' one.
7036
7037         * class.c (mono_class_inflate_generic_type): Take an additional
7038         `MonoGenericMethod * argument.  This is only non-NULL if we're
7039         inflating types for a generic method.   
7040         (mono_class_inflate_generic_signature): Renamed to
7041         inflate_generic_signature() and made static; take a
7042         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7043         (inflate_generic_header): Take a `MonoGenericMethod *' argument
7044         instead of a `MonoGenericInst *' one.
7045         (mono_class_inflate_generic_method): Likewise.
7046
7047         * reflection.c (encode_generic_method_sig): Take a
7048         `MonoGenericMethod *' argument instead of a `MonoGenericInst *'.
7049         (method_encode_methodspec): Likewise.
7050         (inflated_method_get_object): Likewise. 
7051
7052         * reflection.h (MonoReflectionGenericInst): Replaced the `ginst'
7053         field with a `MonoGenericMethod *gmethod' one.  
7054
7055 2004-02-08  Bernie Solomon  <bernard@ugsolutions.com>
7056
7057         * class.h (mono_class_has_parent): add parens to expansion
7058         so you can ! this.
7059
7060 2004-02-08  Martin Baulig  <martin@ximian.com>
7061
7062         * image.h (MonoImage): Removed `generics_cache'.
7063
7064         * class.c (mono_class_from_generic): Take a `MonoGenericInst *'
7065         instead of a `MonoType *' argument; removed the `inflate_methods'
7066         argument.  Don't inflate methods here.
7067
7068         * loader.c (find_method): If it's a generic instance, call
7069         mono_class_init() on the `sclass->generic_inst->generic_type'.
7070
7071         * metadata.c (mono_type_size): Make this work on uninitialized
7072         generic instances; call it on the `ginst->generic_type's class.
7073
7074         * reflection.c (mono_reflection_bind_generic_parameters): Call
7075         mono_class_from_generic() to create the `ginst->klass'.
7076
7077 2004-02-08  Martin Baulig  <martin@ximian.com>
7078
7079         * class.h (MonoClass): Changed type of `generic_inst' from
7080         `MonoType *' to `MonoGenericInst *'.
7081
7082 2004-02-08  Martin Baulig  <martin@ximian.com>
7083
7084         * icall.c (ves_icall_Type_BindGenericParameters): Just call
7085         mono_type_get_object(), this is now creating a `MonoGenericInst'
7086         for MONO_TYPE_GENERICINST.
7087         (ves_icall_MonoGenericInst_GetParentType): Likewise.
7088         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.
7089
7090         * reflection.c (mono_type_get_object): Return a `MonoGenericInst'
7091         instead instead of a `MonoType' for MONO_TYPE_GENERICINST.
7092         (inflated_method_get_object): Added `MonoClass *refclass' argument.
7093         (mono_reflection_inflate_method_or_ctor): Correctly set declaring
7094         and reflected type.
7095
7096         * reflection.h (MonoReflectionInflatedMethod): Removed
7097         `declaring_type' and `reflected_type'.
7098
7099 2004-02-08  Martin Baulig  <martin@ximian.com>
7100
7101         * class.h (MonoGenericInst): Added `MonoType *parent' and
7102         `MonoType **ifaces'.
7103
7104         * reflection.h (MonoReflectionGenericInst): Removed `klass',
7105         `parent' and `interfaces'.
7106
7107         * reflection.c (mono_reflection_bind_generic_parameters): Take a
7108         `MonoType *' argument and return a `MonoType *'.
7109
7110         * icall.c
7111         (ves_icall_MonoGenericInst_GetParentType): New interncall.
7112         (ves_icall_MonoGenericInst_GetInterfaces): Likewise.    
7113
7114 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7115
7116         * marshal.c (mono_marshal_get_native_wrapper): Add support for custom
7117         valuetype marshalling.
7118
7119 2004-02-06  Martin Baulig  <martin@ximian.com>
7120
7121         * class.c
7122         (mono_class_from_generic_parameter): Added TYPE_ATTRIBUTE_PUBLIC.
7123         (my_mono_class_from_generic_parameter): Likewise.
7124
7125 2004-02-06  Zoltan Varga  <vargaz@freemail.hu>
7126
7127         * debug-mono-symfile.c debug-mono-symfile.h mono-debug.c: Read the
7128         contents of the symbol files lazily.
7129
7130         * object.h (MonoThread): Add 'name' and 'name_len' fields.
7131
7132         * threads.h threads.c icall.c: New icalls for getting and setting the
7133         threads name.
7134
7135 2004-02-05  Zoltan Varga  <vargaz@freemail.hu>
7136
7137         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRefByID): 
7138         Raise an exception when the domain is not found.
7139
7140 2004-02-03  Martin Baulig  <martin@ximian.com>
7141
7142         * reflection.c (mono_image_get_methodspec_token): Use the
7143         uninflated signature; fixes gen-33.
7144
7145 2004-02-02  Zoltan Varga  <vargaz@freemail.hu>
7146
7147         * gc.c threads.c: Make the finalizer thread a normal managed thread so
7148         the finalizer code can use thread functionality.
7149
7150         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Fix check for 
7151         the finalizer thread.
7152
7153         * threads.c: Make some functions more robust.
7154
7155         * loader.c (mono_lookup_pinvoke_call): Another attempt at fixing #22532.
7156
7157         * metadata.h: Add new marshalling conventions.
7158
7159         * marshal.c (mono_marshal_get_native_wrapper): Add support for unicode
7160         stringbuilder marshalling. Fixes #53700.
7161
7162         * reflection.h (MonoReflectionTypeBuilder): Add 'permissions' field.
7163
7164         * reflection.c (mono_image_get_type_info): Save declarative security
7165         info.
7166
7167         * reflection.c (mono_image_get_field_info): Handle uninitialized 
7168         unmanaged fields as well.
7169
7170         * appdomain.c: Bump corlib version.
7171
7172 2004-02-01  Martin Baulig  <martin@ximian.com>
7173
7174         * loader.c (method_from_methodspec): Use `ginst->mtype_argc/v' for
7175         method type arguments.  
7176
7177 2004-01-30  Duncan Mak  <duncan@ximian.com>
7178
7179         * marshal.h: Add prototype for
7180         "ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem"
7181         and
7182         "ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem" to
7183         fix the build.
7184
7185 2004-01-30  Zoltan Varga  <vargaz@freemail.hu>
7186
7187         * marshal.c (ves_icall_System_Runtime_InteropServices_Marshal_AllocCoTaskMem): New icall.
7188         (ves_icall_System_Runtime_InteropServices_Marshal_FreeCoTaskMem): New icall.
7189
7190 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7191
7192         * marshal.c (mono_marshal_get_native_wrapper): Add support for
7193         custom marshalling of valuetypes.
7194
7195         * marshal.c: Fix some warnings.
7196
7197 2004-01-29  Martin Baulig  <martin@ximian.com>
7198
7199         * class.h (MonoGenericInst): Added `mtype_argc' and `mtype_argv'
7200         for generic method parameters.
7201
7202         * reflection.c (method_encode_methodspec): Write the uninflated
7203         signature into the methodspec table.
7204         (mono_reflection_inflate_method_or_ctor): Ensure `res->declaring'
7205         is always the uninflated method.
7206         (reflection_methodbuilder_to_mono_method): Copy the generic
7207         parameters from the MethodBuilder into `header->gen_params'.
7208
7209 2004-01-29  Zoltan Varga  <vargaz@freemail.hu>
7210
7211         * class.c (mono_class_from_generic_parameter): Fix warning.
7212
7213 2004-01-27  Martin Baulig  <martin@ximian.com>
7214
7215         * class.c (mono_class_from_generic_parameter): Don't create
7216         `klass->methods' here.  
7217
7218 2004-01-26  Zoltan Varga  <vargaz@freemail.hu>
7219
7220         * loader.c (mono_lookup_pinvoke_call): Disable trimming of .dll
7221         extension since it does not work with libraries named lib<FOO>.dll.so.
7222
7223 2004-01-25  Martin Baulig  <martin@ximian.com>
7224
7225         * class.c (mono_class_inflate_generic_type): Added support for
7226         MONO_TYPE_GENERICINST.
7227
7228         * reflection.c (mono_reflection_inflate_method_or_ctor): Also
7229         inflate methods on open constructed types.      
7230
7231 2004-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7232
7233         * object.c: fire ProcessExit event in the root AppDomain after running
7234         Main. Fixes bug #53299.
7235
7236 Fri Jan 23 21:27:40 CET 2004 Paolo Molaro <lupus@ximian.com>
7237
7238         * socket-io.c: include the new socket-wrappers.h header.
7239         Use the wrappers instead of the unix socket functions to make the code
7240         more clear.
7241
7242 2004-01-23  Zoltan Varga  <vargaz@freemail.hu>
7243
7244         * profiler.c (merge_methods): Fix merging of profile info. Fixes #53010.
7245
7246         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7247         Fixes #22532.
7248
7249 2004-01-22  Zoltan Varga  <vargaz@freemail.hu>
7250
7251         * reflection.c (mono_image_create_pefile): Handle the case when the
7252         entry point is not a MethodBuilder.
7253
7254         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7255         field to ReflectionMethod since it is not allways a builder.
7256
7257         * reflection.c (type_get_fully_qualified_name): New helper function to
7258         return the fully qualified name of a type.
7259
7260         * reflection.c (encode_marshal_blob): Always emit the fully qualified
7261         type name for custom marshallers.
7262
7263         * reflection.c (mono_marshal_spec_from_builder): Ditto.
7264
7265         * class.c (mono_class_setup_vtable): If a parent class already 
7266         implements an interface, use the implementing methods from that class.
7267         Fixes #53148.
7268
7269 2004-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7270
7271         * threadpool.c: just return instead of ExitThread to allow for thread
7272         clean up earlier.
7273
7274 2004-01-21  Zoltan Varga  <vargaz@freemail.hu>
7275
7276         * icall.c (ves_icall_System_Reflection_Module_Close): Prevent assertion
7277         when closing resource modules.
7278
7279         * reflection.c (mono_image_create_pefile): Handle the case when the
7280         entry point is not a MethodBuilder.
7281
7282         * reflection.h (MonoReflectionAssemblyBuilder): Change 'entry_point'
7283         field to ReflectionMethod since it is not allways a builder.
7284
7285 2004-01-20  Bernie Solomon  <bernard@ugsolutions.com>
7286
7287         * marshal.c (mono_marshal_get_managed_wrapper): 
7288         mono_marshal_alloc takes native int so CONV_I
7289         the arg for 64bits.
7290
7291 2004-01-20  Zoltan Varga  <vargaz@freemail.hu>
7292
7293         * reflection.c (fixup_cattrs): New function to fixup the methoddef
7294         tokens in the cattr table. Fixes #53108.
7295
7296 2004-01-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7297
7298         * loader.c: don't trim ".dll" before looking up in the config file.
7299         Don't leak orig_scope. Reopened bug #22532 in the meanwhile.
7300
7301 2004-01-19  Zoltan Varga  <vargaz@freemail.hu>
7302
7303         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): 
7304         Return the module which contains the resource as well.
7305         (ves_icall_System_Reflection_Module_Close): New icall.
7306
7307         * appdomain.c: Bump corlib version number.
7308
7309         * image.c (mono_image_addref): New public function.
7310
7311         * assembly.c: Call mono_image_addref.
7312
7313         * reflection.c (mono_module_get_object): Increase reference count of 
7314         the image.
7315
7316         * loader.c (mono_lookup_pinvoke_call): Strip .dll from library names.
7317         Fixes #22532.
7318
7319         * exception.h exception.c loader.h loader.c icall.c marshal.h marshal.c:
7320         Applied patch from Bernie Solomon  <bernard@ugsolutions.com>. Throw
7321         proper exceptions on DllImport problems.
7322
7323 Mon Jan 19 17:50:27 CET 2004 Paolo Molaro <lupus@ximian.com>
7324
7325         * class.c, metadata.c: eliminate CSIZE macro.
7326
7327 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
7328
7329         * icall.c: Added ves_icall_type_IsInstanceOf internal call.
7330         * object.h: Added async_callback field in MonoAsyncResult.
7331         * marshal.c: In mono_delegate_begin_invoke, set the value of async_callback.
7332         * verify.c: Added async_callback in MonoAsyncResult layout.
7333
7334 2004-01-17  Zoltan Varga  <vargaz@freemail.hu>
7335
7336         * reflection.c (mono_reflection_get_custom_attrs): Add support
7337         for Modules.
7338
7339 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7340
7341         * marshal.c (mono_string_builder_to_utf8): Fix stringbuilder 
7342         marshalling.
7343         (mono_marshal_method_from_wrapper): Add null pointer check.
7344
7345 2004-01-16  Martin Baulig  <martin@ximian.com>
7346
7347         * debug-mono-symfile.h: Set version number to 36 and reflect
7348         latest symbol writer changes.
7349
7350 2004-01-16  Zoltan Varga  <vargaz@freemail.hu>
7351
7352         * class.c (mono_bounded_array_class_get): Set 'bounded' to FALSE for
7353         multi-dimensional arrays.
7354         (mono_class_is_assignable_from): Check vectors<->one dim. arrays.
7355         (mono_class_from_mono_type): Use bounded_array_class_get.
7356         
7357         * class.c (mono_bounded_array_class_get): New function which takes
7358         a 'bounded' bool argument to distinguish vectors from one dimensional
7359         arrays.
7360
7361         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Call 
7362         bounded_array_class_get if the array has bounds.
7363
7364         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7365         Search modules loaded using AssemblyBuilder:AddModule as well.
7366
7367 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7368
7369         * appdomain.c: increased corlib version.
7370         * filewatcher.c: removed g_print.
7371         * icall.c:
7372         (get_property_info): only allocate what is actually requested.
7373         (ves_icall_Type_GetInterfaces): free the bitset in case of early error.
7374
7375 2004-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7376
7377         * Makefile.am: added filewatcher.[ch]
7378         * filewatcher.[ch]: FileSystemWatcher runtime support.
7379         * icall.c: added new FSW icalls.
7380
7381 Tue Jan 13 20:03:17 CET 2004 Paolo Molaro <lupus@ximian.com>
7382
7383         * string-icalls.c: fix stringbuilder regression as suggested by
7384         Iain McCoy <iain@mccoy.id.au>.
7385
7386 2004-01-13  Zoltan Varga  <vargaz@freemail.hu>
7387
7388         * process.c (process_read_stringtable_block): Recognize '007f' as
7389         a language neutral stringtable block.
7390
7391 2004-01-12  Patrik Torstensson
7392
7393         * object.h (MonoStringBuilder) : Changed layout to support our
7394         new stringbuilder class.
7395         * marshal.c: Change marshalling to support the new layout of 
7396         string builder.
7397         * appdomain.c: increased version number because new layout of
7398         string builder.
7399
7400 2004-01-12  Zoltan Varga  <vargaz@freemail.hu>
7401
7402         * appdomain.c (ves_icall_System_AppDomain_LoadAssembly): Receive the
7403         assembly name as an string instead of an AssemblyName, since it is
7404         easier to extract info from it.
7405
7406         * appdomain.c (mono_domain_assembly_preload): Look for assemblies in
7407         the culture subdirectories too. Fixes #52231.
7408
7409 2004-01-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7410
7411         * icall.c: renamed ves_icall_Type_GetMethods to GetMethodsByName.
7412         It takes 2 new parameters with an optional name for the method to look
7413         for and case ignoring info.
7414
7415         * threadpool.c: removed unused variable.
7416
7417 2004-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7418
7419         * icall.c: renamed ves_icall_Type_GetProperties to GetPropertiesByName.
7420         It takes 2 new parameters with an optional name for the property to look
7421         for and case ignoring info.
7422         Fixes bug #52753.
7423
7424 2004-01-09  Zoltan Varga  <vargaz@freemail.hu>
7425
7426         * reflection.c: Applied patch from Benjamin Jemlich (pcgod@gmx.net).
7427         Fix #52451.
7428
7429 2004-01-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7430
7431         * appdomain.c:
7432         * assembly.c: escape the uri before passing it to g_filename_from_uri.
7433         Fixes bug #52630.
7434
7435 2004-01-07  Zoltan Varga  <vargaz@freemail.hu>
7436
7437         * reflection.c: Add support for more than one unmanaged resource.
7438
7439         * icall.c (ves_icall_get_enum_info): Store the value of the enum fields
7440         in field->def_value, as done in all other cases.
7441
7442         * reflection.c (mono_reflection_get_custom_attrs): Add support for
7443         TypeBuilders.
7444
7445         * reflection.c (mono_reflection_create_runtime_class): Remove 
7446         errorneous assignment to klass->element_class, since it is already
7447         done in mono_reflection_setup_internal_class.
7448
7449 2004-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7450
7451         * gc.c: added missing LeaveCriticalSection.
7452         * icall.c: indented a couple of lines.
7453         * threadpool.c: remove dangling LeaveCriticalSection. Don't wait forever
7454         if we call EndInvoke inside a callback. Fixes bug #52601.
7455
7456 2004-01-07  Martin Baulig  <martin@ximian.com>
7457
7458         * mono-debug-debugger.h
7459         (MonoDebuggerIOLayer): Added `GetCurrentThreadID'.
7460
7461 2004-01-06  Miguel de Icaza  <miguel@ximian.com>
7462
7463         * appdomain.c: Use messages in NotImplementedException.
7464
7465         * exception.c (mono_get_exception_not_implemented): Now this takes
7466         a message argument.
7467
7468         * marshal.c (emit_str_to_ptr_conv): g_warning and throw an
7469         exception instead of g_asserting an aborting when something is not
7470         implemented.
7471
7472         Add some inline docs.
7473
7474 2004-01-05  Zoltan Varga  <vargaz@freemail.hu>
7475
7476         * reflection.h: Update after changes to object layout.
7477
7478         * reflection.c: Implement saving of unmanaged aka win32 resources.
7479
7480         * appdomain.c: Bump version number.
7481
7482         * appdomain.c (ves_icall_System_AppDomain_InternalSetDomainByID): 
7483         Handle missing domains gracefully.
7484
7485 2004-01-05  Atsushi Enomoto <atsushi@ximian.com>
7486
7487         * file-io.c : On Windows, there are much more invalid_path_chars.
7488
7489 Fri Jan 2 13:35:48 CET 2004 Paolo Molaro <lupus@ximian.com>
7490
7491         * class.h, object.c: prepare for GetType () speedup.
7492
7493 2003-12-24  Atsushi Enomoto <atsushi@ximian.com>
7494
7495         * profiler.c: workaround for --profile null reference exception on
7496           cygwin. Patch by Patrik Torstensson.
7497
7498 2003-12-22  Bernie Solomon  <bernard@ugsolutions.com>
7499
7500         * marshal.c: (ves_icall_System_Runtime_InteropServices_Marshal_Read/WriteXXX)
7501         make work for unaligned access.
7502
7503 Mon Dec 22 18:37:02 CET 2003 Paolo Molaro <lupus@ximian.com>
7504
7505         * class.c: small cleanup (class->fields [i] -> field).
7506         * image.c: check address of metadata is valid.
7507
7508 2003-12-22  Zoltan Varga  <vargaz@freemail.hu>
7509
7510         * assembly.h assembly.c (mono_assembly_loaded): New public function to
7511         search the list of loaded assemblies.
7512
7513         * reflection.c (mono_reflection_type_from_name): Use 
7514         mono_assembly_loaded instead of mono_image_loaded.
7515
7516         * reflection.c: Fix warnings.
7517
7518 2003-12-20  Zoltan Varga  <vargaz@freemail.hu>
7519
7520         * image.h (MonoImage): Add a new 'dynamic' field to denote that the image 
7521         is dynamic. This is needed since an assembly can contain both dynamic and
7522         non-dynamic images.
7523
7524         * class.c loader.c metadata.c object.c: Use image->dynamic instead of 
7525         assembly->dynamic.
7526
7527         * icall.c reflection.c: Add new AssemblyBuilder:AddModule icall.
7528
7529         * reflection.h (MonoReflectionAssemblyBuilder): Add 'loaded_modules' field
7530         to store modules loaded using AddModule.
7531
7532         * reflection.c (mono_image_fill_file_table): Generalize this so it works
7533         on Modules.
7534
7535         * reflection.c (mono_image_fill_export_table_from_class): New helper function.
7536
7537         * reflection.c (mono_image_fill_export_table_from_module): New function to
7538         fill out the EXPORTEDTYPES table from a module.
7539
7540         * reflection.c (mono_image_emit_manifest): Refactor manifest creation code
7541         into a separate function. Also handle loaded non-dynamic modules.
7542
7543         * reflection.c (mono_image_basic_init): Fix memory allocation.
7544
7545         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7546
7547         * assembly.c (mono_assembly_load_references): Make this public.
7548
7549 2003-12-19  Martin Baulig  <martin@ximian.com>
7550
7551         * class.c (mono_class_initialize_generic): Made this static, take
7552         a `MonoGenericInst *' instead of a `MonoClass *'.
7553         (mono_class_from_generic): Call mono_class_initialize_generic()
7554         unless we're already initialized or being called from
7555         do_mono_metadata_parse_generic_inst().
7556
7557         * class.h (MonoGenericInst): Added `initialized' and
7558         `init_pending' flags.
7559
7560         * metadata.c (do_mono_metadata_parse_generic_inst): Don't call
7561         `mono_class_init (gklass)' or mono_class_initialize_generic()
7562         here; set `generic_inst->init_pending' while parsing the
7563         `type_argv'.
7564
7565 2003-12-19  Bernie Solomon  <bernard@ugsolutions.com>
7566
7567         * locales.c: include string.h for memxxx prototypes
7568
7569 2003-12-19  Zoltan Varga  <vargaz@freemail.hu>
7570
7571         * icall.c (ves_icall_MonoField_GetValueInternal): Do not run the class
7572         constructor when accessing literal fields.
7573
7574 2003-12-17  Zoltan Varga  <vargaz@freemail.hu>
7575
7576         * appdomain.c (MONO_CORLIB_VERSION): Bump corlib version.
7577
7578         * reflection.c (assembly_add_resource_manifest): New function to fill
7579         the MANIFESTRESOURCE table.
7580
7581         * reflection.c (mono_image_build_metadata): Emit MANIFESTRESOURCE table.
7582
7583         * reflection.h: Update to changes in class layout.
7584
7585         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): 
7586         Reenable call to mono_runtime_is_shutting_down ().
7587
7588         * appdomain.c (mono_runtime_is_shutting_down): New helper function to
7589         determine if the runtime is shutting down.
7590
7591 2003-12-16  Jackson Harper <jackson@ximian.com>
7592
7593         * icall.c: comment out call to mono_runtime_is_shutting_down to
7594         fix build.
7595         
7596 2003-12-16  Zoltan Varga  <vargaz@freemail.hu>
7597
7598         * icall.c (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal): Add support for loading resources from modules.
7599         (ves_icall_System_Environment_get_HasShutdownStarted): New icall.
7600
7601 2003-12-15  Bernie Solomon  <bernard@ugsolutions.com>
7602
7603         * reflection.c: move definition of swap_with_size
7604         to before its first call
7605
7606 2003-12-15  Zoltan Varga  <vargaz@freemail.hu>
7607
7608         * appdomain.c (mono_runtime_is_shutting_down): New public function.
7609
7610         * icall.c (ves_icall_System_Environment_get_HasShutdownStarted): New
7611         icall.
7612
7613         * object.c: Fix warnings.
7614
7615         * icall.c (ves_icall_Type_Get...): Only consider inherited static
7616         members if FlattenHierarchy is set.
7617
7618         * reflection.c (mono_image_add_decl_security): New function to emit
7619         declarative security.
7620
7621         * reflection.h reflection.c: Add support for declarative security.
7622
7623         * appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7624         
7625 2003-12-13  Zoltan Varga  <vargaz@freemail.hu>
7626
7627         appdomain.c (MONO_CORLIB_VERSION): Bump version number.
7628         
7629         * appdomain.c verify.c: Moved corlib version checking into its own
7630         function in appdomain.c since it needs to create vtables etc.
7631
7632 2003-12-13  Patrik Torstensson <p@rxc.se>
7633
7634         * marshal.c (mono_remoting_wrapper): Fix bug 48015, using TP as this 
7635         instead of unwrapped server.
7636
7637 2003-12-12  Zoltan Varga  <vargaz@freemail.hu>
7638
7639         * verify.c (check_corlib): Fix field index.
7640
7641 2003-12-10  Zoltan Varga  <vargaz@freemail.hu>
7642
7643         * icall.c: Applied patch from Todd Berman (tbermann@gentoo.org). New
7644         GetGacPath icall.
7645
7646 2003-12-10  Bernie Solomon  <bernard@ugsolutions.com>
7647
7648         * process.c:  (ves_icall_System_Diagnostics_Process_GetWorkingSet_internal
7649         ves_icall_System_Diagnostics_Process_SetWorkingSet_internal):
7650         cope with sizeof(size_t) != sizeof(guint32).
7651
7652 2003-12-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7653
7654         * process.[ch]: the 'pid' field in MonoProcInfo stores GetLastError
7655         in case of failure.
7656
7657 2003-12-10  Mark Crichton <crichton@gimp.org>
7658
7659         * icall.c: removed the GetNonZeroBytes.  We now handle this case
7660         in managed code.
7661
7662         * rand.c, rand.h: Same here.  Also cleaned up the clode slightly.
7663
7664 Tue Dec 9 15:36:18 CET 2003 Paolo Molaro <lupus@ximian.com>
7665
7666         * class.h, class.c, icall.c, marshal.c, object.c: ignore fields
7667         marked as deleted.
7668
7669 2003-12-09  Zoltan Varga  <vargaz@freemail.hu>
7670
7671         * verify.c (check_corlib): Handle the case when the version field is 
7672         initialized by a static constructor.
7673
7674 2003-12-08  Patrik Torstensson  <p@rxc.se>
7675
7676     * rand.c (InternalGetBytes): Implemented win32 version with cryptapi
7677
7678 2003-12-08  Martin Baulig  <martin@ximian.com>
7679
7680         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Return
7681         a MonoReflectionGenericParameter, also take the parameter index
7682         and name as arguments.
7683         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.
7684         (ves_icall_MonoGenericParam_initialize): New interncall.
7685         (ves_icall_Type_make_byref_type): New interncall.
7686
7687         * reflection.h (MonoReflectionGenericParam): Derive from
7688         MonoReflectionType, not just from MonoObject.  Added `refobj' and
7689         `index' fields.
7690
7691         * reflection.c (mono_reflection_define_generic_parameter): Create
7692         and return a new MonoReflectionGenericParam; don't initialize the
7693         constraints here.
7694         (mono_reflection_initialize_generic_parameter): New public method;
7695         initializes the constraints and creates the `param->pklass'.
7696
7697 2003-12-08  Zoltan Varga  <vargaz@freemail.hu>
7698
7699         * reflection.h reflection.c: Use the new fields 'num_types', 
7700         'num_fields' and 'num_methods' to track the number of types etc.
7701
7702         * verify.c (check_corlib): Check corlib version number.
7703
7704 2003-12-07  Zoltan Varga  <vargaz@freemail.hu>
7705
7706         * marshal.c (mono_marshal_method_from_wrapper): Remove assert so this
7707         function works on all methods.
7708
7709 2003-12-07  Lluis Sanchez Gual  <lluis@ximian.com>
7710
7711         * domain.c, loader.h: Added IRemotingTypeInfo interface in MonoDefaults.
7712         * icall.c: in, ves_icall_Remoting_RealProxy_GetTransparentProxy set
7713         the custom_type_info flag of the transparent proxy.
7714         * object.c: Added method mono_object_isinst_mbyref for casting mbyref
7715         objects that supports IRemotingTypeInfo.
7716         * object.h: Added custom_type_info field in transparent proxy.
7717
7718 2003-12-06  Martin Baulig  <martin@ximian.com>
7719
7720         * class.c (mono_class_create_from_generic): Removed.
7721         (mono_class_from_generic): Check `ginst->klass' before doing
7722         anything else.  This is important to fully support "recursive"
7723         generic types.
7724
7725         * metadata.c (do_mono_metadata_parse_generic_inst): Create an
7726         empty `generic_inst->klass' before doing anything else.
7727
7728 2003-12-06  Dick Porter  <dick@ximian.com>
7729
7730         * verify.c: 
7731         * object.h:
7732         * icall.c:
7733         * locales.c: Use C structs to access class fields.  Don't do a
7734         conversion between MonoString and UChar because both are
7735         platform-endian UTF-16.  Compare now takes startindex and count
7736         parameters.  Add a char overload for IndexOf.  Speed up the
7737         invariant string IndexOf.
7738
7739 2003-12-05  Zoltan Varga  <vargaz@freemail.hu>
7740
7741         * Makefile.am (monosn_LDADD): Fix parallel build.
7742
7743 2003-12-04  Martin Baulig  <martin@ximian.com>
7744
7745         * icall.c
7746         (ves_icall_type_GetTypeCode): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
7747         (ves_icall_Type_make_array_type): New interncall.       
7748
7749 2003-12-04  Martin Baulig  <martin@ximian.com>
7750
7751         * locales.c: also change it in the !HAVE_ICU case.
7752
7753 2003-12-04  Dick Porter  <dick@ximian.com>
7754
7755         * icall.c:
7756         * locales.c: construct_compareinfo is now in CompareInfo, not
7757         CultureInfo.
7758
7759 2003-12-04  Zoltan Varga  <vargaz@freemail.hu>
7760
7761         * image.c (mono_image_load_file_for_image): Cache loaded images in the
7762         image->files array.
7763
7764         * image.c (load_class_name): Load class names from the EXPORTEDTYPES
7765         table as well.
7766
7767         * assembly.c (mono_assembly_load_references): Only load references
7768         once.
7769
7770         * class.c (mono_class_from_name): Avoid linear search of the 
7771         EXPORTEDTYPE table.
7772
7773         * loader.c (mono_field_from_token): Cache lookups of fieldrefs as well.
7774
7775 2003-12-03  Zoltan Varga  <vargaz@freemail.hu>
7776
7777         * image.h (MonoImage): Add 'field_cache' field.
7778
7779         * loader.c (mono_field_from_token): Cache field lookups.
7780         
7781         * reflection.c (mono_module_get_object): Fix name property.
7782
7783         * icall.c (ves_icall_get_enum_info): Update after changes to 
7784         mono_metadata_get_constant_index ().
7785
7786         * icall.c: Get rid of get_type_info icall, use a separate icall for
7787         each type property to avoid needless memory allocations. Fixes #51514.
7788
7789         * metadata.c (mono_metadata_get_constant_index): Add a 'hint' parameter
7790         to avoid needless binary searches.
7791
7792         * class.c (class_compute_field_layout): Move the initialization of
7793         field->def_value to mono_class_vtable ().
7794
7795         * class.c (mono_class_layout_fields): Enable GC aware auto layout for
7796         non-corlib types.
7797
7798         * object.c (mono_object_allocate): Make it inline.
7799
7800         * object.c (mono_object_allocate_spec): Make it inline.
7801         
7802 2003-12-02  Dick Porter  <dick@ximian.com>
7803
7804         * locales.c (create_NumberFormat): NumberFormatInfo construction.
7805         Patch by Mohammad DAMT (mdamt@cdl2000.com).
7806
7807 2003-12-01  Dick Porter  <dick@ximian.com>
7808
7809         * threads.c: Fix signature and call in CreateMutex and
7810         CreateEvent.
7811
7812 2003-12-01  Dick Porter  <dick@ximian.com>
7813
7814         * icall.c: 
7815         * locales.c: Implement string compares and searching
7816
7817         * object.h: Add extra Thread field
7818
7819 2003-11-30  Zoltan Varga  <vargaz@freemail.hu>
7820
7821         * reflection.c (fixup_method): Add support for MonoCMethod.
7822
7823 2003-11-28  Zoltan Varga  <vargaz@freemail.hu>
7824
7825         * gc.c: Fix hangs and error messages when GC_DONT_GC is set.
7826
7827         * reflection.c (assembly_name_to_aname): Allow extra characters in
7828         assembly names. Fixes #51468.
7829
7830 2003-11-26  Zoltan Varga  <vargaz@freemail.hu>
7831
7832         * exception.c (mono_exception_from_name_domain): New helper function.
7833
7834         * appdomain.c (ves_icall_System_AppDomain_createDomain): Create the
7835         exception object in the correct domain.
7836
7837         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix 
7838         formatting + make a copy a the input data.
7839
7840         * loader.c (mono_get_method_from_token): Methods which contain
7841         native code do not have entries in the ImplMap.
7842
7843         (ves_icall_System_AppDomain_LoadAssemblyRaw): Fix exception throw.
7844         Thanks to Gonzalo for spotting this.
7845         
7846         * appdomain.c (ves_icall_System_AppDomain_LoadAssemblyRaw): Applied
7847         patch from ztashev@openlinksw.co.uk (Zdravko Tashev). New icall.
7848
7849         * assembly.h (mono_assembly_load_from): Split the second part of 
7850         assembly loading into a new public function.
7851
7852         * exception.h (mono_get_exception_bad_image_format): New function.
7853
7854 2003-11-24  Zoltan Varga  <vargaz@freemail.hu>
7855
7856         icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
7857         Enumerate all modules inside a dynamic assembly. Fixes #51293.
7858         
7859         * icall.c: Add new icall for creating dynamic methods.
7860
7861         * loader.h debug-helpers.c: Add new wrapper type for dynamic methods.
7862
7863         * reflection.h (MonoReflectionDynamicMethod): Fix type of bool fields.
7864
7865         * reflection.c (mono_reflection_create_dynamic_method): New icall to
7866         create a dynamic method.
7867
7868         * reflection.c (resolve_object): New helper function.
7869
7870         * reflection.c: Generalize ReflectionMethodBuilder and the functions
7871         which manipulate it so they can also work on dynamic methods.
7872
7873         * reflection.c (reflection_method_builder_to_mono_method): Avoid 
7874         creating the MonoReflectionMethodAux structure if it is not needed.
7875         
7876         * reflection.h verify.c: Update after changes to object layout.
7877
7878         * reflection.c (method_builder_encode_signature): Fix compilation on
7879         gcc 2.95.x.
7880
7881 2003-11-21  Lluis Sanchez Gual  <lluis@ximian.com>
7882
7883         * appdomain.h: Added support for context static fields. Added static_data
7884           field to MonoAppContext and renamed thread_static_fields to a more
7885           generic special_static_fields in MonoAppDomain, since it can now contain
7886           context static fields.
7887         * domain.c: Updated hashtable name.
7888         * object.c: Replaced field_is_thread_static() for a more generic
7889           field_is_special_static() which also checks for context static attribute.
7890           In mono_class_vtable(), added support for static context fields.
7891         * threads.c: Changed methods that manage thread static fields to more
7892           generic methods so they can be reused both for thread and context static
7893           data.
7894         * threads.h: Declared some new methods.
7895
7896 2003-11-21  Zoltan Varga  <vargaz@freemail.hu>
7897
7898         * reflection.h: Update after changes to the managed types.
7899
7900         * reflection.c (encode_custom_modifiers): New helper function.
7901
7902         * reflection.c (method_encode_signature): Emit custom modifiers.
7903
7904         * reflection.c (field_encode_signature): Emit custom modifiers.
7905
7906 2003-11-18  Zoltan Varga  <vargaz@freemail.hu>
7907
7908         * reflection.h (MonoReflectionAssemblyName): Applied patch from Laurent Morichetti (l_m@pacbell.net). Fix type of 'flags' field.
7909
7910         * icall.c (ves_icall_System_ValueType_Equals): New optimized 
7911         implementation.
7912
7913         * icall.c (ves_icall_System_ValueType_InternalGetHashCode): New 
7914         icall.
7915
7916         * object.c (mono_field_get_value_object): New function.
7917
7918         * object.c appdomain.h appdomain.c: Make out_of_memory_ex domain
7919         specific.
7920
7921 2003-11-17  Zoltan Varga  <vargaz@freemail.hu>
7922
7923         * appdomain.c (mono_runtime_get_out_of_memory_ex): New function to
7924         return a preallocated out-of-memory exception instance.
7925
7926         * object.c (out_of_memory): Use the new function.
7927
7928         * metadata.c (mono_metadata_parse_type): Handle the case when the byref
7929         flag is before the custom modifiers. Fixes #49802.
7930
7931 2003-11-16  Martin Baulig  <martin@ximian.com>
7932
7933         * class.c (mono_class_is_open_constructed_type): Implemented the
7934         MONO_TYPE_GENERICINST case.
7935
7936 2003-11-16  Zoltan Varga  <vargaz@freemail.hu>
7937
7938         * assembly.c (mono_assembly_fill_assembly_name): New function to
7939         fill out the MonoAssemblyName structure.
7940         (mono_assembly_open): Use the new function.
7941
7942         * icall.c (fill_reflection_assembly_name): New helper function.
7943
7944         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Use the
7945         new function.
7946
7947         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetAssemblyName): New icall.
7948
7949 2003-11-15  Martin Baulig  <martin@ximian.com>
7950
7951         * class.c (mono_class_is_open_constructed_type): New public
7952         function; checks whether a type is an open constructed type,
7953         ie. whether it still contains type parameters.
7954         (mono_class_inflate_generic_type): If we're a type parameter and
7955         the inflated type is also a MONO_TYPE_(M)VAR, return the original
7956         type.
7957
7958         * class.h (MonoGenericInst): Added `guint32 is_open'.
7959
7960         * loader.c (method_from_methodspec): Check whether we're an open
7961         or closed constructed type and set `ginst->is_open'.
7962
7963         * reflection.c (mono_reflection_bind_generic_parameters): Check
7964         whether we're an open or closed constructed type and set
7965         `ginst->is_open'.
7966         (mono_reflection_inflate_method_or_ctor): Don't inflate methods
7967         from open constructed types.
7968
7969 2003-11-15  Martin Baulig  <martin@ximian.com>
7970
7971         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7972         a generic instance (instead of a generic type declaration) with
7973         unbound generic parameters, bind them to our actual types.
7974
7975 2003-11-14  Martin Baulig  <martin@ximian.com>
7976
7977         * reflection.h (MonoReflectionGenericInst): Added `MonoArray *interfaces'.
7978
7979         * reflection.c (mono_reflection_bind_generic_parameters): If we're
7980         an interface type, populate `res->interfaces' with instantiated
7981         versions of all the interfaces we inherit.
7982
7983 2003-11-13  Aleksey Demakov  <avd@openlinksw.com>
7984
7985         * assembly.c (mono_assembly_load): Fixed problem finding mscorlib.dll
7986         when MONO_PATH is set but doesn't contain the install dir.
7987
7988 2003-11-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
7989
7990         * icall.c:
7991         (ves_icall_Type_GetInterfaces): don't return an interface twice when
7992         it's also implemented in base classes. Fixes bug #50927.
7993
7994 2003-11-13  Zoltan Varga  <vargaz@freemail.hu>
7995
7996         * gc.c (ves_icall_System_GC_WaitForPendingFinalizers): Avoid deadlocks
7997         if this method is called from a finalizer. Fixes #50913.
7998
7999 2003-11-12  Miguel de Icaza  <miguel@ximian.com>
8000
8001         * threads.c: Implement VolatileRead/VolatileWrite
8002
8003         * icall.c: Add new icalls for VolatileRead/VolatileWrite
8004
8005 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8006
8007         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Applied 
8008         patch from Danilo Sagan (dsegan@gmx.net). Fix compilation under gcc
8009         2.95.3.
8010
8011         * assembly.c (mono_assembly_open): Fix windows build. Applied patch 
8012         from Peter Ross (pro@missioncriticalit.com).
8013         
8014 2003-11-12  Lluis Sanchez Gual  <lluis@ximian.com>
8015
8016         * icall.c: Added internal call for System.Environment::GetMachineConfigPath
8017
8018 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8019
8020         * assembly.c (mono_assembly_load_references): Disable check because it
8021         triggers on older corlibs which lots of people have.
8022
8023 2003-11-12  Jackson Harper  <jackson@ximian.com>
8024
8025         * assembly.c: Change corlib name to mscorlib. Add a temp. hack to
8026         load corlib.dll if mscorlib.dll is not found.
8027         * assembly.h: Remove corlib name define.
8028         * class.c:
8029         * domain.c:
8030         * image.c: Change corlib name to mscorlib.
8031         
8032 2003-11-12  Zoltan Varga  <vargaz@freemail.hu>
8033
8034         * debug-mono-symfile.c: Add patch from FreeBSD ports tree.
8035
8036 2003-11-11  Miguel de Icaza  <miguel@ximian.com>
8037
8038         * appdomain.h: Added loader_optimization here to sync with the C#
8039         code, and add disallow_binding_redirects field.
8040
8041 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8042
8043         * mono-debug.c (mono_debug_add_method): Ignore unknown modules.
8044
8045         * reflection.c (mono_image_build_metadata): Fix crash on modules
8046         with no types.
8047
8048         * reflection.h (MonoMethodInfo): Track changes to the managed structure.
8049
8050         * icall.c (ves_icall_get_method_info): Return callingConvention as
8051         well.
8052
8053         * icall.c (ves_icall_System_Reflection_Assembly_GetNamespaces): Add 
8054         namespaces from the EXPORTEDTYPE table as well.
8055
8056         * icall.c (ves_icall_System_Reflection_Assembly_GetTypes): Merge types
8057         from all modules inside the assembly.
8058         
8059 2003-11-11  Martin Baulig  <martin@ximian.com>
8060
8061         * reflection.c (mono_reflection_bind_generic_parameters): Make
8062         this work for interfaces.
8063
8064 2003-11-11  Martin Baulig  <martin@ximian.com>
8065
8066         * mono-debug.c (mono_debug_add_type): Ignore unknown modules.
8067
8068 2003-11-11  Martin Baulig  <martin@ximian.com>
8069
8070         * reflection.c (mono_reflection_inflate_method_or_ctor): Allow
8071         "MonoInflatedMethod" and "MonoInflatedCtor".
8072
8073 2003-11-11  Zoltan Varga  <vargaz@freemail.hu>
8074
8075         * reflection.c (resolution_scope_from_image): Use the assembly table
8076         from the manifest module, since other modules don't have it.
8077
8078         * debug-helpers.c (mono_type_full_name): New helper function.
8079
8080         * image.h (MonoAssembly): Change 'dynamic' to a boolean.
8081
8082         * image.c (mono_image_load_file_for_image): New public function which
8083         is a replacement for the load_file_for_image in class.c.
8084
8085         * assembly.c (mono_assembly_load_module): A wrapper for the function
8086         above which does assembly association and reference loading too.
8087
8088         * class.c (mono_class_from_name): Call mono_assembly_load_module.
8089
8090 2003-11-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8091
8092         * appdomain.c: not all of the attributes for the full assembly name
8093         are required and the order doesn't matter. Fixes bug #50787.
8094
8095 2003-11-10  Dick Porter  <dick@ximian.com>
8096
8097         * locales.c: Use platform-endian UTF16
8098
8099 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8100
8101         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8102         
8103 2003-11-10  Martin Baulig  <martin@ximian.com>
8104
8105         * metadata.c
8106         (mono_metadata_load_generic_params): Make this actually work.
8107
8108         * reflection.c (mono_reflection_bind_generic_parameters): If our
8109         parent is a generic instance, pass all the `types' to it, no
8110         matter whether it has the same number of type parameters or not.
8111
8112 2003-11-10  Zoltan Varga  <vargaz@freemail.hu>
8113
8114         * reflection.c: Emit FILE and EXPORTEDTYPE tables.
8115
8116         * assembly.c (mono_assembly_load_references): Move the image<->assembly
8117         assignment code to this function so it gets called recursively for all
8118         modules.
8119
8120         * image.c (load_modules): Remove the assembly assignment since it is
8121         now done by mono_assembly_load_references.
8122         
8123         * icall.c (ves_icall_System_Reflection_Assembly_InternalGetType): 
8124         Add 'module' argument.
8125         (mono_module_get_types): New helper function.
8126         (ves_icall_System_Reflection_Module_InternalGetTypes): New icall.
8127
8128 2003-11-08  Martin Baulig  <martin@ximian.com>
8129
8130         * class.c (mono_class_inflate_generic_method): Interface method
8131         don't have a header.
8132
8133         * reflection.c (mono_image_get_methodspec_token): Take an
8134         additional `MonoGenericInst *' argument instead of reading it from
8135         the header; this is necessary to support interfaces.
8136         (mono_image_create_token): Pass the `MonoGenericInst *' from the
8137         MonoReflectionInflatedMethod to mono_image_get_methodspec_token().
8138         (inflated_method_get_object): Take an additional `MonoGenericInst *'
8139         argument.
8140
8141         * reflection.h (MonoReflectionInflatedMethod): Added
8142         `MonoGenericInst *ginst'.
8143
8144 2003-11-07  Zoltan Varga  <vargaz@freemail.hu>
8145
8146         * gc.c (mono_domain_finalize): Fix compilation for no GC case.
8147
8148 2003-11-06  Zoltan Varga  <zovarga@ws-zovarga2>
8149
8150         * appdomain.c (mono_domain_unload): Add a workaround for bug #27663.
8151
8152 2003-11-06  Zoltan Varga  <vargaz@freemail.hu>
8153
8154         * reflection.c 
8155         (reflection_methodbuilder_from_method_builder):
8156         (reflection_methodbuilder_from_ctor_builder): New helper functions to 
8157         initialize a ReflectionMethodBuilder structure.
8158         (mono_image_get_methodbuilder_token):
8159         (mono_image_get_ctorbuilder_token): New functions to emit memberref
8160         tokens which point to types in another module inside the same assembly.
8161
8162         * reflection.c: Use the new helper functions.
8163         
8164         * reflection.c (mono_image_basic_init): Initialize basedir and culture.
8165
8166         * icall.c loader.c reflection.c: Use ModuleBuilder->dynamic_image 
8167         instead of AssemblyBuilder->dynamic_assembly in the appropriate places.
8168
8169         * reflection.c (resolution_scope_from_image): Emit a moduleref if
8170         neccesary.
8171
8172         * reflection.c (mono_image_build_metadata): Emit metadata only for the
8173         current module. Emit the manifest only for the main module.
8174
8175         * reflection.c (mono_image_create_token): Add assertion when a 
8176         memberref needs to be created.
8177
8178         * reflection.c reflection.h (MonoDynamicAssembly): Remove unused fields.
8179
8180         * reflection.c (mono_reflection_get_custom_attrs_blob): Allocate a 
8181         larger buffer for the custom attribute blob. Fixes #50637.
8182         
8183 2003-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8184
8185         * threadpool.c: notify listener on async processing handles after
8186         invoking the async callback. Thanks to Zoltan.
8187
8188 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8189
8190         * reflection.c (create_dynamic_mono_image): Call mono_image_init to 
8191         avoid code duplication.
8192
8193         * reflection.h (MonoDynamicImage): New type which is currently unused,
8194         but will be used through the ref.emit code in place of 
8195         MonoDynamicAssembly.
8196
8197         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8198         object layout.
8199
8200         * reflection.c (create_dynamic_mono_image): Rewrote so it now creates
8201         a MonoDynamicImage instead of just a MonoImage.
8202         
8203         * reflection.h reflection.c icall.c: Move nearly all AssemblyBuilder
8204         icalls to ModuleBuilder but keep their semantics, so they will work
8205         with moduleb->assemblyb. This will change later.
8206         
8207 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8208
8209         * reflection.h (MonoReflectionAssemblyBuilder): Track changes to the
8210         object layout.
8211
8212         * reflection.c (mono_image_build_metadata): Avoid creation of a default
8213         main module, since it is now done by the managed code.
8214
8215 2003-11-03  Martin Baulig  <martin@ximian.com>
8216
8217         * reflection.c (mono_reflection_inflate_method_or_ctor): Set
8218         `ginst->klass' here.
8219         (method_encode_methodspec): Don't use the `ginst->generic_method's
8220         klass if it's a generic instance, use `ginst->klass' in this case.
8221
8222 2003-11-03  Martin Baulig  <martin@ximian.com>
8223
8224         * reflection.c (mono_image_get_generic_method_param_info):
8225         Removed, use mono_image_get_generic_param_info() instead.
8226         (mono_image_get_type_info): Write the GenericParam table before
8227         the Method table.  This is neccessary because in the GenericParam
8228         table, type parameters of the class (ie. '!0' etc.) must come
8229         before the ones from its generic methods (ie. '!!0' etc).
8230
8231 2003-11-03  Zoltan Varga  <vargaz@freemail.hu>
8232
8233         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill out AssemblyName->codebase. Fixes #50469.
8234
8235 2003-11-02  Martin Baulig  <martin@ximian.com>
8236
8237         * reflection.c (create_generic_typespec): Take a
8238         `MonoReflectionTypeBuilder *' instead of a `MonoType *' and get
8239         the generic parameters from it.
8240
8241 2003-11-02  Martin Baulig  <martin@ximian.com>
8242
8243         * reflection.c (fieldref_encode_signature): Take a `MonoType *'
8244         instead of a `MonoClassField *' since we just need the type.
8245         (create_generic_typespec): New static function.  Creates a
8246         TypeSpec token for a generic type declaration.
8247         (mono_image_get_generic_field_token): New static function.
8248         (mono_image_create_token): If we're a FieldBuilder in a generic
8249         type declaration, call mono_image_get_generic_field_token() to get
8250         the token.
8251
8252 2003-11-02  Martin Baulig  <martin@ximian.com>
8253
8254         * reflection.h
8255         (MonoReflectionInflatedMethod, MonoReflectionInflatedField): Added
8256         `MonoReflectionGenericInst *declaring_type' and
8257         `MonoReflectionGenericInst *reflected_type' fields.
8258
8259         * reflection.c (mono_reflection_inflate_method_or_ctor): Take a
8260         `MonoReflectionGenericInst *declaring_type' and a
8261         `MonoReflectionGenericInst *reflected_type' argument instead of a
8262         single `MonoReflectionGenericInst *type' one.  Set
8263         `res->declaring_type' and `res->reflected_type' from them.
8264         (mono_reflection_inflate_field): Likewise.      
8265
8266 2003-11-02  Martin Baulig  <martin@ximian.com>
8267
8268         * class.c (mono_class_setup_vtable): Don't store generic methods
8269         in the vtable.  
8270
8271 2003-11-02  Martin Baulig  <martin@ximian.com>
8272
8273         * reflection.h (MonoReflectionGenericInst): Added
8274         `MonoReflectionType *declaring_type'.
8275
8276         * reflection.c (mono_reflection_bind_generic_parameters): Use
8277         `if (tb->parent)' instead of `klass->parent'.
8278
8279 2003-11-01  Zoltan Varga  <vargaz@freemail.hu>
8280
8281         * assembly.c (mono_assembly_open): Avoid crash if a module is loaded
8282         with an empty ASSEMBLY table.
8283
8284         * reflection.c (mono_image_build_metadata): Avoid using the same loop
8285         variable in the inner and outer loops.
8286
8287 2003-10-31  Zoltan Varga  <vargaz@freemail.hu>
8288
8289         * metadata.h (mono_metadata_make_token): Put parentheses around macro
8290         argument.
8291
8292         * appdomain.h appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): Fix signature.
8293         
8294         * appdomain.c appdomain.h icall.c: Get rid of the InvokeInDomain 
8295         icalls. Instead, do everything in managed code. This is needed since
8296         it is hard to restore the original domain etc. in unmanaged code in the
8297         presence of undeniable exceptions.
8298
8299         * appdomain.c (ves_icall_System_AppDomain_InternalPushDomainRef): 
8300         New icalls to push and pop appdomain refs.
8301
8302 2003-10-31  Martin Baulig  <martin@ximian.com>
8303
8304         * class.c (inflate_generic_type): Renamed to
8305         mono_class_inflate_generic_type() and made it public.
8306
8307         * icall.c ("System.Reflection.MonoGenericInst::inflate_field"):
8308         New interncall.
8309
8310         * loader.c (mono_field_from_memberref): Also set the retklass for
8311         typespecs.
8312
8313         * fielder.c (mono_image_get_inflated_field_token): New static
8314         method; creates a metadata token for an inflated field.
8315         (mono_image_create_token, fixup_method): Added support for
8316         "MonoInflatedField".
8317         (fieldbuilder_to_mono_class_field): New static function.
8318         (mono_reflection_inflate_field): New public function.
8319
8320         * reflection.h
8321         (MonoReflectionGenericInst): Added `MonoArray *fields'.
8322         (MonoReflectionInflatedField): New typedef.     
8323
8324 2003-10-30  Bernie Solomon  <bernard@ugsolutions.com>
8325
8326         * socket-io.c (in6_addr ipaddress_to_struct_in6_addr): fix
8327         for Solaris and other platforms without s6_addr16
8328
8329 2003-10-30  Martin Baulig  <martin@ximian.com>
8330
8331         * class.c (inflate_generic_type): Take just one `MonoGenericInst *'
8332         argument instead of two.
8333         (mono_class_inflate_generic_signature): Likewise.
8334         (inflate_generic_header): Likewise.
8335         (mono_class_inflate_generic_method): Likewise.  In addition, if
8336         `ginst->klass' is set, it becomes the new `method->klass'.
8337
8338         * class.h (MonoGenericInst): Removed the `gpointer mbuilder'
8339         field.
8340
8341         * reflection.c (encode_generic_method_sig): Write a 0xa as the
8342         first byte. [FIXME]
8343         (method_encode_methodspec): If we have generic parameters, create
8344         a MethodSpec instead of a MethodRef.
8345         (fixup_method): Added support for "MonoInflatedMethod" and
8346         "MonoInflatedCtor".
8347         (mono_image_create_token): Added support for "MonoInflatedMethod"
8348         and "MonoInflatedCtor".
8349         (inflated_method_get_object): New static function; returns a
8350         managed "System.Reflection.MonoInflatedMethod" object.
8351         (mono_reflection_bind_generic_method_parameters): Return a
8352         `MonoReflectionInflatedMethod' instead of a `MonoReflectionMethod'.
8353         (mono_reflection_inflate_method_or_ctor): Likewise.
8354         (mono_image_get_generic_method_param_info): Initialize unused
8355         fields to zero.
8356         (mono_image_get_generic_param_info): Likewise.
8357
8358         * reflection.h (MonoReflectionInflatedMethod): New public
8359         typedef.  Corresponds to the managed "S.R.MonoInflatedMethod" and
8360         "S.R.MonoInflatedCtor" classes.
8361
8362         * loader.c (method_from_memberref): If we're a TypeSpec and it
8363         resolves to a generic instance, inflate the method.
8364
8365 2003-10-28  Dick Porter  <dick@ximian.com>
8366
8367         * object.c (mono_runtime_run_main): Convert command-line arguments
8368         into utf8, falling back to the user's locale encoding to do so.
8369
8370 2003-10-27  Zoltan Varga  <vargaz@freemail.hu>
8371
8372         * loader.c (mono_get_method_from_token): Avoid looking up the icalls
8373         at this time.
8374
8375         * marshal.c (mono_marshal_get_native_wrapper): Lookup icalls here.
8376
8377         * reflection.c (reflection_methodbuilder_to_mono_method): Avoid looking
8378         up icalls at method definition time. Partially fixes #33569.
8379
8380 2003-10-25  Zoltan Varga  <vargaz@freemail.hu>
8381
8382         * marshal.c (mono_marshal_get_native_wrapper): Add support for [Out]
8383         marshalling of arrays. Fixes #50116.
8384
8385         * appdomain.c (ves_icall_System_AppDomain_InternalIsFinalizingForUnload): New icall.
8386
8387         * appdomain.c (unload_thread_main): Clear class->cached_vtable if it
8388         points to a vtable in the dying appdomain.
8389
8390         * appdomain.c (mono_domain_unload): Move the notification of OnUnload
8391         listeners into unmanaged code inside the lock.
8392
8393         * object.c (mono_class_vtable): Turn off typed allocation in non-root
8394         domains and add some comments.
8395
8396 2003-10-25  Martin Baulig  <martin@ximian.com>
8397
8398         * class.h (MonoGenericInst): Added `MonoClass *klass' field.
8399
8400         * image.h (MonoImage): Added `GHashTable *typespec_cache'.
8401
8402         * metadata.c (mono_metadata_parse_generic_inst): Renamed to
8403         `do_mono_metadata_parse_generic_inst'; pass it the MonoType we're
8404         currently parsing.  Create the generic class and store it in
8405         `generic_inst->klass' before parsing the type arguments.  This is
8406         required to support "recursive" definitions; see mcs/tests/gen-23.cs
8407         for an example.
8408         (mono_type_create_from_typespec): Use a new `image->typespec_cache'
8409         to support recursive typespec entries.
8410
8411         * class.c (mono_class_setup_parent): If our parent is a generic
8412         instance, we may get called before it has its name set.
8413         (mono_class_from_generic): Splitted into
8414         mono_class_create_from_generic() and mono_class_initialize_generic().
8415
8416 2003-10-25  Martin Baulig  <martin@ximian.com>
8417
8418         * icall.c (ves_icall_Type_BindGenericParameters): Return a
8419         `MonoReflectionGenericInst *' instead of a `MonoReflectionType *'.
8420         ("System.Reflection.MonoGenericInst::inflate_method"): New interncall.
8421         ("System.Reflection.MonoGenericInst::inflate_ctor"): New interncall.
8422
8423         * reflection.c (my_mono_class_from_mono_type): Added MONO_TYPE_GENERICINST.
8424         (create_typespec): Likewise.
8425         (mono_reflection_bind_generic_parameters): Return a
8426         `MonoReflectionGenericInst *' instead of a `MonoClass *'.
8427         (mono_reflection_inflate_method_or_ctor): New public function.
8428
8429         * reflection.h (MonoReflectionGenericInst): New typedef.        
8430
8431 2003-10-24  Zoltan Varga  <vargaz@freemail.hu>
8432
8433         * object.c (mono_class_proxy_vtable): Run the whole vtable construction
8434         inside the domain lock. Fixes #49993.
8435         
8436         * object.c (mono_class_vtable): When typed allocation is used, 
8437         allocate vtables in the GC heap instead of in the mempool, since the
8438         vtables contain GC descriptors which are used by the collector even
8439         after the domain owning the mempool is unloaded.
8440
8441         * domain.c (mono_domain_set): Rename to mono_domain_set_internal.
8442
8443         * domain.c (mono_domain_unload): Rename to mono_domain_free to better
8444         reflect what it does. Also invalidate mempools instead of freeing
8445         them if a define is set.
8446
8447         * appdomain.h (MonoAppDomainState): New enumeration to hold the state
8448         of the appdomain.
8449         
8450         * appdomain.h (_MonoDomain): New field 'finalizable_object_hash' to
8451         hold the finalizable objects in this domain.
8452
8453         * appdomain.h (_MonoDomain): New field 'state' to hold the state of the
8454         appdomain.
8455
8456         * appdomain.c (mono_domain_set): New function to set the current
8457         appdomain, but only if it is not being unloaded.
8458
8459         * appdomain.c threads.c threadpool.c object.c: Avoid entering an
8460         appdomain which is being unloaded.
8461         
8462         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Prevent
8463         unloading of the root appdomain.
8464
8465         * appdomain.c (ves_icall_System_AppDomain_InternalInvokeInDomain): New
8466         icall to execute a method in another appdomain. Intended as a 
8467         replacement for InternalSetDomain, which can confuse the code 
8468         generation in the JIT.
8469
8470         * appdomain.c (mono_domain_is_unloading): New function to determine
8471         whenever an appdomain is unloading.
8472
8473         * appdomain.c (mono_domain_unload): New function to correctly unload
8474         an appdomain.
8475
8476         * assembly.c (mono_assembly_load_references): Check that an assembly
8477         does not references itself.
8478
8479         * gc.c (mono_domain_finalize): Rewrote so instead of finalizing a
8480         domain manually, it asks the finalizer thread to do it, then waits for
8481         the result. Also added a timeout.
8482
8483         * icall.c: Register the new icalls.
8484
8485         * threads.h threads.c: Export the mono_gc_stop_world and 
8486         mono_gc_start_world functions.
8487         
8488         * mempool.h mempool.c (mono_mempool_invalidate): New debugging 
8489         function to fill out the mempool with 0x2a.
8490
8491 2003-10-22  Zoltan Varga  <vargaz@freemail.hu>
8492
8493         * reflection.h (MonoReflectionMethodAux): New structure to store
8494         information which is rarely used, thus is not in the MonoMethod
8495         structure.
8496
8497         * reflection.h (MonoDynamicAssembly): New field 'method_aux_hash' to
8498         store the aux info.
8499
8500         * reflection.c (mono_methodbuilder_to_mono_method): Store param names
8501         and marshalling info into the aux structure.
8502
8503         * loader.c (mono_method_get_marshal_info): Retrieve the marshal info
8504         from the aux structure.
8505
8506         * loader.c (mono_method_get_param_names): Retrieve the param names from
8507         the aux structure.
8508         
8509 2003-10-21  Zoltan Varga  <vargaz@freemail.hu>
8510
8511         * exception.h exception.c: Add AppDomainUnloadedException && fix 
8512         warning.
8513
8514 2003-10-21  Dick Porter  <dick@ximian.com>
8515
8516         * socket-io.c
8517         (ves_icall_System_Net_Sockets_Socket_Select_internal): Applied
8518         patch from Laramie Leavitt moving divide out of loop. (Bug 45381).
8519
8520 2003-10-21  Martin Baulig  <martin@ximian.com>
8521
8522         * reflection.c (mono_reflection_bind_generic_parameters):
8523         `klass->parent' is NULL for interfaces.
8524
8525 2003-10-21  Martin Baulig  <martin@ximian.com>
8526
8527         * reflection.c (create_typespec): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
8528
8529 2003-10-20  Zoltan Varga  <vargaz@freemail.hu>
8530
8531         * exception.c (mono_exception_from_name_msg): New helper function for
8532         creating exceptions and initializing their message field.
8533
8534         * exception.c: Simplify functions using the new helper.
8535
8536         * exception.h exception.c (mono_get_exception_cannot_unload_appdomain):
8537         New function.
8538
8539         * object.h object.c: Remove G_GNUC_NORETURN from the signature of
8540         mono_raise_exception, since otherwise gcc doesn't generate the function
8541         epilog for raise_exception, confusing the stack unwinding in the JIT.
8542         Fixes #45043.
8543
8544         * rawbuffer.c (mono_raw_buffer_load_mmap): Map mmap-ed memory with
8545         PROT_EXEC. This seems to prevent segmentation faults on Fedora Linux.
8546         Fixes #49499.
8547
8548 2003-10-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8549
8550         * icall.c: OutputDebugStringW expects 16-bit unicode characters, not
8551         utf8.
8552
8553 2003-10-18  Lluis Sanchez Gual  <lluis@ximian.com>
8554
8555         * icall.c: Removed GetUninitializedObject method because
8556           AllocateUninitializedClassInstance does the same.
8557
8558 2003-10-18  Martin Baulig  <martin@ximian.com>
8559
8560         * class.c (inflate_generic_signature): Renamed to
8561         mono_class_inflate_generic_signature() and made it public.
8562         (my_mono_class_from_generic_parameter): New static function; if we
8563         don't already have the generic parameter's MonoClass, create a
8564         very simple one which is just used internally in the runtime and
8565         not passed back to managed code.
8566
8567         * class.h (MonoGenericInst): Added `gpointer mbuilder' field.
8568
8569         * metadata.h (MonoMethodSignature): Moved the
8570         `MonoGenericParam *gen_params' to the MonoMethodHeader.
8571         (MonoMethodHeader): Moved the `MonoGenericParam *gen_params' here.
8572
8573         * icall.c (ves_icall_MethodInfo_GetGenericArguments): Renamed to
8574         ves_icall_MonoMethod_GetGenericArguments(); this is now an
8575         interncall on the MonoMethod class, not on MethodInfo.
8576         (ves_icall_MethodInfo_BindGenericParameters): Removed, we're now
8577         calling mono_reflection_bind_generic_method_parameters() directly.
8578
8579         * loader.c (mono_method_get_signature): If this is a MethodSpec;
8580         return the already computed `method->signature'.
8581         (method_from_methodspec): New static function to load a method
8582         from a MethodSpec entry.
8583         (mono_get_method_from_token): Call the new method_from_methodspec()
8584         for MethodSpec tokens.  
8585         (mono_get_method_from_token): If we're a generic method, load the
8586         type parameters.
8587
8588         * reflection.c (mono_image_get_memberref_token): Allow
8589         MEMBERREF_PARENT_TYPEDEF here; this will be used in the MethodSpec
8590         table.
8591         (fixup_method): Added support for MONO_TABLE_METHODSPEC.
8592         (mono_image_create_token): First check whether it's a generic
8593         method (so we'd need to create a MethodSpec), then do the other
8594         two alternatives.
8595         (mono_reflection_bind_generic_method_parameters): Return a
8596         `MonoReflectionMethod *' instead of a `MonoMethod *'; we're now
8597         called directly from the interncall.
8598
8599 2003-10-17  Zoltan Varga  <vargaz@freemail.hu>
8600
8601         * reflection.c (load_public_key): Move loading of the public key
8602         into managed code.
8603
8604         * image.h (MonoAssemblyName): Add public_key and hash_alg fields.
8605
8606         * assembly.c (mono_assembly_open): Fill in public_key and hash_alg
8607         fields.
8608
8609         * icall.c (ves_icall_System_Reflection_Assembly_FillName): Fill in
8610         culture, hash_alg and public_key. Fixes #49555.
8611
8612 2003-10-17  Martin Baulig  <martin@ximian.com>
8613
8614         * class.h (MonoGenericInst): Moved this declaration here and added
8615         `MonoMethod *generic_method'.
8616
8617         * icall.c
8618         (ves_icall_MethodInfo_GetGenericArguments): New interncall.
8619         (ves_icall_MethodInfo_BindGenericParameters): New interncall.
8620
8621         * metadata.c (mono_metadata_type_equal): Two types of
8622         MONO_TYPE_VAR or MONO_TYPE_MVAR equals if they have the same
8623         index; ie. don't compare the address of the `MonoGenericParam'
8624         structure.
8625         (mono_metadata_load_generic_params): Removed the `MonoMethod
8626         *method' argument.
8627
8628         * metadata.h (MonoGenericInst): Moved declaration to class.h.
8629         (MonoMethodHeader): Added `MonoGenericInst *geninst'.
8630
8631         * reflection.c (method_encode_signature): Encode the number of
8632         generic parameters.
8633         (encode_generic_method_sig): New static function.
8634         (method_encode_methodspec): New static function; creates an entry
8635         in the MethodSpec table for a generic method.
8636         (mono_image_get_methodspec_token): New static function.
8637         (mono_image_create_token): Call mono_image_get_methodspec_token()
8638         for generic methods.
8639         (mono_reflection_bind_generic_method_parameters): New public
8640         function.  Instantiates a generic method.
8641
8642 2003-10-16  Martin Baulig  <martin@ximian.com>
8643
8644         * metadata.h (MonoMethodSignature): Moved `MonoGenericParam
8645         *gen_params' here from MonoMethodHeader.
8646
8647         * metadata.c (mono_metadata_parse_method_signature): If we have
8648         generic parameters, initialize `method->gen_params' and then set
8649         the correct `type->data.generic_param' in all the parameters.
8650
8651 2003-10-16  Zoltan Varga  <vargaz@freemail.hu>
8652
8653         * threads.c (mono_threads_get_default_stacksize): New function to 
8654         return the default stacksize.
8655
8656         * gc.c (mono_gc_cleanup): Use a separate event for waiting for the
8657         termination of the finalizer thread, since the previous method had
8658         race conditions. Fixes #49628.
8659
8660         * gc.c (mono_gc_init): Use the same stacksize for the finalizer thread
8661         as for the other managed threads.
8662
8663 2003-10-16  Martin Baulig  <martin@ximian.com>
8664
8665         * class.c (inflate_generic_signature): Copy `generic_param_count'
8666         and `gen_params'.
8667
8668         * icall.c (ves_icall_MethodInfo_get_IsGenericMethodDefinition):
8669         New interncall.
8670
8671         * metadata.c (mono_metadata_parse_method_signature): Actually set
8672         the `method->generic_param_count' here.
8673         (mono_metadata_load_generic_params): Initialize `pklass' to NULL.
8674
8675 2003-10-15  Zoltan Varga  <vargaz@freemail.hu>
8676
8677         * object.h: Add a new field to TypedRef to simplify the implementation
8678         of the REFANY opcodes in the JIT.
8679
8680         * icall.c: Make use of the new field.
8681
8682         * metadata.c (mono_type_size): Compute the size of TYPEDBYREF types
8683         dynamically.
8684
8685 2003-10-15  Martin Baulig  <martin@ximian.com>
8686
8687         * class.c (mono_class_from_gen_param): Renamed to
8688         mono_class_from_generic_parameter() and moved most of the
8689         functionality from mono_reflection_define_generic_parameter()
8690         here; ie. we create a "real" class here.
8691         (mono_class_from_mono_type): Only allow MONO_TYPE_VAR and
8692         MONO_TYPE_MVAR if mono_class_from_generic_parameter() has
8693         previously been called.
8694
8695         * class.h (MonoGenericParam): Moved the declaration of this struct
8696         here from metadata.h and added `MonoMethod *method'.
8697
8698         * icall.c (ves_icall_MonoType_get_DeclaringMethod): New
8699         interncall.
8700
8701         * loader.c (mono_get_method_from_token): If we have any generic
8702         parameters, call mono_metadata_load_generic_params() to read them
8703         from the MONO_TABLE_GENERICPAR.
8704
8705         * metadata.c (mono_metadata_load_generic_params): Added
8706         `MonoMethod *method' argument which is used MONO_TYPE_MVAR.
8707
8708         * metadata.h (MonoMethodSignature): Replaced
8709         `MonoGenericInst *geninst' with `guint16 generic_param_count'.
8710         (MonoMethodHeader): Added `MonoGenericParam *gen_params'.
8711
8712         * reflection.c (mono_reflection_define_generic_parameter): Moved
8713         most of the functionality into the new
8714         mono_class_from_generic_parameter(); set the `method' field if
8715         we're a method parameter.       
8716
8717 2003-10-13 Bernie Solomon  <bernard@ugsolutions.com>
8718
8719         * marshal.c (emit_struct_conv): if native size is 0
8720         emit no code.
8721
8722 2003-10-14  Martin Baulig  <martin@ximian.com>
8723
8724         * icall.c: The generics API has changed in the spec since it was
8725         added to System.Type; these modifications make it match the spec
8726         again.
8727         (ves_icall_Type_GetGenericParameters): Renamed to
8728         `ves_icall_Type_GetGenericArguments'.
8729         (ves_icall_Type_get_IsGenericTypeDefinition): New interncall.
8730         (ves_icall_MonoType_get_HasGenericParameteres): Renamed to
8731         `ves_icall_MonoType_get_HasGenericArguments'.
8732         (ves_icall_MonoType_get_IsUnboundGenericParameter): Renamed to
8733         `ves_icall_MonoType_get_IsGenericParameter'.
8734         (ves_icall_MonoType_get_HasUnboundGenericParameters): Removed;
8735         this is no interncall anymore.
8736         (ves_icall_TypeBuilder_get_IsUnboundGenericParameter): Renamed to
8737         `ves_icall_TypeBuilder_get_IsGenericParameter'.
8738
8739 2003-10-14  Martin Baulig  <martin@ximian.com>
8740
8741         * reflection.c (mono_reflection_bind_generic_parameters): Also
8742         inflate generic methods if we're reading the class from IL.
8743
8744 2003-10-13  Martin Baulig  <martin@ximian.com>
8745
8746         * reflection.c (mono_reflection_define_generic_parameter): This
8747         method isn't called directly from the icall anymore; take a
8748         `MonoReflectionAssemblyBuilder *' so we can use this for type and
8749         method generic parameters.
8750         (ReflectionMethodBuilder): Added `MonoArray *generic_param'.
8751         (method_builder_encode_signature): Encode generic parameters.
8752         (mono_image_get_method_info): Write generic params to the
8753         MONO_TABLE_GENERICPARAM table.
8754
8755         * reflection.h (MonoReflectionMethodBuilder): Added
8756         `MonoArray *generic_params'.
8757
8758         * metadata.h (MonoMethodSignature): Added `MonoGenericInst *geninst'.
8759
8760         * icall.c (ves_icall_TypeBuilder_define_generic_parameter): Added
8761         wrapper for mono_reflection_define_generic_parameter().
8762         (ves_icall_MethodBuilder_define_generic_parameter): Likewise.   
8763
8764 2003-10-13  Zoltan Varga  <vargaz@freemail.hu>
8765
8766         * marshal.h: Add missing function to fix build.
8767
8768         * marshal.c (mono_marshal_get_native_wrapper): Add support for 
8769         the SetLastError pinvoke attribute.
8770
8771         * marshal.c (mono_marshal_set_last_error): New helper function called
8772         by the generated code.
8773         
8774         * marshal.c (mono_mb_emit_branch): New helper function.
8775
8776         * marshal.c (mono_mb_emit_exception): Added exception name parameter.
8777
8778         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
8779         classes as parameters and return values of delegates. Fixes #29256. 
8780
8781 2003-10-12  Bernie Solomon  <bernard@ugsolutions.com>
8782
8783         * locales.c: use gint32 in non HAVE_ICU case
8784
8785 2003-10-11  Martin Baulig  <martin@ximian.com>
8786
8787         * mono-debug.c (mono_debug_add_method): Added a workaround for
8788         bug #48591.
8789
8790 2003-10-10  Zoltan Varga  <vargaz@freemail.hu>
8791
8792         * marshal.c (mono_marshal_get_managed_wrapper): Under windows,
8793         delegates passed to native code must use the STDCALL calling 
8794         convention. Fixes #35987.
8795
8796 2003-10-10  Martin Baulig  <martin@ximian.com>
8797
8798         * class.c (inflate_generic_type): If we're inflating for a generic
8799         type instance (and not for a generic method), return
8800         MONO_TYPE_MVAR unchanged.
8801
8802 2003-10-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8803
8804         * string-icalls.c: Join ignores null strings in the source array.
8805         * threadpool.[ch]: export busy_worker_threads, not mono_worker_threads.
8806         * threads.c: GetAvailableTheads is slightly more accurate.
8807
8808 2003-10-09  Bernie Solomon  <bernard@ugsolutions.com>
8809
8810         * threads.h threads.c : add mono_threads_set_default_stacksize
8811         and pass default to CreateThread calls.
8812
8813 2003-10-09  Dick Porter  <dick@ximian.com>
8814
8815         * icall.c:
8816         * locales.h:
8817         * locales.c: Internal calls for constructing CultureInfo and
8818         related objects from libicu (if its available.)
8819
8820 2003-10-09  Zoltan Varga  <vargaz@freemail.hu>
8821
8822         * debug-helpers.c (wrapper_type_names): Add 'unknown' wrapper type.
8823
8824 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8825
8826         * threadpool.c: added an argument to async_invoke_thread that is the
8827         item to process, pass the MonoAsyncResult to the thread start function
8828         when creating a new thread. This way we don't need to acquire any lock
8829         when we're creating a new thread. Readded a semaphore for faster
8830         response times (instead of that Sleep i added).
8831
8832 2003-10-08  Bernie Solomon  <bernard@ugsolutions.com>
8833
8834         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
8835         get daylight change dates better on Windows, fix handling
8836         of platforms without tm_gmtoff.
8837
8838 2003-10-06  Martin Baulig  <martin@ximian.com>
8839
8840         * class.c (inflate_generic_method): Renamed to
8841         mono_class_inflate_generic_method() and made public.
8842         (mono_class_init): Don't inflate the generic methods here.
8843         (mono_class_from_generic): Added `gboolean inflate_methods'
8844         argument.  Inflate the methods here.
8845
8846         * loader.c (mono_method_get_param_names): Ignore instances of
8847         generic types for the moment.
8848
8849         * reflection.c (fixup_method): Added support for inflated methods.
8850         (mono_image_create_token): Use mono_image_get_methodref_token()
8851         for inflated methods.
8852         (mono_custom_attrs_from_param): Ignore instances of generic types
8853         for the moment.
8854         (mono_reflection_bind_generic_parameters): New public function.
8855         Moved all the functionality from
8856         ves_icall_Type_BindGenericParameters() here and added support for
8857         dynamic types.
8858         (mono_reflection_define_generic_parameter): Initialize
8859         `klass->methods' here.
8860
8861         * icall.c (ves_icall_Type_BindGenericParameters): Moved all the
8862         functionality into mono_reflection_define_generic_parameter().
8863         (ves_icall_Type_GetGenericTypeDefinition): If we're coming from a
8864         TypeBuilder, return that TypeBuilder.
8865
8866 2003-10-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8867
8868         * appdomain.c: removed mono_delegate_semaphore.
8869
8870         * threadpool.c:
8871         (mono_thread_pool_add): moved hash table creation inside and the thread 
8872         creation outside of the critical region.
8873         (mono_thread_pool_finish): removed obsolete code.
8874         (async_invoke_thread): don't use the semaphore. Use a plain Sleep and
8875         continue or exit the thread depending on the queue.
8876
8877 2003-10-07  Bernie Solomon  <bernard@ugsolutions.com>
8878
8879         * metadata.c (mono_type_to_unmanaged): allow bools to marshal as I1
8880         marshal.c (emit_ptr_to_str_conv & mono_marshal_get_native_wrapper):
8881         handle more bool marshalling options
8882
8883 2003-10-07  Zoltan Varga  <vargaz@freemail.hu>
8884
8885         * marshal.c (mono_marshal_get_native_wrapper): Fix marshalling of
8886         arrays of structs. Also add a more descriptive error message when
8887         a structure member is marshalled as LPArray.
8888
8889 2003-10-06  Zoltan Varga  <vargaz@freemail.hu>
8890
8891         * marshal.c (mono_marshal_get_native_wrapper): Add support for
8892         marshalling arrays of complex types. Fixes #29098. Also remove an
8893         usused and incomplete function.
8894
8895 Mon Oct 6 15:38:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
8896
8897         * gc.c: report heap_size - free_bytes as total memory allocated
8898         (bug#49362).
8899
8900 2003-10-05  Zoltan Varga  <vargaz@freemail.hu>
8901
8902         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Finally 
8903         fix timezone handling problems on Windows.
8904         
8905         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Avoid
8906         asserts when the year is outside the range handled by ms the functions.
8907
8908         * class.c (setup_interface_offsets): If the class is an interface,
8909         fill out its interface_offsets slot.
8910
8911 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8912
8913         * threadpool.c: mark threadpool threads as background.
8914
8915 2003-10-03  Bernie Solomon  <bernard@ugsolutions.com>
8916
8917         * decimal.c - define DECINLINE to nothing if not using GCC
8918
8919 2003-10-03  Zoltan Varga  <vargaz@freemail.hu>
8920
8921         * assembly.c: More refcount fixes.
8922
8923 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8924
8925         * string-icalls.c: if we're not trimming, return the same string.
8926         When not splitting, don't create a new string.
8927
8928 2003-10-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8929
8930         * image.c:
8931         (mono_image_open): increment the ref_count inside the critical section.
8932
8933 2003-10-02  Zoltan Varga  <vargaz@freemail.hu>
8934
8935         * image.c (mono_image_open): Fix reference counting bug.
8936
8937 2003-09-30  Bernie Solomon  <bernard@ugsolutions.com>
8938
8939         * marshal.c (mono_marshal_type_size) struct alignment changed for 
8940         64bit machines.  (emit_ptr_to_str_conv) Fix bool conversions for 
8941         64bits. Avoid leak in mono_marshal_get_native_wrapper when
8942         mono_lookup_pinvoke_call throws.        
8943
8944 2003-09-30  Zoltan Varga  <vargaz@freemail.hu>
8945
8946         * reflection.c (mono_reflection_parse_type): Fix #49114.
8947
8948         * file-io.c (ves_icall_System_IO_MonoIO_GetFileAttributes): Add
8949         temporary workaround for cygwin header problem.
8950
8951         * object.c (mono_object_isinst): Synchronize this with the code
8952         generated by the JIT for casts.
8953
8954 2003-09-29  Zoltan Varga  <vargaz@freemail.hu>
8955
8956         * reflection.c (encode_type): Fix #38332.
8957
8958 2003-09-26  Zoltan Varga  <vargaz@freemail.hu>
8959
8960         * marshal.c (mono_marshal_method_from_wrapper): New function to return
8961         the original method from the wrapper method.
8962
8963 2003-09-25  Martin Baulig  <martin@ximian.com>
8964
8965         * icall.c (ves_icall_Type_IsGenericTypeDefinition): Removed this
8966         interncall since it was identical to `Type.GetGenericTypeDefinition()'.
8967         (ves_icall_Type_get_IsGenericInstance): New interncall.
8968
8969 2003-09-24 Bernie Solomon <bernard@ugsolutions.com>
8970
8971         * object.c: fix cast warning in big endian code.
8972
8973 2003-09-19 Jackson Harper <jackson@latitudegeo.com>
8974
8975         * icall.c: Timezone patch from Zoltan Varga (vargaz@freemail.hu)
8976         
8977 2003-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
8978
8979         * assembly.c: don't call check_env from mono_assembly_load. It's
8980         already done once in mono_assemblies_init and may cause headaches when
8981         multiple threads are loading assemblies.
8982
8983 2003-09-19  Martin Baulig  <martin@ximian.com>
8984
8985         * reflection.c (mono_reflection_define_generic_parameter): Don't
8986         allocate `klass->methods', set `klass->flags' to
8987         TYPE_ATTRIBUTE_INTERFACE, not TYPE_ATTRIBUTE_ABSTRACT.
8988
8989 2003-09-18  Martin Baulig  <martin@ximian.com>
8990
8991         * class.c (mono_class_init): Don't create `class->methods' if it's
8992         already initialized.
8993
8994         * metadata.c (mono_metadata_load_generic_params): Make this
8995         actually work.
8996
8997         * reflection.c (mono_reflection_define_generic_parameter): Set
8998         parent class and interfaces from the constraints.
8999
9000         * reflection.h (MonoReflectionGenericParam): Added `guint32 flags'
9001         to keep this struct in sync with the declaration in TypeBuilder.cs.
9002
9003 2003-09-17  Martin Baulig  <martin@ximian.com>
9004
9005         * metadata.h (MonoType): Replaced the data's `int type_param'
9006         field with `MonoGenericParam *generic_param'.
9007         (MonoGenericParam): Added `MonoClass *klass'.
9008
9009         * class.c (mono_class_from_gen_param): Removed the
9010         `MonoImage *image' and `int type_num' arguments.
9011
9012         * metadata.c (mono_metadata_parse_generic_param): New static
9013         method; creates a MonoGenericParam which just contains the index.
9014         (do_mono_metadata_parse_type): Call
9015         mono_metadata_parse_generic_param() for MONO_TYPE_VAR and
9016         MONO_TYPE_MVAR.
9017
9018         * reflection.c (mono_image_typedef_or_ref): Generic type
9019         parameters may be in the same assembly, but never use a typedef
9020         for them.
9021         (mono_reflection_define_generic_parameter): We're now creating a
9022         "real" class for the type parameter; it's now safe to call
9023         mono_class_from_mono_type() on the class'es type, it'll do the
9024         right thing.
9025
9026 2003-09-16  Martin Baulig  <martin@ximian.com>
9027
9028         * mono-debug-debugger.c (allocate_symbol_file_entry): Initialize
9029         `symfile->range_entry_size' and `symfile->class_entry_size' here;
9030         the `symfile' data structure must be fully initialized before it
9031         gets added to the table.
9032
9033 2003-09-15  Zoltan Varga  <vargaz@freemail.hu>
9034
9035         * icall.c (ves_icall_Type_IsArrayImpl): Added MONO_ARCH_SAVE_REGS.
9036
9037         * appdomain.h domain.c (MonoDomain): Added new hashtable to store the
9038         class init trampolines.
9039
9040 2003-09-11  Zoltan Varga  <vargaz@freemail.hu>
9041
9042         * profiler.c (mono_profiler_load): Added '-time' and '-alloc' options
9043         to the built-in profiler to turn off time and allocation profiling
9044         respectively.
9045
9046 2003-09-10  Zoltan Varga  <vargaz@freemail.hu>
9047
9048         * profiler.c (mono_profiler_coverage_alloc): Use NULL instead of
9049         g_direct_equal.
9050
9051         * debug-helpers.c (mono_method_full_name): Print the wrapper type
9052         in human readable form.
9053
9054 2003-09-08  Zoltan Varga  <vargaz@freemail.hu>
9055
9056         * reflection.c icall.c: Fixed warnings.
9057
9058         * image.c (load_class_names): Use a temporary hash table to hold the
9059         namespaces in order to avoid doing many string comparisons.
9060
9061         * image.h: Fix typo.
9062
9063         * image.c class.c rawbuffer.c reflection.c threads.c verify.c domain.c:
9064         Pass NULL instead of g_direct_equal to the GHashTable constructor 
9065         since the NULL case is short-circuited inside g_hash_table_lookup, 
9066         leading to better performance.  
9067
9068         * metadata.c (mono_metadata_custom_attrs_from_index): New function to
9069         obtain the first custom attribute for a given index. Depends on the
9070         CustomAttribute table being sorted by the parent field.
9071
9072         * reflection.c (mono_custom_attrs_from_index): Use the new function 
9073         for better performance.
9074
9075 2003-09-07  Martin Baulig  <martin@ximian.com>
9076
9077         * class.c (mono_class_init): If we're a generic instance, inflate
9078         all our methods instead of loading them from the image.
9079         (mono_class_from_generic): Set `class->methods = gklass->methods'.
9080
9081 2003-09-07  Martin Baulig  <martin@ximian.com>
9082
9083         * mono-debug-debugger.c: Added support for constructors.
9084
9085 2003-09-06  Martin Baulig  <martin@ximian.com>
9086
9087         * icall.c (ves_icall_TypeBuilder_get_IsUnboundGenericParameter):
9088         New interncall.
9089
9090         * reflection.c (mono_reflection_setup_generic_class): Call
9091         ensure_runtime_vtable() to create the vtable.
9092
9093 2003-09-05  Martin Baulig  <martin@ximian.com>
9094
9095         * class.c (mono_class_array_element_size): Added MONO_TYPE_VAR and
9096         MONO_TYPE_MVAR.
9097
9098 2003-09-04  Martin Baulig  <martin@ximian.com>
9099
9100         * reflection.c (mono_reflection_define_generic_parameter): Generic
9101         parameters start with zero.
9102
9103 2003-09-04  Martin Baulig  <martin@ximian.com>
9104
9105         * metadata.c (mono_type_size): Added MONO_TYPE_VAR and MONO_TYPE_MVAR.
9106
9107         * reflection.h (MonoReflectionGenericParam): New typedef.
9108         (MonoReflectionTypeBuilder): Added `generic_params' fields to get
9109         the generic parameters from the managed TypeBuilder.
9110
9111         * reflection.c (mono_reflection_define_generic_parameter): New function.
9112         (mono_reflection_create_runtime_class): Encode generic parameters.
9113         (mono_reflection_setup_generic_class): New function; this is
9114         called after adding adding all generic params to the TypeBuilder.
9115         (encode_type): Added MONO_TYPE_VAR.
9116
9117 2003-09-04  Zoltan Varga  <vargaz@freemail.hu>
9118
9119         * class.h class.c (mono_class_needs_cctor_run): Moved this method
9120         here from the JIT.
9121
9122         * assembly.h assembly.c: Moved the AOT loading code into an assembly
9123         load hook.
9124
9125 2003-09-03  Zoltan Varga  <vargaz@freemail.hu>
9126
9127         * reflection.h reflection.c class.h class.c: Delete duplicate 
9128         definition of mono_type_get_name () from reflection.c and export the
9129         one in class.c.
9130
9131         * class.c: Class loading fixes from Bernie Solomon 
9132         (bernard@ugsolutions.com).
9133
9134         * reflection.c: Endianness fixes from Bernie Solomon 
9135         (bernard@ugsolutions.com).
9136         
9137 2003-09-01  Zoltan Varga  <vargaz@freemail.hu>
9138
9139         * assembly.h assembly.c: Define a file format version for AOT
9140         libraries.
9141         
9142         * assembly.c (mono_assembly_open): Fix leaking of MonoImage-s.
9143
9144         * appdomain.h (MonoJitInfo): New field to determine whenever the
9145         code is domain neutral.
9146         
9147 2003-08-31  Miguel de Icaza  <miguel@ximian.com>
9148
9149         * marshal.c (emit_struct_conv): Add MONO_TYPE_CHAR
9150
9151 2003-08-30  Zoltan Varga  <vargaz@freemail.hu>
9152
9153         * icall.c (ves_icall_System_Web_Util_ICalls_get_machine_install_dir): 
9154         (ves_icall_System_Configuration_DefaultConfig_get_machine_config_path):
9155         Avoid caching the result since strings must be domain specific. Fixes
9156         #48050.
9157
9158 2003-08-29  Zoltan Varga  <vargaz@freemail.hu>
9159
9160         * marshal.c (mono_marshal_init): Make this callable multiple times
9161         since it is hard to find a correct place to call it.
9162
9163         * object.c (mono_runtime_class_init): Execute static constructors in
9164         the correct appdomain.
9165
9166         * image.c (build_guid_table): Handle the case when multiple images have
9167         the same GUID.
9168
9169 2003-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9170
9171         * icall.c: added a couple of icalls for System.Web.
9172
9173 2003-08-28  Martin Baulig  <martin@ximian.com>
9174
9175         * icall.c (ves_icall_Type_BindGenericParameters): Use
9176         `klass->generic_inst' instead of `&klass->byval_arg' in the
9177         mono_type_get_object() call.  The returned type must be
9178         MONO_TYPE_GENERICINST and not MONO_TYPE_CLASS.
9179
9180 2003-08-27  Zoltan Varga  <vargaz@freemail.hu>
9181
9182         * NOTES: New file.
9183
9184         * object.c (mono_class_proxy_vtable): Make it thread safe.
9185
9186         * pedump.c: Fix warning.
9187
9188         * object.c appdomain.h: Get rid of metadata_section. 
9189         It is no longer needed and it was causing deadlocks with domain->lock.
9190
9191         * appdomain.c (add_assemblies_to_domain): Make it thread safe.
9192
9193 2003-08-26  Martin Baulig  <martin@ximian.com>
9194
9195         * pedump.c (main): Don't call mono_image_close() if `verify_pe'.
9196
9197 2003-08-26  Martin Baulig  <martin@ximian.com>
9198
9199         * pedump.c (main): Call mono_metadata_init(),
9200         mono_raw_buffer_init(), mono_images_init(), mono_assemblies_init()
9201         and mono_loader_init().
9202
9203 2003-08-26  Zoltan Varga  <vargaz@freemail.hu>
9204
9205         * loader.h: Add missing include to fix build.
9206
9207         * image.h: mono_image_load_references is no more.
9208
9209         * assembly.c: Reworked assembly loading to make it really thread safe.
9210         After these changes, the assembly returned by mono_assembly_open is
9211         fully initialized, i.e. all its references assemblies are loaded.
9212
9213         * assembly.c (mono_image_load_references): Renamed to 
9214         mono_assembly_load_references, and made private, since clients no
9215         longer need to call it.
9216
9217         * class.c: Removed calls to mono_assembly_load_references, since it was
9218         a source of deadlocks.
9219
9220         * loader.h loader.c class.h class.c: Protect data structures using a 
9221         new lock, the loader lock.
9222
9223         * class.c (mono_class_setup_vtable): Create temporary hash tables and
9224         GPtrArrays only when needed.
9225
9226         * class.c (mono_class_layout_fields): Ignore the dummy field inserted 
9227         into empty structures by mcs. Fixes pinvoke7.cs.
9228         
9229         * domain.c (mono_init): Call a new initialization function.
9230
9231         * appdomain.c (mono_runtime_init): Call the new initializer function
9232         of the marshal module.
9233
9234         * marshal.c (mono_marshal_load_type_info): Ignore the dummy field
9235         inserted into empty structures by mcs. Fixes pinvoke7.cs.
9236
9237         * marshal.h marshal.c: Added locks around the wrapper caches to make
9238         this module thread safe.
9239
9240         * icall.c (ves_icall_InternalInvoke): Method wrappers doesn't require a
9241         this argument. Fixes pinvoke1.exe.
9242
9243 2003-08-25  Lluis Sanchez <lluis@ximian.com>
9244
9245         * object.h: Added call_type field to MonoMethodMessage and the corresponding
9246         enumeration of values. Removed fields to store remote call output values in
9247         MonoAsyncResult. Not needed any more.
9248         * object.c: Initialize call_type and async_result fields in mono_message_init.
9249         * marshal.c: mono_delegate_begin_invoke(): for proxies, set call_type before
9250         dispatching the message.
9251         mono_delegate_end_invoke (): delegate to the proxy the work of waiting for the
9252         async call to finish. To do it use a message with EndInvoke call type.
9253
9254 2003-08-25  Zoltan Varga  <vargaz@freemail.hu>
9255
9256         * loader.h loader.c (mono_method_hash_marhal_info): New function which
9257         determines whenever a method has marshalling info.
9258
9259 2003-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9260
9261         * assembly.c: fix the build on windows.
9262
9263 2003-08-22 Lluis Sanchez <lluis@ximian.com>
9264
9265         * object.cs: Fixed bug #47785.
9266
9267 2003-08-22 Jackson Harper <jackson@latitudegeo.com>
9268
9269         * string-icalls.c (StringReplace): If their are no occurances of
9270         the old string found return a reference to the supplied
9271         string. This saves some memory and matches MS behavoir.
9272         
9273 2003-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9274
9275         * socket-io.c: fixed compilation for systems that define AF_INET6
9276         and don't define SOL_IP/SOL_IPV6.
9277
9278 2003-08-21  Zoltan Varga  <vargaz@freemail.hu>
9279
9280         * object.c (mono_object_isinst): Fix casts to TransparentProxy in
9281         the interpreter. Patch by Bernie Solomon (bernard@ugsolutions.com).
9282
9283         * rawbuffer.c rawbuffer.h: Make this module thread safe.
9284
9285         * domain.c: Make this module thread safe.
9286
9287         * domain.c (mono_init): Call new initialization function.
9288
9289         * icall.c (ves_icall_System_Array_SetValueImpl): Check types for
9290         reference types too. Fixes #38812.
9291
9292         * image.c (mono_image_init): Fixed warnings.
9293
9294         * class.c (mono_class_from_typeref): Handle assembly load failure
9295         correctly.
9296
9297         * appdomain.c (add_assemblies_to_domain): Handle the case when
9298         the references of an assembly are not yet loaded.
9299
9300         * metadata.c image.c assembly.c: Moved initialization of global
9301         variables to a separate function called at startup since lazy 
9302         initialization of these variables is not thread safe.
9303         
9304         * image.c assembly.c: Made this module thread safe by adding locks in 
9305         the appropriate places.
9306
9307         * domain.c (mono_init): Call the new initialization functions of the
9308         three modules.
9309
9310 2003-08-20  Lluis Sanchez Gual  <lluis@ximian.com>
9311
9312         * marshal.c: mono_delegate_begin_invoke(): If the target is a proxy,
9313           make a direct call. It is proxy's work to make the call asynchronous.
9314           mono_delegate_end_invoke(): If the targe is a proxy, just collect
9315           the return values.
9316         * object.cs: mono_method_call_message_new(): read AsyncResult and
9317           state object from parameters list, if this info is requested.
9318         * object.h: Added fields to store remote call output values in
9319           MonoAsyncResult. Added AsyncResult field in MonoMethodMessage.
9320
9321 Wed Aug 20 12:57:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9322
9323         * object.h: add needed fields to MonoThread.
9324         * threads.c, threads.h: allow registering a function to cleanup data
9325         allocated per thread by the JIT.
9326
9327 Tue Aug 19 18:22:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9328
9329         * loader.h: portability fix by Bernie Solomon
9330         * <bernard@ugsolutions.com>.
9331
9332 2003-08-16  Zoltan Varga  <vargaz@freemail.hu>
9333
9334         * reflection.h reflection.c (mono_param_get_objects): Changed this to 
9335         return a MonoArray. This simplifies the code and also ensures that
9336         the cache allways contains an object reference as a value.
9337
9338         * icall.c (ves_icall_get_parameter_info): Simplified using the new
9339         function.
9340
9341 2003-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9342
9343         * socket-io.c: patch by Bernie Solomon <bernard@ugsolutions.com> that
9344         fixes a problem with byte ordering when getting the address family for
9345         a socket.
9346
9347 2003-08-15  Zoltan Varga  <vargaz@freemail.hu>
9348
9349         * .cvsignore: Added monosn.
9350
9351         * reflection.h reflection.c loader.c: Added support for parameter
9352         marshalling to dynamically created types. Fixes #47295.
9353
9354 Fri Aug 15 11:42:46 CEST 2003 Paolo Molaro <lupus@ximian.com>
9355
9356         * rand.c: remove useless warnings.
9357
9358 Wed Aug 13 15:49:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9359
9360         * class.c: implemented ldtoken for methods and fieldrefs.
9361
9362 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9363
9364         * threadpool.c: when mono_async_invoke was called, no one took care of
9365         monitoring the queue. So if the method invoked took some time and we
9366         got new async invoke requests after 500 ms (the thread created waited
9367         that long in WaitForSingleObject), the new async invoke was not called
9368         until the previous one finished.
9369
9370         This is fixed now. Thanks to Totte for helping with it.
9371
9372 2003-08-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9373
9374         * threadpool.c: set threadpool_thread to TRUE. Patch by totte.
9375
9376 2003-08-11  Martin Baulig  <martin@ximian.com>
9377
9378         * mono-debug-debugger.c (mono_debugger_lookup_type): New function.
9379
9380 2003-08-06  Martin Baulig  <martin@ximian.com>
9381
9382         * mono-debug-debugger.c: Added support for static fields,
9383         properties and methods.
9384
9385 2003-08-06  Martin Baulig  <martin@ximian.com>
9386
9387         * mono-debug-debugger.c: Don't store the MonoString's vtable to
9388         make this work for applications with multiple application domains.
9389
9390 2003-08-04  Martin Baulig  <martin@ximian.com>
9391
9392         * mono-debug-debugger.c: Completely reworked the type support; the
9393         most important thing is that we're now just using one single
9394         `MonoType' instance per type.
9395
9396 Sat Aug  2 13:05:27 BST 2003 Malte Hildingson <malte@amy.udd.htu.se>
9397
9398         * mono-endian.h, mono-endian.c, icall.c: Added icall
9399         ves_icall_System_Double_AssertEndianity to assert double word endianity
9400         on ARM (FPA). The icall uses a macro defined in mono-endian.h.
9401
9402 Fri Aug 1 16:51:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9403
9404         * class.c, class.h, reflection.c, metadata.c, icall.c: more generics
9405         support, icalls and fixes.
9406
9407 2003-07-31  Miguel de Icaza  <miguel@ximian.com>
9408
9409         * unicode.c (ves_icall_System_Char_IsPunctuation): The set of
9410         classes that are a punctuation character in .NET is not the same a
9411         g_unichar_ispunct.
9412
9413 Tue Jul 29 18:07:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
9414
9415         * socket-io.c: ipv6 portability fixes from Felix Ortga (guile@lared.es).
9416
9417 2003-07-29  Miguel de Icaza  <miguel@ximian.com>
9418
9419         * icall.c: Add new MemCopy internalcall.
9420         (ves_icall_System_Reflection_Assembly_GetManifestResourceInternal):
9421         Simplified code; It is not necessary to handle all the cases here,
9422         as the C# code takes care of it.  Only handle the case of the name
9423         resource embedded into the assembly.
9424
9425         Changed signature to return the data pointer and the size of the
9426         data. 
9427
9428 2003-07-26  Miguel de Icaza  <miguel@ximian.com>
9429
9430         * reflection.c (mono_image_get_method_info): Allow for 0x40 to be
9431         encoded.        (Partition II.22.1.7: PInvokeAttribute:SupportsLastErr).
9432
9433 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9434
9435         * socket-io.c: ignore EINTR error in select.
9436
9437 Tue Jul 29 15:25:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
9438
9439         * class.h, class.c: removed unused subclasses field in MonoClass.
9440
9441 2003-07-29  Lluis Sanchez Gual  <lluis@ximian.com>
9442
9443         * icall.c: improve fix of get_base_definition(). If the parent class
9444           doesn't have the mehod, look at the parent of the parent.
9445         * object.c: mono_message_init(): use the attribute PARAM_ATTRIBUTE_OUT
9446           to check if a parameter is an in or out parameter
9447           (PARAM_ATTRIBUTE_IN is not set by default).
9448           mono_method_return_message_restore(): Use mono_class_value_size to
9449           get the size of a value type. mono_type_stack_size (parameterType)
9450           does not return the correct value if parameterType is byRef.
9451           mono_load_remote_field(), mono_load_remote_field_new(),
9452           mono_store_remote_field(), mono_store_remote_field_new():
9453           raise exception if the remote call returns an exception.
9454
9455 2003-07-28  Martin Baulig  <martin@ximian.com>
9456
9457         * mono-debug-debugger.c (mono_debugger_runtime_invoke): New
9458         method.  This is a wrapper around mono_runtime_invoke() which
9459         boxes the instance object if neccessary.
9460
9461 Fri Jul 25 19:14:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9462
9463         * class.c, class.h, image.c, image.h, loader.c, metadata.c,
9464         metadata.h, row-indexes.h, verify.c: first cut of generics support.
9465
9466 Thu Jul 24 11:34:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9467
9468         * icall.c: disable mcs bug workaround.
9469
9470 2003-07-21  Miguel de Icaza  <miguel@ximian.com>
9471
9472         * object.c (mono_runtime_class_init): Take the metadata_section
9473         mutex before obtaining the domain mutex.
9474
9475         * appdomain.h: Added definition of metadata_section mutex here. 
9476
9477         * object.c: define metadata_mutex here.
9478
9479 2003-07-24  Ravi Pratap  <ravi@ximian.com>
9480
9481         * icall.c: Remove the FIXED_MCS_45127 workarounds - this has been
9482         fixed.
9483
9484 2003-07-24  Lluis Sanchez Gual  <lluis@ximian.com>
9485
9486         * reflection.c: Fix bug #46669
9487
9488 2003-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9489
9490         * exception.c:
9491         * exception.h:
9492         * icall.c:
9493         * object.h: fill in the type name for TypeLoadException.
9494
9495 2003-07-23  Ravi Pratap  <ravi@ximian.com>
9496
9497         * class.c: Fixes from Paolo in response to bug #45415 (Subclass
9498         relationship between TypeBuilders while compiling corlib) and bug
9499         45993 (Array types returned from the runtime while compiling
9500         corlib were from the loaded corlib).
9501
9502 2003-07-22  Martin Baulig  <martin@ximian.com>
9503
9504         * mono-debug-debugger.c: Reworked the type support a bit more;
9505         distinguish between types and classes.
9506
9507 Tue Jul 22 15:48:50 CEST 2003 Paolo Molaro <lupus@ximian.com>
9508
9509         * icall.c: add IsArrayImpl icall.
9510
9511 2003-07-22  Zoltan Varga  <vargaz@freemail.hu>
9512
9513         * class.c (mono_class_layout_fields): Fix gc aware auto layout by
9514         initializing real_size only once. Also fix bug #46602.
9515
9516 2003-07-21  Jerome Laban <jlaban@wanadoo.fr>
9517
9518         * object.c: Renamed mono_metadata_section to metadata_section.
9519
9520 2003-07-21  Lluis Sanchez Gual  <lluis@ximian.com>
9521
9522         * icall.c: in MS.NET ves_icall_Type_GetInterfaces returns an
9523           empty array if the type is an array. Fixed.
9524           ves_icall_MonoMethod_get_base_definition: if the base method
9525           is abstract, get the MethodInfo from the list of methods of
9526           the class.
9527         * reflection.c: ParameterInfo.PositionImpl should be zero-based
9528           and it was 1-based. Fixed in mono_param_get_objects.
9529
9530 2003-07-20  Martin Baulig  <martin@ximian.com>
9531
9532         * mono-debug.h: Set version number to 31.
9533         (mono_debug_init): Added `MonoDomain *' argument.
9534
9535         * mono-debug-debugger.c: Reworked the type support; explicitly
9536         tell the debugger about builtin types; pass the `klass' address to
9537         the debugger.
9538
9539 2003-07-20 Jackson Harper <jackson@latitudegeo.com>
9540
9541         * image.c: Allow new metadata tables to be loaded without a
9542         warning. Also update the warning message to give the new constant value.
9543                 
9544 Fri Jul 18 13:12:21 CEST 2003 Paolo Molaro <lupus@ximian.com>
9545
9546         * class.c, class.h, debug-helpers.c, icall.c, image.c, marshal.c,
9547         metadata.c, metadata.h, mono-debug-debugger.c, object.c, reflection.c: 
9548         array type representation changes.
9549
9550 Fri Jul 18 11:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9551
9552         * icall.c, appdomain.h, appdomain.c: support full runtime shutdown
9553         on Environment.Exit () call.
9554
9555 Thu Jul 17 17:21:57 CEST 2003 Paolo Molaro <lupus@ximian.com>
9556
9557         * icall.c, reflection.h, reflection.c, verify.c: cleanups,
9558         requires a matching corlib.
9559
9560 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9561
9562         * Changelog: My editor decided to add a CR to each line. Sorry about that.
9563           Committed again without the CRs.
9564         
9565 2003-07-17  Lluis Sanchez Gual  <lluis@ximian.com>
9566
9567         * socket-io.c: Get system_assembly using mono_image_loaded(), instead
9568           getting it from the "this" socket instance. Did not work
9569           if the socket is a subclass of Socket.
9570           Also fixed bug #35371.
9571
9572 Thu Jul 17 13:39:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9573
9574         * metadata.c: fixed size for TypedByRef.
9575         * loader.c: when searching for a method, consider the vararg amrker.
9576         * unicode.c, decimal.c: constify some arrays.
9577
9578 2003-07-15  Dick Porter  <dick@ximian.com>
9579
9580         * socket-io.c: Fixed compilation for gcc < 3.2.
9581
9582         Fixed compilation for machines that don't have AF_INET6 (thanks to
9583         Bernie Solomon <bernard@ugsolutions.com> for that part.)
9584
9585         Fixed compile warnings.
9586         
9587         Fixed formatting and line endings.
9588
9589 2003-07-14  Jerome Laban <jlaban@wanadoo.fr>
9590
9591         * socket-io.h:
9592         * socket-io.c: Added IPv6 support.
9593
9594 2003-07-13  Zoltan Varga  <vargaz@freemail.hu>
9595
9596         * class.c (mono_class_is_assignable_from): New function to implement
9597         the is_assignable_from logic. Used by mono_object_isinst, 
9598         Type::IsAssignableFrom () and the interpreter.
9599
9600         * class.c (mono_class_is_subclass_of): Make all classes a subclass of
9601         Object, even interfaces.
9602         
9603         * object.c (mono_object_isinst): Implement in terms of 
9604         is_assignable_from.
9605
9606         * icall.c (ves_icall_type_is_assignable_from): New icall.
9607
9608 2003-07-11  Zoltan Varga  <vargaz@freemail.hu>
9609
9610         * domain.c (foreach_domain): fix compiler warning.
9611
9612 2003-07-11  Dietmar Maurer  <dietmar@ximian.com>
9613
9614         * image.c (load_metadata_ptrs): use g_strndup because strndup is
9615         not available on all plattforms
9616
9617 2003-07-10  Zoltan Varga  <vargaz@freemail.hu>
9618
9619         * image.h image.c: Store the metadata version string in MonoImage.
9620         * icall.c: New icall to retrieve the image version.
9621         * reflection.c (create_dynamic_image): Fill in the image version field
9622         * reflection.c (build_compressed_metadata): Use the image version
9623         from the image structure.
9624
9625 2003-07-08  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9626
9627         * appdomain.c: modified comment.
9628         * gc.c: finalizer_thread can call finalizers even when finished == TRUE.
9629         That will be its last iteration when mono_gc_cleanup is called from
9630         mono_runtime_cleanup and before the domain is unloaded.
9631
9632         Fixes bug #45962.
9633
9634 2003-07-04  Dietmar Maurer  <dietmar@ximian.com>
9635
9636         * marshal.c (mono_marshal_get_native_wrapper): fixes for [out]
9637         attributes.
9638
9639 Thu Jul 3 17:22:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9640
9641         * object.c, file-io.c, metadata.c, mono-endian.h, reflection.c,
9642         rawbuffer.c: more 64 bit and picky (or old) compiler fixes from
9643         Bernie Solomon <bernard@ugsolutions.com>.
9644
9645 Thu Jul 3 17:17:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9646
9647         * object.c, object.h: provide mono_object_new_fast() for faster
9648         allocation in some special cases.
9649
9650 Wed Jul 2 13:21:26 CEST 2003 Paolo Molaro <lupus@ximian.com>
9651
9652         * object.h, reflection.h, verify.c: fixes for some 64bit issues,
9653         mostly from a patch by Laramie Leavitt <lar@leavitt.us>.
9654
9655 Tue Jul 1 21:24:14 CEST 2003 Paolo Molaro <lupus@ximian.com>
9656
9657         * threadpool.c: fix leaks.
9658
9659 2003-07-01  Dick Porter  <dick@ximian.com>
9660
9661         * threadpool.c (mono_async_invoke): Use mono_g_hash_table_remove when
9662         using MonoGHashTables.  Fixes threadpool bug posted to list.
9663
9664 Tue Jul 1 11:45:40 CEST 2003 Paolo Molaro <lupus@ximian.com>
9665
9666         * image.h, image.c: added support to load an assembly from a byte array.
9667         * Makefile.am, assembly.c, make-bundle.pl, sample-bundle: added 
9668         assembly bundle support.
9669
9670 2003-06-27  Dietmar Maurer  <dietmar@ximian.com>
9671
9672         * threadpool.c (mono_thread_pool_add): keep a reference to the
9673         AsyncResult to prevent GC
9674
9675 Thu Jun 26 12:13:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
9676
9677         * class.c: leak fix.
9678
9679 2003-06-25  Dick Porter  <dick@ximian.com>
9680
9681         * threadpool.c (mono_thread_pool_add): Don't set up a finaliser
9682         for the async object, the WaitHandle object will close the handle.
9683         Fixes bug 45321.
9684
9685 Wed Jun 25 18:12:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9686
9687         * class.c: in mono_array_class_get (), lookup from the hash with the
9688         same type we insert: this works around a bug in
9689         mono_metadata_type_hash() with SZARRAY and fixes a leak reported by
9690         lluis. The real fix will have to wait for after the release.
9691
9692 Wed Jun 25 13:14:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
9693
9694         * icall.c: fix memory leak when getting type members.
9695
9696 Mon Jun 23 16:12:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9697
9698         * reflection.c: added more pubtoken special cases.
9699
9700 Mon Jun 23 15:29:06 CEST 2003 Paolo Molaro <lupus@ximian.com>
9701
9702         * class.c: handle field offset correctly when class size
9703         is set (bug# 45182, partially from a patch by jlaban@wanadoo.Fr (Jerome Laban)).
9704
9705 2003-06-20  Martin Baulig  <martin@ximian.com>
9706
9707         * mono-debug-debugger.h (MonoDebuggerSymbolFile): Added `MonoImage
9708         *image' field.
9709
9710 2003-06-20  Martin Baulig  <martin@ximian.com>
9711
9712         * image.h, mono-debug-debugger.h: Fixed compiler warnings.
9713
9714 2003-06-20  Martin Baulig  <martin@ximian.com>
9715
9716         * mono-debug.h (MONO_DEBUG_VAR_ADDRESS_MODE_STACK): Removed.  We
9717         just distinguish between variables in registers and variables at
9718         an offset relative to a register.
9719
9720 2003-06-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9721
9722         * icall.c: #ifdef out latest changes until mcs is fixed.
9723
9724 Thu Jun 19 11:03:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9725
9726         * icall.c: return members in metadata order.
9727
9728 Wed Jun 18 15:26:58 CEST 2003 Paolo Molaro <lupus@ximian.com>
9729
9730         * icall.c: avoid infinite loop in GetTimeZoneData.
9731
9732 Wed Jun 18 12:47:43 CEST 2003 Paolo Molaro <lupus@ximian.com>
9733
9734         * icall.c: added Marshal.Prelink/All icalls.
9735
9736 Wed Jun 18 12:17:48 CEST 2003 Paolo Molaro <lupus@ximian.com>
9737
9738         * object.c, object.h: fix warnings and do some overflow checking
9739         when creating arrays.
9740
9741 2003-06-17  Dick Porter  <dick@ximian.com>
9742
9743         * file-io.h:
9744         * file-io.c: File attributes need to be tweaked slightly when
9745         passed from the managed to the w32 world.
9746
9747 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9748         * profiler.h profiler-private.h profiler.c: Rework last patch
9749         based on suggestion by Paolo.
9750         
9751 2003-06-17  Zoltan Varga  <vargaz@freemail.hu>
9752
9753         * profiler.h profiler-private.h profiler.c: Added infrastructure for 
9754         instruction level coverage data collection.
9755         * profiler.h profiler.c (: Added new callback function which can be
9756         used by the profiler to limit which functions should have coverage
9757         instrumentation.
9758         * profiler.c (mono_profiler_load): Call g_module_build_path to
9759         generate the file name of the profiler library.
9760
9761 Mon Jun 16 18:11:13 CEST 2003 Paolo Molaro <lupus@ximian.com>
9762
9763         * profiler.c, profiler.h, profiler-private.h: added basic block 
9764         coverage profiling API.
9765
9766 2003-06-15  Zoltan Varga  <vargaz@freemail.hu>
9767
9768         * reflection.c (mono_reflection_create_runtime_class): Add support
9769         for events in dynamically generated code.
9770
9771         * gc.c: Start GCHandle indexes from 1, since 0 means the handle is
9772         not allocated.
9773
9774 Sat Jun 14 19:01:32 CEST 2003 Paolo Molaro <lupus@ximian.com>
9775
9776         * icall.c: when getting timezone info, return reasonable values if we
9777         can't get the actual data.
9778
9779 2003-06-14  Dick Porter  <dick@ximian.com>
9780
9781         * threads.c (start_wrapper): Remove the reference to the thread
9782         object in the TLS data, so the thread object can be finalized.
9783         This won't be reached if the thread threw an uncaught exception,
9784         so those thread handles will stay referenced :-( (This is due to
9785         missing support for scanning thread-specific data in the Boehm GC
9786         - the io-layer keeps a GC-visible hash of pointers to TLS data.)
9787
9788 Sat Jun 14 13:16:17 CEST 2003 Paolo Molaro <lupus@ximian.com>
9789
9790         * reflection.c: ensure streams and tables are first allocated with
9791         ALLOC_ATOMIC (GC_realloc uses plain GC_malloc otherwise).
9792
9793 Sat Jun 14 13:13:20 CEST 2003 Paolo Molaro <lupus@ximian.com>
9794
9795         * icall.c: fixed GetElementType for byrefs (bug# 44792).
9796
9797 2003-06-13  Zoltan Varga  <vargaz@freemail.hu>
9798
9799         * reflection.c (mono_reflection_create_runtime_class): Add support for
9800         properties to dynamically created classes.
9801         * reflection.c: Fix a few places where non-MonoObjects were inserted
9802         into the tokens hashtable.
9803
9804 Fri Jun 13 19:10:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9805
9806         * object.c: some support to handle out of memory exceptions.
9807
9808 2003-06-12  Dietmar Maurer  <dietmar@ximian.com>
9809
9810         * marshal.c (mono_marshal_get_native_wrapper): support reference
9811         return types
9812
9813 Wed Jun 11 18:32:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9814
9815         * object.h, object.c: more portability stuff from Bernie Solomon.
9816         Unexport mono_object_allocate(). Added mono_object_unbox ().
9817         Set exitcode when an unhandled exception is thrown.
9818
9819 2003-06-11  Dietmar Maurer  <dietmar@ximian.com>
9820
9821         * marshal.c (mono_marshal_get_native_wrapper): use custom
9822         marshaler for return types.
9823
9824 2003-06-10  Dick Porter  <dick@ximian.com>
9825
9826         * socket-io.c: Don't assume that one of struct ip_mreqn or struct
9827         ip_mreq is available
9828
9829 Tue Jun 10 17:35:03 CEST 2003 Paolo Molaro <lupus@ximian.com>
9830
9831         * debug-mono-symfile.c, marshal.c, metadata.c, monitor.c,
9832         mono-debug-debugger.c, mono-debug.c, process.c: portability fixes
9833         by Bernie Solomon <bernard@ugsolutions.com>.
9834
9835 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
9836
9837         * gc.c (mono_gc_init): Avoid error message on shutdown when
9838         GC_DONT_GC=1 is used.
9839
9840         * icall.c (ves_icall_System_Reflection_Module_GetGuidInternal): 
9841         New icall to return the GUID of a module.
9842
9843 Mon Jun 9 19:33:51 CEST 2003 Paolo Molaro <lupus@ximian.com>
9844
9845         * class.c: ensure instance size always includes the parent's size
9846         even whem class size is set explicitly (fixes bug#44294).
9847
9848 Thu Jun 5 19:51:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
9849
9850         * profiler.h, profiler.c: made the simple profiler thread-safe,
9851         get more accurate timing info. Allow the loading of an
9852         externally-developed profiler module.
9853
9854 2003-06-05  Dietmar Maurer  <dietmar@ximian.com>
9855
9856         * marshal.c (mono_marshal_get_native_wrapper): improved
9857         class/byref arguments.
9858         (mono_marshal_get_native_wrapper): better string marshaling support.
9859
9860 Wed Jun 4 18:01:22 CEST 2003 Paolo Molaro <lupus@ximian.com>
9861
9862         * class.c: ensure .pack and .size are handled correctly and
9863         simplified layout of static fields.
9864
9865 2003-06-04  Dietmar Maurer  <dietmar@ximian.com>
9866
9867         * appdomain.c
9868         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): fix for bug 42934
9869
9870         * loader.c (mono_lookup_pinvoke_call): look for modules in the
9871         current directory (fix bug 44008)
9872
9873 2003-06-03  Dietmar Maurer  <dietmar@ximian.com>
9874
9875         * marshal.c (mono_marshal_get_native_wrapper): started support for
9876         custom marshalers.
9877         (mono_delegate_to_ftnptr): consider marshalling specifications
9878
9879 Tue Jun 3 11:17:02 CEST 2003 Paolo Molaro <lupus@ximian.com>
9880
9881         * reflection.c, reflection.h: emit custom marshal info.
9882
9883 2003-06-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9884
9885         * object.c: free the GError.
9886         * icall.c: added CloseEvent_internal.
9887         * threads.[ch]:
9888         (ves_icall_System_Threading_Events_CloseEvent_internal): new internal
9889         call.
9890
9891 2003-06-01  Zoltan Varga  <vargaz@freemail.hu>
9892
9893         * loader.c (mono_method_get_signature): Add support for dynamic
9894         assemblies.
9895
9896 Sat May 31 15:22:07 CEST 2003 Paolo Molaro <lupus@ximian.com>
9897
9898         * reflection.c: fixed bug #43905.
9899
9900 Fri May 30 12:56:29 CEST 2003 Paolo Molaro <lupus@ximian.com>
9901
9902         * class.c, domain.c, icall.c, metadata.h, object.h: support for
9903         handling TypedReference and ArgIterator.
9904         * loader.c, loader.h: added function to get signature at call site.
9905
9906 Thu May 29 11:34:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
9907
9908         * metadata.c, metadata.h, private.h, tokentype.h, loader.c: make more 
9909         data readonly. Buglets and warning fixes. Some MethodSpec support.
9910
9911 Tue May 27 16:34:39 CEST 2003 Paolo Molaro <lupus@ximian.com>
9912
9913         * class.h, class.c, object.c: remove relative numbering support.
9914
9915 2003-05-26  Miguel de Icaza  <miguel@ximian.com>
9916
9917         * marshal.c (mono_marshal_get_native_wrapper): For now, do not
9918         free the string, until we get a chance to fix Gtk#
9919
9920 2003-05-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
9921
9922         * marshal.c: revert last patch.
9923
9924 Mon May 26 20:21:52 CEST 2003 Paolo Molaro <lupus@ximian.com>
9925
9926         * icall.c: updates for new mono_class_vtable() not calling
9927         the type constructor anymore.
9928
9929 Mon May 26 12:10:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
9930
9931         * object.h, object.c: separate vtable creation from type
9932         initialization. Make running the .cctor thread safe.
9933
9934 2003-05-26  Dietmar Maurer  <dietmar@ximian.com>
9935
9936         * marshal.c (mono_marshal_get_native_wrapper): free string return values.
9937
9938 2003-05-21  Dietmar Maurer  <dietmar@ximian.com>
9939
9940         * loader.c (mono_get_method): consider calling convention
9941
9942 2003-05-21  Zoltan Varga  <vargaz@freemail.hu>
9943
9944         * icall.c (ves_icall_System_Reflection_Module_GetGlobalType): New icall
9945         to return the invisible global type for a module.
9946
9947         * reflection.c (mono_image_build_metadata): Emit global fields too.
9948
9949 2003-05-20  Peter Williams  <peterw@ximian.com>
9950
9951         * loader.c (mono_lookup_internal_call): Add a few newlines.
9952
9953 2003-05-20  Zoltan Varga  <vargaz@freemail.hu>
9954
9955         * reflection.c (mono_reflection_lookup_dynamic_token): Intern dynamic
9956         literal strings.
9957
9958         * appdomain.c (set_domain_search_path): Recalculate search path when
9959         AppDomainSetup.PrivateBinPath changes.
9960
9961         * object.c (mono_class_compute_gc_descriptor): It turns out some
9962         parts of the class libs (like System.Thread) holds pointers to
9963         GC_MALLOC()-d memory in IntPtrs, which is wrong. The workaround is
9964         to treat native int a pointer type here.
9965         
9966 Tue May 20 17:18:16 CEST 2003 Paolo Molaro <lupus@ximian.com>
9967
9968         * appdomain.h, domain.c: add hashtable for jump target resolution.
9969
9970 2003-05-19  Zoltan Varga  <vargaz@freemail.hu>
9971
9972         * reflection.h reflection.c icall.c: Added new icalls 
9973         GetManifestResourceInfoInternal, GetModulesInternal and support
9974         infrastructure.
9975
9976 2003-05-16  Dick Porter  <dick@ximian.com>
9977
9978         * icall.c:
9979         * file-io.h:
9980         * file-io.c: Implement System.IO.MonoIO::GetTempPath
9981
9982 2003-05-14  Lluis Sanchez Gual  <lluis@ideary.com>
9983
9984         * object.c: mono_store_remote_field: little fix to previous patch.
9985
9986 Wed May 14 18:10:42 CEST 2003 Paolo Molaro <lupus@ximian.com>
9987
9988         * class.c: add constructors to array classes.
9989         * icall.c: special case array construction for InternalInvoke (),
9990
9991 2003-05-14  Zoltan Varga  <vargaz@freemail.hu>
9992
9993         * class.h class.c reflection.c object.c: Added support for field
9994         defaults in dynamically generated classes.
9995
9996 Wed May 14 13:35:27 CEST 2003 Paolo Molaro <lupus@ximian.com>
9997
9998         * reflection.c: properly encode charset for ddlimport.
9999
10000 Wed May 14 11:14:54 CEST 2003 Paolo Molaro <lupus@ximian.com>
10001
10002         * threads.c: allow compiling without GC.
10003
10004 Tue May 13 16:41:49 CEST 2003 Paolo Molaro <lupus@ximian.com>
10005
10006         * appdomain.h, object.c, object.h, threads.c, threads.h: added
10007         handling of thread static data.
10008
10009 Tue May 13 16:36:08 CEST 2003 Paolo Molaro <lupus@ximian.com>
10010
10011         * reflection.h, reflection.c: added mono_custom_attrs_free ().
10012
10013 2003-05-13  Dietmar Maurer  <dietmar@ximian.com>
10014
10015         * class.c (mono_array_class_get): always set the serializable flags
10016         (mono_array_class_get): always set the SEALED attribute for array types
10017
10018 2003-05-12  Dietmar Maurer  <dietmar@ximian.com>
10019
10020         * loader.c (mono_lookup_pinvoke_call): consider Ansi/Unicode
10021         attributes (fix for bug 42021).
10022
10023 2003-05-12  Dick Porter  <dick@ximian.com>
10024
10025         * gc.c: Don't run finalizers when the finalizer thread is
10026         finishing up, because the default domain has already been
10027         destroyed.
10028
10029 2003-05-11  Miguel de Icaza  <miguel@ximian.com>
10030
10031         * string-icalls.c (ves_icall_System_String_ctor_chara_int_int): if
10032         value is null, we should throw an exception.   This is slightly
10033         different than the other conventions used for the constructor.
10034
10035 2003-05-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10036
10037         * socket-io.c: fixed windows build.
10038
10039 2003-05-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10040
10041         * socket-io.c: patch by Jerome Laban that fixes bug #42393.
10042
10043 2003-05-10  Zoltan Varga  <vargaz@freemail.hu>
10044
10045         * object.c (mono_string_new_wrapper): Compatibility fix for MS
10046         compilers.
10047
10048 2003-05-09  Zoltan Varga  <vargaz@freemail.hu>
10049
10050         * class.c (mono_class_layout_fields): Add experimental GC aware
10051         auto layout facility. Requires class library changes to work correctly.
10052
10053         (mono_class_setup_vtable): Avoid overriding explicit interface
10054         method implementations. Fixes iface3.exe test.
10055
10056         * object.c (mono_class_compute_gc_descriptor): Type I can't hold an
10057         object reference.
10058         (mono_array_new_specific): Add MONO_ARCH_SAVE_REGS.
10059         (mono_string_new_wrapper): Add MONO_ARCH_SAVE_REGS.
10060
10061         * metadata.h: Add new type classification macro which determines
10062         whenever the type holds an object reference.
10063
10064 2003-05-08  Dietmar Maurer  <dietmar@ximian.com>
10065
10066         * marshal.c (mono_marshal_get_native_wrapper): cleanups
10067
10068 2003-05-07  Zoltan Varga  <vargaz@freemail.hu>
10069
10070         * gc.c (finalizer_thread): Work around a GC bug.
10071
10072 2003-05-07  Dietmar Maurer  <dietmar@ximian.com>
10073
10074         * marshal.c (emit_struct_conv): allow unions
10075
10076         * class.c (class_compute_field_layout): added patches from Jerome Laban <jlaban@wanadoo.fr>
10077
10078 2003-05-06  Dietmar Maurer  <dietmar@ximian.com>
10079
10080         * marshal.c (mono_marshal_get_native_wrapper): free strings after pinvoke
10081
10082 2003-05-06  Martin Baulig  <martin@ximian.com>
10083
10084         * mono-debug-debugger.h: #include <mono/io-layer/io-layer.h>.
10085
10086 2003-05-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10087
10088         * socket-io.c:
10089         (Select_internal): allow NULLs, don't create arrays if not needed.
10090         Coupled with Socket.cs changes.
10091
10092         * threadpool.c:
10093         (mono_thread_pool_add): use GC_MALLOC to allocate the ASyncCall and
10094         register a finalizer for it that will close the semaphore handle. This
10095         fixes the leak and make Lupus' test run with > 4080 loops.
10096
10097 2003-05-05  Dietmar Maurer  <dietmar@ximian.com>
10098
10099         * marshal.c (mono_marshal_get_struct_to_ptr): added fixes from
10100         Jerome Laban (bug #42287)
10101
10102 2003-05-02  Martin Baulig  <martin@ximian.com>
10103
10104         * debug-mono-symfile.h
10105         (MonoSymbolFile): Moved declaration into mono-debug.h.
10106         (MonoDebugMethodJitInfo): Likewise.
10107         (mono_debug_open_mono_symbol_file): Take the MonoDebugHandle as
10108         argument.
10109         (_mono_debug_address_from_il_offset): Take a
10110         MonoDebugMethodJitInfo instead of a MonoDebugMethodInfo.
10111
10112         * mono-debug.h
10113         (MonoDebugDomainData): New struct.
10114         (mono_debug_get_domain_data): New function.
10115         (mono_debug_add_method): Take an additional `MonoDomain *'
10116         argument.
10117         (mono_debug_source_location_from_address): Likewise.
10118         (mono_debug_il_offset_from_address): Likewise.
10119         (mono_debug_address_from_il_offset): Likewise.
10120
10121 Thu May 1 19:40:37 CEST 2003 Paolo Molaro <lupus@ximian.com>
10122
10123         * reflection.c: one more check for null type in custom attrs.
10124
10125 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10126
10127         * reflection.c: avoid warning (comparison is always false due to limited
10128         range of data type).
10129
10130 2003-05-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10131
10132         * icall.c: throw an exception in Type.GetField if the argument 'name'
10133         is NULL.
10134
10135 Wed Apr 30 10:53:09 CEST 2003 Paolo Molaro <lupus@ximian.com>
10136
10137         * reflection.c: fixed handling of enums in named arguments to custom
10138         attributes (bug #42123).
10139
10140 Tue Apr 29 19:15:10 CEST 2003 Paolo Molaro <lupus@ximian.com>
10141
10142         * reflection.c: use the right array element type and handle
10143         a null for a Type argument, too.
10144
10145 Tue Apr 29 15:46:00 CEST 2003 Paolo Molaro <lupus@ximian.com>
10146
10147         * reflection.c: handle arrays as arguments to custom attributes.
10148
10149 Tue Apr 29 11:43:01 CEST 2003 Paolo Molaro <lupus@ximian.com>
10150
10151         * reflection.c: handle a string value in a custom attr
10152         ctor that takes an object.
10153
10154 2003-04-29  Dietmar Maurer  <dietmar@ximian.com>
10155
10156         * marshal.c (mono_mb_emit_restore_result): support MONO_TYPE_PTR
10157         (fix bug #42063)
10158
10159 2003-04-28  Zoltan Varga  <vargaz@freemail.hu>
10160
10161         * icall.c (ves_icall_Type_GetNestedType): Fixed warnings.
10162
10163 2003-04-27  Martin Baulig  <martin@ximian.com>
10164
10165         * mono-debug-debugger.h (MonoDebuggerEvent): Renamed
10166         MONO_DEBUGGER_EVENT_BREAKPOINT_TRAMPOLINE to
10167         MONO_DEBUGGER_EVENT_BREAKPOINT.
10168         (mono_breakpoint_trampoline_code): Removed.
10169         (mono_debugger_event_handler): The last argument is now a
10170         `guint32'.
10171         (mono_debugger_insert_breakpoint_full): Removed the
10172         `use_trampoline' argument.
10173         (mono_debugger_method_has_breakpoint): Likewise.
10174         (mono_debugger_trampoline_breakpoint_callback): Renamed to
10175         mono_debugger_breakpoint_callback(); take the method and
10176         breakpoint number as arguments.
10177
10178 Sat Apr 26 19:25:31 CEST 2003 Paolo Molaro <lupus@ximian.com>
10179
10180         * metadata.c: fix off by one when loading parameters attributes.
10181
10182 2003-04-24  Martin Baulig  <martin@ximian.com>
10183
10184         * mono-debug-debugger.c (mono_debugger_io_layer): Put this back.
10185
10186 2003-04-24  Martin Baulig  <martin@ximian.com>
10187
10188         * mono-debug-debugger.c: Moved all code which interacts with the
10189         Mono Debugger here.
10190
10191         * debug-mono-symfile.c: This code now just deals with the symbol
10192         file itself, the debugger code is now in mono-debug-debugger.c.
10193
10194 2003-04-23  Martin Baulig  <martin@ximian.com>
10195
10196         * mono-debug.c (mono_debug_source_location_from_il_offset):
10197         New method; like mono_debug_source_location_from_address(), but
10198         takes an IL offset instead of a machine address.
10199
10200 2003-04-23  Martin Baulig  <martin@ximian.com>
10201
10202         * debug-mono-symfile.h (MonoDebugLineNumberEntry): Removed the
10203         `line' field; this is now computed by the debugger.
10204
10205 2003-04-23  Martin Baulig  <martin@ximian.com>
10206
10207         * mono-debug.[ch]: New files.  This is the new debugging interface.
10208
10209         * mono-debug-debugger.[ch]: New files.  Moved all code which
10210         interacts with the Mono Debugger here.
10211
10212 2003-04-22  Dietmar Maurer  <dietmar@ximian.com>
10213
10214         * domain.c (mono_init): initialize mono_defaults.monitor_class
10215
10216 2003-04-21  Miguel de Icaza  <miguel@ximian.com>
10217
10218         * reflection.c (method_encode_code): Add a spicy exception to help
10219         future compiler authors.
10220
10221 2003-04-21  Martin Baulig  <martin@ximian.com>
10222
10223         * icall.c
10224         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
10225         Make this work with relative pathnames; g_filename_to_uri() needs
10226         an absolute filename.
10227
10228 2003-04-18  Zoltan Varga  <vargaz@freemail.hu>
10229
10230         * icall.c: Track name changes in Object and ValueType.
10231
10232 2003-04-18  Dietmar Maurer  <dietmar@ximian.com>
10233
10234         * metadata.c (mono_type_stack_size): size should be a multiple of
10235         sizeof (gpointer)
10236
10237 2003-04-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10238
10239         * gc.c:
10240         (internal_domain_finalize): moved into mono_domain_finalize. No need
10241         to create another thread because the finalizers will be run in the
10242         finalizer thread.
10243         
10244         (ves_icall_System_GC_WaitForPendingFinalizers): implemented.
10245         (finalizer_notify): if shutting down, wait 2 seconds for the finalizers
10246         to be run (MS does this too).
10247
10248 2003-04-17  Zoltan Varga  <vargaz@freemail.hu>
10249
10250         * object.c (mono_class_compute_gc_descriptor): Update comment.
10251
10252         * loader.h marshal.h marshal.c: Added synchronized method wrappers.
10253
10254         * image.h: Add synchronized wrapper cache.
10255
10256         * image.c (do_mono_image_open): Initialize cache.
10257
10258         * reflection.c (create_dynamic_mono_image): Initialize cache.
10259
10260 2003-04-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10261
10262         * icall.c: patch by Jerome Laban <jlaban@wanadoo.fr> that fixes
10263         ves_icall_System_Buffer_ByteLengthInternal.
10264
10265 Tue Apr 15 13:56:55 CEST 2003 Paolo Molaro <lupus@ximian.com>
10266
10267         * reflection.c: setup klass->nested_in earlier. Allow
10268         a dash in the assembly name.
10269
10270 2003-04-15  Dietmar Maurer  <dietmar@ximian.com>
10271
10272         * metadata.c (mono_type_to_unmanaged): dont access
10273         type->data.klass for MONO_TYPE_OBJECT
10274         (mono_type_to_unmanaged): consider System.Delegate class
10275
10276 Tue Apr 15 11:16:05 CEST 2003 Paolo Molaro <lupus@ximian.com>
10277
10278         * class.c: just setup supertypes in the proper place instead of
10279         initializing the full element class for arrays.
10280
10281 Tue Apr 15 11:03:25 CEST 2003 Paolo Molaro <lupus@ximian.com>
10282
10283         * class.c: ensure the element class of arrays is initialized.
10284         Setup the supertype info for array classes, too.
10285
10286 2003-04-14  Miguel de Icaza  <miguel@ximian.com>
10287
10288         * icall.c (ves_icall_Type_GetNestedType): Add new internal call.
10289
10290 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10291
10292         * Makefile.am: re-added -m option when running cygpath. This way,
10293         MONO_ASSEMBLIES and MONO_CFG_DIR will contain '/' as directory
10294         separator.
10295         * mono-config.c: same codepath for locating mono config file for WIN32
10296         and the rest.
10297         * assembly.c: if mono_assembly_setrootdir is called, don't override
10298         the value set.
10299
10300 2003-04-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10301
10302         * Makefile.am: patch by Urs Muff <umuff@quark.com> that fixes
10303         MONO_ASSEMBLIES variable.
10304
10305 Fri Apr 11 12:44:15 CEST 2003 Paolo Molaro <lupus@ximian.com>
10306
10307         * icall.c: added Assembly::GetNamespaces() icall.
10308
10309 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10310
10311         * reflection.c: fix from Jaak <jaak@zd.com.pl>.
10312
10313 2003-04-10  Lluis Sanchez Gual  <lluis@ideary.com>
10314
10315         * appdomain.c,appdomain.h,icall.c: Added internal method that returns the process guid
10316         * object.c: fixed bug in the construction of vtable for proxies
10317
10318 2003-04-10  Zoltan Varga  <vargaz@freemail.hu>
10319
10320         * object.c (mono_array_new): Mark mono_array_new as an icall.
10321
10322 2003-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10323
10324         * class.c: fixed test for public method when overriding interfaces.
10325         Closes bug #40970.
10326
10327 Wed Apr 9 15:19:41 CEST 2003 Paolo Molaro <lupus@ximian.com>
10328
10329         * appdomain.h, domain.c: added mono_domain_foreach() to
10330         be able to access the currently loaded appdomains.
10331         * object.c: make string interning work across sppdomains.
10332         Mark some functions for use as icalls.
10333
10334 2003-04-09  Zoltan Varga  <vargaz@freemail.hu>
10335
10336         * class.c reflection.c: Fix memory leaks reported by ccmalloc.
10337
10338         * reflection.h reflection.c: Allocate long living data using 
10339         GC_MALLOC_ATOMIC so the collector does not need to scan it.
10340
10341         * reflection.c: Double the allocation size in streams instead of
10342         increasing it, to prevent unneccesary copying on large assemblies.
10343         
10344         * reflection.c (mono_reflection_create_runtime_class): Avoid vtable
10345         creation if the assembly does not have the Run flag set.
10346
10347 Tue Apr 8 11:19:53 CEST 2003 Paolo Molaro <lupus@ximian.com>
10348
10349         * class.h: avoid the C++ keywords in header files (Jerome Laban
10350         spotted and fixed this).
10351
10352 2003-04-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10353
10354         * object.c:
10355         (mono_unhandled_exception): fill in the arguments for the
10356         UnhandledException event. Only trigger that event for the default
10357         domain (as MS does).
10358
10359 2003-04-04  Zoltan Varga  <vargaz@freemail.hu>
10360
10361         * object.c: Improve typed allocation stuff based on suggestions from
10362         Paolo. Also turn it on if the GC library supports it.
10363
10364 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10365
10366         * object.c object.h class.h: Added experimental typed allocation
10367         facility using the interfaces in gc_gcj.h.
10368
10369         * os/gc_wrapper.h: Added new include files.
10370         
10371 2003-04-03  Martin Baulig  <martin@ximian.com>
10372
10373         All the following changes are conditional to `WITH_INCLUDED_LIBGC'
10374         which is not yet enabled by default.
10375
10376         * gc.c (mono_gc_init): Set the gc_thread_vtable to our thread
10377         functions.
10378         (mono_gc_lock, mono_gc_unlock): New static functions.
10379
10380         * threads.c (mono_gc_stop_world, mono_gc_start_world): New public
10381         functions; stop/start the world for the garbage collector.  This
10382         is using the windows API; we need to complete the SuspendThread()/
10383         ResumeThread() implementation in the io-layer to make this work on Unix.
10384         (mono_gc_push_all_stacks): New public function; tells the garbage
10385         collector about the stack pointers from all managed threads.
10386
10387 2003-04-03  Martin Baulig  <martin@ximian.com>
10388
10389         * object.h (MonoThread): Added `gpointer stack_ptr'.
10390
10391         * threads.c (start_wrapper): Save the stack pointer in `stack_ptr'.
10392
10393 2003-04-03  Martin Baulig  <martin@ximian.com>
10394
10395         * Makefile.am: It's called `cygpath -w', not `cygpath -m'.
10396
10397 2003-04-03  Zoltan Varga  <vargaz@freemail.hu>
10398
10399         * reflection.c (typebuilder_setup_fields): Initialize field.first and
10400         field.last.
10401
10402 2003-04-02  Miguel de Icaza  <miguel@ximian.com>
10403
10404         * loader.c (mono_lookup_internal_call): Report the corlib that is
10405         out of sync.
10406
10407 2003-03-05  Aleksey Demakov <avd@openlinksw.com>
10408
10409         * icall.c (ves_icall_type_GetTypeCode): fixed check for
10410         System.DBNull (it's class not valuetype).
10411
10412 Wed Apr 2 18:37:35 CEST 2003 Paolo Molaro <lupus@ximian.com>
10413
10414         * reflection.c: set table_idx in MonoReflectionArrayMethod object even 
10415         if the array method was already assigned a token (fixes bug#40646).
10416
10417 2003-04-02  Zoltan Varga  <vargaz@freemail.hu>
10418
10419         * reflection.c (mono_reflection_get_type): Attempt type resolve even
10420         if no assembly is given.
10421
10422 2003-04-01  Miguel de Icaza  <miguel@ximian.com>
10423
10424         * metadata.h: Added the new tables.
10425
10426         * row-indexes.h: Added definitions for new tables.
10427
10428         * metadata.c: Add schemas for new tables, and add support for
10429         computing the sizes of them.
10430
10431         * class.c: Update for handling the new type cases.
10432
10433 2003-04-01  Dietmar Maurer  <dietmar@ximian.com>
10434
10435         * metadata.h (MONO_TYPE_IS_VOID): new macro
10436
10437 2003-03-31  Martin Baulig  <martin@ximian.com>
10438
10439         * threads.h (MonoThreadCallbacks): Added `thread_created'.
10440
10441         * threads.c (mono_thread_new_init): Call `thread_created' in the
10442         mono_thread_callbacks.
10443
10444 2003-03-31  Lluis Sanchez Gual <lluis@ideary.com>
10445
10446         * loader.h: added marshalbyrefobject_class to mono_defaults
10447         * domain.c: added initialization of mono_defaults.marshalbyrefobject_class 
10448         * icall.c: ves_icall_InternalExecute: fixed bug in field setter and in the
10449           generation of output parameters.
10450           ves_icall_Remoting_RealProxy_GetTransparentProxy: added support for interfaces.
10451         * marshal.c: mono_remoting_wrapper(): avoided call through proxy when the type is
10452           contextbound and the target object belongs to the context of the caller.
10453         * object.h: added context and unwrapped_server variables in MonoRealProxy.
10454         * object.c: Implemented support for interfaces and abstract classes
10455           in mono_class_proxy_vtable. Fixed several methods to avoid unneeded calls through
10456           proxy. Fixed problem when dealing with output parameters in mono_runtime_invoke_array.
10457
10458 2003-03-30  Zoltan Varga  <vargaz@freemail.hu>
10459
10460         * class.h class.c (mono_class_is_subclass_of): New function.
10461         
10462         * icall.c (ves_icall_System_Array_FastCopy): Added optimized copy
10463         routines for most common case (calls from ArrayList::ToArray).
10464
10465         * icall.c (ves_icall_System_Environment_Exit): Call profiler shutdown 
10466         routine so programs which call Environment::Exit() can be profiled.
10467
10468         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle): 
10469         Added MONO_ARCH_SAVE_REGS.
10470
10471         * icall.c (ves_icall_type_is_subtype_of): Use new function.
10472
10473 2003-03-29  Miguel de Icaza  <miguel@ximian.com>
10474
10475         * blob.h: Add a couple of new MonoType types definitions.
10476
10477         * tabledefs.h: Add a couple of new call convs.
10478
10479 2003-03-27  Zoltan Varga  <vargaz@freemail.h>
10480
10481         * reflection.h (MonoReflectionDynamicAssembly): track changes in
10482         the layout of the class.
10483
10484         * reflection.c (alloc_table): double the size on overflow to avoid
10485         unnecessary copying.
10486
10487         * reflection.h reflection.c: If AssemblyBuilderAccess is Run, then
10488         avoid filling out metadata tables and blobs. Also set mb->ilgen to
10489         null so it can be garbage collected.
10490         
10491 2003-03-27  Zoltan Varga  <vargaz@freemail.hu>
10492
10493         * reflection.c (mono_reflection_get_type): Return the resolved type
10494         only if it is in the assembly we searched.
10495
10496         * reflection.c (ensure_runtime_vtable): Initialize method slots.
10497
10498         * class.c (mono_class_setup_vtable): Set the slot of the overriding
10499         method.
10500
10501 2003-03-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10502
10503         * appdomain.c:
10504         (set_domain_search_path): allow 'file://blah'. It's an invalid URI,
10505         the right one is 'file:///blah', but MS allows it.
10506         * assembly.c:
10507         (mono_assembly_open): allow 'file://blah'
10508
10509         Fixes bug #40306. Thanks to Mitko Iliev (imitko@openlinksw.co.uk).
10510
10511 2003-03-26  Aleksey Demakov <avd@openlinksw.com>
10512
10513         * socket-io.c: fixes bug #40310.
10514
10515 2003-03-25  Zoltan Varga  <vargaz@freemail.hu>
10516
10517         * reflection.c (mono_reflection_parse_type): handle deeply nested
10518         types correctly.
10519
10520         * reflection.c (mono_image_create_token): Use unique token values
10521         since they will be put into a hash table.
10522
10523         * class.c (mono_class_setup_vtable): If a method occurs in more than
10524         one place in the vtable, and it gets overriden, then change the
10525         other occurances too.
10526
10527         * marshal.c (mono_marshal_get_managed_wrapper): Added support for
10528         object as return type.
10529
10530 2003-03-22  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10531
10532         * icall.c: Deleted "ToString" implementation for double and float
10533         because they are full implemented in managed code.
10534
10535 Wed Mar 19 18:05:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10536
10537         * reflection.c, reflection.h: implemented and exported functions
10538         to retrieve info about custom attributes.
10539
10540 2003-03-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10541
10542         * appdomain.c: moved Uri handling to assembly.c
10543         * assembly.c: use g_filename_from_uri (). This makes assembly.LoadFrom
10544         work when using a file Uri in *nix and windows.
10545
10546         * icall.c: fixed Assembly.CodeBase to return a valid Uri. The same for
10547         GetReferencedAssemblies.
10548
10549 2003-03-18  Dick Porter  <dick@ximian.com>
10550
10551         * icall.c: Rename a couple of internal calls
10552
10553         * threads.c: Set the thread state to Stopped when a thread exits.
10554         Fixes bug 39377.
10555
10556 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>
10557
10558         * icall.c (ves_icall_System_Reflection_FieldInfo_internal_from_handle):
10559         New icall.
10560
10561         * object.c (mono_class_vtable): fix warning.
10562
10563 2003-03-17  Zoltan Varga  <vargaz@freemail.hu>  
10564
10565         * icall.c (ves_icall_type_is_subtype_of): Avoid vtable creation.
10566
10567         * reflection.c (mono_blob_entry_hash): Avoid reading uninitialized
10568         memory.
10569         (method_encode_clauses): Create exception info structures in the right
10570         order.
10571         (mono_reflection_setup_internal_class): Initialize supertypes field.
10572
10573         * class.c object.c: Handle interfaces which implement other interfaces 
10574         correctly.
10575
10576         * class.h class.c: Move the supertypes array initialization code into 
10577         a separate function so it can be used for dynamic types too. Also call
10578         it earlier, in mono_class_init(), since it can be used before the
10579         type is initialized.
10580
10581 2003-03-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10582
10583         * Makefile.am:
10584         * assembly.c:
10585         * icall.c: make MONO_ASSEMBLIES and MONO_CFG_DIR work on windows.
10586
10587         * appdomain.c:
10588         * appdomain.h:
10589         * marshal.c:
10590         * object.c: remove warnings.
10591
10592 2003-03-13  Martin Baulig  <martin@ximian.com>
10593
10594         * debug-mono-symfile.h (MonoSymbolFileLexicalBlockEntry): New type.
10595         (MonoDebugLexicalBlockEntry): New types.
10596
10597         * debug-mono-symfile.c
10598         (_mono_debug_address_from_il_offset): Moved here from ../jit/debug.c.
10599
10600 2003-03-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10601
10602         * process.c: ret can be any non-zero value accroding to MS doc.
10603
10604 2003-03-07  Miguel de Icaza  <miguel@ximian.com>
10605
10606         * class.c (mono_marshal_load_type_info): Fix buglet:  Noticed when
10607         fixing a warning for a miss-used prototype, would have cause
10608         random memory corruption.
10609
10610 2003-03-07  Martin Baulig  <martin@ximian.com>
10611
10612         * marshal.c (mono_marshal_free_array): That "TESTFREE %p" was
10613         getting really annoying ....
10614
10615 2003-03-07  Zoltan Varga  <vargaz@freemail.hu>
10616
10617         * reflection.c (fixup_method): added support for array methods.
10618
10619 Tue Mar 4 18:03:27 CET 2003 Paolo Molaro <lupus@ximian.com>
10620
10621         * socket-io.c:  handle case when AF_INET6 and AF_IPX are not defined
10622         (pointed out by Michael Adams).
10623
10624 2003-03-04  Dick Porter  <dick@ximian.com>
10625
10626         * icall.c: Temporarily reverted the Double and Single ToString()
10627         change, because it broke nunit.
10628
10629 Tue Mar 4 12:40:58 CET 2003 Paolo Molaro <lupus@ximian.com>
10630
10631         * object.h, threads.h: make include files compatible with C++
10632         (patch by Jerome Laban <jlaban@wanadoo.fr>).
10633
10634 2003-03-04  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10635
10636         * icall.c: Erased ToString helper functions for Double and Single.
10637         Now, that implementations ar all in managed code (Double and Single
10638         Formatters).
10639
10640 2003-03-03  Lluis Sanchez Gual  <lluis@ideary.com>
10641
10642         * appdomain.c: Added method for initializing the default context of
10643         a domain. Added internal call for getting the default context.
10644         * appdomain.h: Added context variable in MonoDomain struct.
10645         * domain.c: mono_domain_set also sets the default context of the domain
10646         * icall.c: Mapped internal method InternalGetDefaultContext.
10647         * object.c: mono_object_get_virtual_method returns always a remoting
10648         wrapper if the object is a transparent proxy.
10649         mono_runtime_invoke_array: when creating an object by calling the
10650         constructor, if the created object is a proxy, then the constructor should
10651         be called using the a remoting wrapper.
10652
10653 2003-03-03  Dick Porter  <dick@ximian.com>
10654
10655         * socket-io.c (create_sockaddr_from_object): Rename sockaddr_un
10656         variable so it compiles on solaris.  Problem spotted by
10657         Christopher Taylor <ct@cs.clemson.edu>
10658
10659 2003-03-01  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10660
10661         * appdomain.c:
10662         (get_info_from_assembly_name): don't leak value.
10663
10664         * icall.c:
10665         (ves_icall_System_Reflection_Assembly_GetFilesInternal): initialize
10666         result.
10667
10668 Sat Mar 1 15:32:56 CET 2003 Paolo Molaro <lupus@ximian.com>
10669
10670         * assembly.c: export mono_image_load_references ().
10671         * class.c: handle function pointers. mono_class_from_name() now
10672         supports nested type names directly.
10673
10674 2003-02-28  Zoltan Varga  <vargaz@freemail.hu>
10675
10676         * reflection.h reflection.c: Encode already created dynamic methods 
10677         and fields correctly as a DEF instead of a REF.
10678
10679         * reflection.c: Get rid of the force_ref argument to 
10680         mono_image_typedef_or_ref since it was wrong in the first place.
10681
10682         * string-icalls.c: add error checking to string constructors according
10683         to the MSDN docs.
10684
10685         * reflection.c: Emit types in the order their TypeBuilders were 
10686         created. Previously, a new table index was assigned to each type before
10687         the tables were emitted. This was wrong because the signature blob
10688         might already refer to a type by its original table index.
10689
10690 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>
10691
10692         * metadata.c (mono_metadata_nesting_typedef): fix bug in previous
10693         change.
10694         
10695 2003-02-27  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10696
10697         * Makefile.am: make assemblies dir have \ instead of / on windows.
10698
10699 2003-02-27  Zoltan Varga  <vargaz@freemail.hu>  
10700
10701         * metadata.c metadata.h (mono_metadata_nesting_typedef): changed to
10702         iterate over the NESTEDCLASS table using a linear search since the
10703         table is not guaranteed to be sorted by the secondary key.
10704
10705         * class.c (mono_class_create_from_typedef): fixed up call to
10706         mono_metadata_nesting_typedef.
10707         
10708 2003-02-27  Dietmar Maurer  <dietmar@ximian.com>
10709
10710         * marshal.c (mono_string_to_byvalstr): clear the memory as
10711         suggested by Jerome Laban <jlaban@wanadoo.fr>
10712
10713 2003-02-26  Dick Porter  <dick@ximian.com>
10714
10715         * process.c: Cope with padding in .rsrc blocks
10716
10717 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10718
10719         * metadata.h: reverted the filter_len change, it breaks reflection
10720         
10721 2003-02-26  Dietmar Maurer  <dietmar@ximian.com>
10722
10723         * metadata.h: added a new field to store the filter_len
10724         
10725
10726 Tue Feb 25 10:56:16 CET 2003 Paolo Molaro <lupus@ximian.com>
10727
10728         * reflection.c: handle custom attributes for types and members
10729         created with Reflection.Emit (bug#38422).
10730
10731 2003-02-22  Zoltan Varga  <vargaz@freemail.hu>
10732
10733         * reflection.c: define RTSpecialName automatically for constructors for
10734         compatibility with MS.NET.
10735
10736         * reflection.c (mono_reflection_create_runtime_class): initialize
10737         nested_in field of dynamically created classes.
10738
10739 2003-02-22  Martin Baulig  <martin@ximian.com>
10740
10741         * debug-mono-symfile.h: Incremented version number.
10742
10743 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10744
10745         * object.h icall.c process.c: fix warnings.
10746
10747 2003-02-21  Zoltan Varga  <vargaz@freemail.hu>
10748
10749         * appdomain.h appdomain.c:
10750         (mono_domain_try_type_resolve): split the 
10751         name_or_tb argument into a name and a tb argument.
10752         (mono_domain_has_type_resolve): new function to check whenever the
10753         application has registered a TypeResolve event handler.
10754         
10755         * icall.c reflection.h reflection.c: move the type resolve logic into
10756         mono_reflection_get_type () so it will be invoked when 
10757         Assembly::GetType () is called.
10758
10759         * reflection.c:
10760         (mono_reflection_get_type): renamed to get_type_internal.
10761         (mono_reflection_get_type): fixed type name generation so it works 
10762         for nested types too.
10763         (mono_reflection_get_type): call has_type_resolve () to avoid the 
10764         costly type name generation if there is no resolve event handler.
10765
10766 Fri Feb 21 11:36:57 CET 2003 Paolo Molaro <lupus@ximian.com>
10767
10768         * class.c, image.c: load exported types from file references.
10769
10770 2003-02-19  Lluis Sanchez Gual  <lluis@ideary.com>
10771
10772         * appdomain.h: Added in MonoDomain a couple of MonoMethod* variables
10773           used to cache the managed methods used to create proxies and make 
10774           remote invocation of methods.
10775         * class.h: Added in MonoVTable a flag to indicate that a class needs 
10776           to be remotely created.
10777         * object.c: Modified the method mono_class_vtable(). It now initializes 
10778           the remote flag of the vtable. Modified mono_object_new_specific(), 
10779           so now it checks the remote flag.
10780         * icall.c: Added a couple of internal methods, one for enabling instance 
10781           creation interception for a type, and one for creating objects bypassing
10782           the remote check.
10783
10784 2003-02-18  Martin Baulig  <martin@ximian.com>
10785
10786         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethodToken):
10787         New interncall to get a method's metadata token.
10788
10789         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethodToken"):
10790         New interncall for the debugger.
10791
10792 2003-02-18  Dietmar Maurer  <dietmar@ximian.com>
10793
10794         * class.c (mono_class_setup_vtable): allocate supertype array
10795
10796 2003-02-18  Martin Baulig  <martin@ximian.com>
10797
10798         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Added `has_this'.
10799
10800 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10801
10802         * reflection.c:
10803         (assembly_name_to_aname): jump over unknown properties (i've found
10804         something like: 'type, assembly, version=xxx, custom=null, public...',
10805         so now will ignore custom=null and still get the rest of the values).
10806
10807 2003-02-17  Dick Porter  <dick@ximian.com>
10808
10809         * threads.c: Have Thread.Start() wait for a semaphore to signal
10810         that the thread has set up all its local data.  This fixes bug
10811         34323, where Abort() raced the new thread's TLS data.
10812
10813         Also removes the handle_store() call from start_wrapper, because
10814         threads are now always created suspended and there is no longer a
10815         race between the parent and child threads to store the info.
10816
10817 Mon Feb 17 13:13:31 CET 2003 Paolo Molaro <lupus@ximian.com>
10818
10819         * image.c: explain the #- heap issue in a message, hopefully
10820         avoiding FAQs on mono-list.
10821
10822 2003-02-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10823
10824         * icall.c:
10825         (GetEntryAssembly): if the domain has not invoked
10826         AppDomain.ExecuteAssembly yet, return the assembly of the default
10827         AppDomain.
10828
10829 2003-02-16  Zoltan Varga  <vargaz@freemail.hu>
10830
10831         * class.c (mono_ldtoken): make it work in dynamic assemblies.
10832
10833 Sun Feb 16 13:10:06 CET 2003 Paolo Molaro <lupus@ximian.com>
10834
10835         * metadata.c, reflection.c: simple speedup to type hash
10836         and equals code.
10837
10838 Sat Feb 15 15:15:03 CET 2003 Paolo Molaro <lupus@ximian.com>
10839
10840         * image.c, image.h, class.c, assembly.c: move module loading
10841         to MonoImage. When loading metadata, consider alignemnet from
10842         the start of metadata, not from the metadata address in memory.
10843
10844 2003-02-13  Zoltan Varga  <vargaz@freemail.hu>
10845
10846         * reflection.c (mono_reflection_get_custom_attrs): Added support for 
10847         AssemblyBuilder objects. Factored out custom attribute creation into
10848         a separate function.
10849         (create_custom_attr): new function to create custom attributes.
10850
10851 2003-02-12  Miguel de Icaza  <miguel@ximian.com>
10852
10853         * Makefile.am: Got tired of typing the full pathname to pedump.
10854         Until there is another option, am installing this.
10855
10856 2003-02-12  Dietmar Maurer  <dietmar@ximian.com>
10857
10858         * class.c (class_compute_field_layout): always set field->parent 
10859         (mono_ldtoken): use mono_defaults.fieldhandle_class;
10860
10861 2003-02-11  Dick Porter  <dick@ximian.com>
10862
10863         * threads-types.h:
10864         * monitor.c: Rewrote Monitor, making lock much faster and
10865         Pulse/Wait work as specified.  Also uses much fewer handles, and only
10866         creates them as needed.
10867
10868         * exception.c: Added SynchronizationLockException
10869
10870         * threads.c: Deleted old Monitor implementation.  The new one is
10871         in a new file.
10872
10873 Mon Feb 10 17:54:10 CET 2003 Paolo Molaro <lupus@ximian.com>
10874
10875         * class.c: handled TypedReference type code. Set the correct size for
10876         class data. Setup interface_offsets for interface classes, too.
10877
10878 2003-02-09  Martin Baulig  <martin@ximian.com>
10879
10880         * debug-mono-symfile.h: Reflect latest symbol writer changes.
10881
10882 Sun Feb 9 18:37:01 CET 2003 Paolo Molaro <lupus@ximian.com>
10883
10884         * loader.c: implemented MEMBERREF_PARENT_TYPEDEF.
10885         * metadata.c, reflection.c: missing MONO_TYPE_TYPEDBYREF handling.
10886         * object.c: fixed mono_object_get_virtual_method () for interfaces.
10887         * verify.c: check for code that runs after the end of the method.
10888
10889 2003-02-08  Pedro Mart?nez Juli?  <yoros@wanadoo.es>
10890
10891         * icall.c: Added "System.Math::Floor", "System.Math::Round" and
10892         "System.Math::Round2".
10893         * sysmath.h: Added Floor, Round and Round2 definitions.
10894         * sysmath.c: Modified certain functions that were not 100% compliant
10895         with MS.NET (math precision) and added the implementation of Floor,
10896         Round and Round2.
10897
10898 2003-02-07  Martin Baulig  <martin@ximian.com>
10899
10900         * debug-mono-symfile.c (mono_debug_symfile_add_method): Ignore interncalls.
10901
10902 2003-02-07  Martin Baulig  <martin@ximian.com>
10903
10904         * debug-mono-symfile.c: Reflected latest symwriter changes.
10905         (mono_debug_create_mono_symbol_file): Removed.
10906         (mono_debug_open_mono_symbol_file): Take an argument which
10907         specifies whether to create a dynamic symbol file.
10908
10909 2003-02-07  Dietmar Maurer  <dietmar@ximian.com>
10910
10911         * class.c (mono_class_from_mono_type): added MONO_TYPE_TYPEDBYREF
10912
10913 2003-02-05  Martin Baulig  <martin@ximian.com>
10914
10915         * reflection.c (mono_image_build_metadata): Make this public,
10916         protect it against being called multiple times, don't create
10917         resources and don't build the compressed metadata here.
10918         (mono_image_create_pefile): Do this here.
10919
10920         * icall.c
10921         ("System.Reflection.Emit.AssemblyBuilder::build_metadata"): Added.
10922
10923 2003-02-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10924
10925         * socket-io.c: fixed bug #36322.
10926
10927 2003-02-06  Piers Haken <piersh@friskit.com>
10928
10929         * appdomain.[ch]:
10930         * class.h:
10931         * debug-mono-symfile.c:
10932         * icall.c:
10933         * loader.c:
10934         * mono-config.c:
10935         * monosn.c:
10936         * reflection.c:
10937         * socket-io.c: warning cleanups
10938
10939 2003-02-06  Dietmar Maurer  <dietmar@ximian.com>
10940
10941         * marshal.c (mono_marshal_get_remoting_invoke_with_check): new
10942         function. works like remoting invoke, but does a check for the Proxy first.
10943
10944 2003-02-05  Miguel de Icaza  <miguel@ximian.com>
10945
10946         * appdomain.c (ves_icall_System_AppDomain_InternalUnload): Make it compiler.
10947
10948 2003-02-05  Dietmar Maurer  <dietmar@ximian.com>
10949
10950         * marshal.c (mono_marshal_get_native_wrapper): only allocate an
10951         array of pointers.
10952         (mono_marshal_get_ldfld_wrapper): only generate necessary ldfld wrappers.
10953         (mono_marshal_get_stfld_wrapper): only generate necessary stfld wrappers.
10954
10955         * object.c (mono_store_remote_field_new): used by the new jit
10956         instead of mono_store_remote_field
10957         (mono_load_remote_field_new): used by the new jit
10958         instead of mono_load_remote_field
10959
10960 2003-02-05  Patrik Torstensson
10961
10962         * appdomain.c: changed unload to take the domain id instead
10963         of domain
10964         
10965         * icall.c: changed icall for AppDomain.Unload to AppDomain.InternalUnload
10966
10967
10968 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10969
10970         * appdomain.c: don't look for assemblies in ApplicationBase if
10971         PrivateBinPathProbe is set.
10972
10973 2003-02-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10974
10975         * object.c: make the first argument in main_args contain the absolute
10976         path to the assembly. Fixes bug #37511.
10977
10978 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10979
10980         * icall.c: get correct UTC offset for countries not using daylight
10981         time saving. Fixes bug #30030.
10982
10983 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
10984
10985         * socket-io.c: support AF_UNIX and use the same layout as MS (bytes 0
10986         and 1 are the family).
10987
10988 2003-02-04  Dietmar Maurer  <dietmar@ximian.com>
10989
10990         * icall.c (ves_icall_InternalExecute): removed wrong assertion
10991
10992         * marshal.c (mono_marshal_get_remoting_invoke): generate valid IL
10993
10994 2003-02-04  Zoltan Varga  <vargaz@freemail.hu>
10995
10996         * reflection.c: added support for SignatureHelper tokens, which is
10997         needed by the Calli opcode.
10998
10999         * reflection.h: track changes to SignatureHelper class.
11000
11001         * metadata.c (mono_metadata_parse_signature): handle dynamic tokens.
11002
11003 2003-02-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11004
11005         * appdomain.c: fixed loading assemblies from PrivateBinPath.
11006
11007 2003-02-03  Patrik Torstensson
11008         * appdomain.[c|h], domain.c : 
11009          - Added support for getting a domain via domain id
11010          - Support for setting and getting domain from System.AppDomain 
11011            (used in cross appdomain channel)
11012          - Added support for get/set for a MonoAppContext on a thread 
11013            (Context class in System.Runtime.Remoting.Contexts),
11014          - Removed hack in Get/SetData and ExecuteAssembly.
11015         
11016         * icall.c : renamed GetTransparantProxy to InternalGetTransparantProxy to allow
11017         the managed world to get control when a proxy is created.
11018
11019         * icall.c (ves_icall_InternalExecute) : bug fix, must return empty array
11020         
11021 2003-02-03  Miguel de Icaza  <miguel@ximian.com>
11022
11023         * icall.c
11024         (ves_icall_System_Reflection_Assembly_GetReferencedAssemblies):
11025         Populate the codebase field as well.
11026
11027 2003-02-02  Martin Baulig  <martin@ximian.com>
11028
11029         * debug-mono-symfile.c
11030         (MonoSymbolFileMethodAddress): Added `wrapper_address' field.
11031         (mono_debug_symfile_add_method): Allow interncalls.
11032
11033 2003-01-31  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11034
11035         * icall.c: throw parse exception if strtod fails or the string is empty.
11036
11037 Fri Jan 31 16:09:48 CET 2003 Paolo Molaro <lupus@ximian.com>
11038
11039         * marshal.c: handle object type separately from defined
11040         class types.
11041
11042 Fri Jan 31 16:01:20 CET 2003 Paolo Molaro <lupus@ximian.com>
11043
11044         * marshal.c: handle NATIVE_LPSTR for strings when it's
11045         explicitly specified.
11046
11047 Fri Jan 31 11:51:43 CET 2003 Paolo Molaro <lupus@ximian.com>
11048
11049         * reflection.c, reflection.h, icall.c: setup the reflection
11050         handle cache for ModuleBuilders and AssemblyBuilders.
11051
11052 2003-01-30  Dietmar Maurer  <dietmar@ximian.com>
11053
11054         * reflection.c (reflection_methodbuilder_to_mono_method): set
11055         pinvoke flag
11056
11057 2003-01-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11058
11059         * icall.c: implemented ves_icall_MonoMethod_get_base_definition.
11060
11061 2003-01-29  Dick Porter  <dick@ximian.com>
11062
11063         * threads.c: No need for the fake_thread kludge now that Thread
11064         doesn't run a class constructor
11065         
11066 2003-01-29  Dick Porter  <dick@ximian.com>
11067
11068         * threads.c: Use g_direct_hash instead of the rather bogus
11069         g_int_hash
11070
11071 2003-01-29  Dietmar Maurer  <dietmar@ximian.com>
11072
11073         * marshal.c (mono_marshal_get_native_wrapper): add check for null
11074         (fix pinvoke12.exe)
11075         (mono_marshal_get_struct_to_ptr): generate valid IL code
11076         (mono_marshal_get_ptr_to_struct): generate valid IL code
11077         (*): correctly set sig->pinvoke, we need to memdup the signature
11078         to do that
11079
11080 Tue Jan 28 22:57:57 CET 2003 Paolo Molaro <lupus@ximian.com>
11081
11082         * marshal.c, marshal.h: use larger integers in mono_mb_emit_add_to_local()
11083         to avoid overflows (bug spotted and fixed by Jerome Laban <jlaban@wanadoo.fr>).
11084
11085 Tue Jan 28 18:55:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11086
11087         * profiler.c: provide more callers information.
11088
11089 2003-01-28  Dietmar Maurer  <dietmar@ximian.com>
11090
11091         * marshal.c (mono_marshal_get_managed_wrapper): generate valid IL code
11092
11093         * appdomain.h:added fix from Patrik: _MonoAppDomain is a MBR object
11094
11095         * marshal.c (mono_marshal_get_native_wrapper): generate valid IL code
11096
11097 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11098
11099         * icall.c: (ves_icall_System_CurrentTimeZone_GetTimeZoneData): raise an
11100         exception instead of going into an infinite loop on dates which it 
11101         can't yet handle.
11102
11103         * string-icalls.c (ves_icall_System_String_get_Chars): raise 
11104         out-of-range exception if needed.
11105
11106         * class.c (mono_class_setup_vtable): allow a virtual method to provide
11107         an implementation for an interface method and to override an inherited
11108         method at the same time. 
11109         Imagine a scenario when a virtual method is used to override a
11110         virtual abstract method in a parent class, and this same method 
11111         provides an implementation for an method inherited from an interface. 
11112         In this case, the interface resolution code will set im->slot, which 
11113         means that the virtual method override pass will skip this method 
11114         which means a pointer to the abstract method inherited from the parent
11115         will remain in the vtable of this non-abstract class.
11116
11117         * class.c: (mono_class_setup_vtable): continue search for a real 
11118         method if only an abstract method is found.     
11119
11120 Mon Jan 27 17:12:19 CET 2003 Paolo Molaro <lupus@ximian.com>
11121
11122         * reflection.c: add size to encoding for ByValStr and ByValArray
11123         marshal blob (from "Jerome Laban" <jlaban@wanadoo.fr>).
11124
11125 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11126
11127         * class.c (mono_class_setup_vtable): pass the override info as an
11128         argument.
11129
11130         * class.c (mono_class_setup_vtable): set the slot of overriding methods
11131         correctly.
11132         
11133         * reflection.c (ensure_runtime_vtable); add support for method 
11134         overrides.
11135         
11136 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11137
11138         * reflection.c (resolution_scope_from_image): Hack to work to work with
11139         dynamic assemblies.
11140
11141         * reflection.c (mono_image_typedef_or_ref): renamed to ..._aux and 
11142         added a 'force_ref' argument to force this function to allways return 
11143         a TypeRef. This is needed by mono_image_get_memberref_token ().
11144         
11145 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11146
11147         * reflection.c (mono_image_get_type_info): interfaces really don't have
11148         a parent.
11149
11150         * reflection.c (mono_image_basic_init): fill out missing fields of
11151         image structure.
11152
11153         * reflection.c (mono_image_basic_init): Invoke assembly load hooks for 
11154         dynamic assemblies. This is required so dynamic assemblies show up in
11155         AppDomain.GetAssemblies (), emit an AssembyLoadEvent, gets searched by
11156         Type::GetType() etc. This is consistent with MS behaviour.
11157
11158         * image.c image.h reflection.c: add newly created classes to the name 
11159         cache so mono_class_get () will find them.      
11160
11161 2003-01-27  Zoltan Varga  <vargaz@freemail.hu>
11162
11163         First part of changes to get IKVM.NET running under mono.
11164         
11165         * appdomain.h, appdomain.c: added new function 
11166         mono_domain_try_type_resolve() which will emit TypeResolve events. 
11167         This function will call AppDomain::DoTypeResolve to do the actual work.
11168
11169         * class.h, class.c, loader.c, object.c, reflection.h, reflection.c: 
11170         moved existing code dealing with dynamic tokens to a new function 
11171         called mono_reflection_lookup_dynamic_token (). This function will 
11172         raise TypeResolve events when appropriate. Since reflection.c is not 
11173         part of libmetadata, a new hook function called 
11174         mono_lookup_dynamic_token() is added to class.c which will call this.
11175
11176         * assembly.h assembly.c: make the invoke_load_hook function public,
11177         so it can be called for dynamic assemblies.
11178
11179         * icall.c (ves_icall_System_Runtime_CompilerServices_RuntimeHelpers_RunClassConstructor): skip interfaces since they do not have initializers.
11180
11181         * icall.c (ves_icall_type_from_name): emit a TypeResolve event if the 
11182         type isn't found.
11183
11184         * reflection.c reflection.h: change MonoDynamicAssembly.tokens to a 
11185         MonoGHashTable, since it contains pointers to objects which the GC 
11186         needs to track.
11187
11188         * assembly.c (search_loaded): remove unused variable.
11189         
11190 Mon Jan 27 12:18:45 CET 2003 Paolo Molaro <lupus@ximian.com>
11191
11192         * object.c: fixed issue exposed by gcc-generated IL programs
11193         that use RVA data for pointers.
11194
11195 2003-01-25  Martin Baulig  <martin@ximian.com>
11196
11197         * threads.c (start_wrapper): Moved the initialization of
11198         `start_func' above the mono_new_thread_init() call to which we
11199         pass it as argument.
11200
11201 2003-01-24  Martin Baulig  <martin@ximian.com>
11202
11203         * threads.h (MonoThreadCallbacks): Pass the thread ID instead of
11204         the MonoThread pointer.
11205
11206 2003-01-21  Miguel de Icaza  <miguel@ximian.com>
11207
11208         * icall.c: Rename `PowImpl' to Pow.
11209
11210 2003-01-23  Dick Porter  <dick@ximian.com>
11211
11212         * threads.c (start_wrapper): Create a Thread object if needed, so
11213         the Main() thread can do the class initialisation in a subthread
11214         that has been set up to allow managed code execution.
11215
11216         Pass the thread ID instead of the MonoThread pointer to the thread
11217         start and attach callbacks.  This change is required, because the
11218         jit thread start callback must be called _before_ the Thread
11219         object can be created.
11220         
11221         (mono_thread_init): Removed much object creation code that is no
11222         longer needed.  No managed code is called from here now.
11223
11224         * object.c (mono_runtime_exec_managed_code): Create a subthread
11225         for Main, and call back to the runtime to use it.
11226         Set the exit code when Main exits.
11227
11228         * gc.c: Make sure domain finalisation happens in a subthread.
11229         Re-enable threaded GC, fixing bug 31333 (again).
11230
11231         * environment.c: System.Environment internall calls (so far just
11232         ExitCode is here, the others are still in icall.c)
11233
11234         * appdomain.c (mono_runtime_cleanup): All threads running managed
11235         code should have finished before mono_runtime_cleanup() is
11236         reached, so no need to clean up threads.
11237
11238 2003-01-22  Martin Baulig  <martin@ximian.com>
11239
11240         * appdomain.h (MonoThreadStartCB): Added `MonoThread *thread' and
11241         `gpointer func' arguments.      
11242         (MonoThreadAttachCB): New typedef; like the old MonoThreadStartCB,
11243         but added `MonoThread *thread' argument.
11244         (mono_runtime_init): The last argument is now a MonoThreadAttachCB.
11245
11246         * threads.c (mono_new_thread_init): Added `gpointer func' argument
11247         and pass it to the mono_thread_start_cb callback.
11248         (mono_install_thread_callbacks): New public function to install a
11249         set of callbacks which are set by the debugger.
11250         (mono_thread_init): The last argument is now a MonoThreadAttachCB.
11251
11252 2003-01-22  Martin Baulig  <martin@ximian.com>
11253
11254         * Makefile.am: Install debug-mono-symfile.h.
11255
11256 2003-01-21  Aleksey Demakov <avd@openlinksw.com>
11257
11258         * marshal.c: fixed copy_from_managed and copy_to_unmanaged for 0 length.
11259
11260 2003-01-21  Dietmar Maurer  <dietmar@ximian.com>
11261
11262         * added the following fix from Jackson Harper <jackson@latitudegeo.com>
11263         * class.c (mono_ptr_class_get): correctly set access levels of pointers
11264         (mono_array_class_get): correctly set access levels of arrays
11265
11266 2003-01-20      Patrik Torstensson
11267         * image.h (MonoAssemblyName): changed major, minor, build, revision
11268         from signed to unsigned.
11269
11270 2003-01-20  sean kasun <skasun@azstarnet.com>
11271
11272         * reflection.c (load_cattr_value): Now this handles
11273         MONO_TYPE_SZARRAY.  Fixes bug #35629
11274
11275 2003-01-20  Miguel de Icaza  <miguel@ximian.com>
11276
11277         * marshal.c (emit_struct_conv): Handle MONO_TYPE_PTR as an
11278         integer value
11279
11280 2003-01-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11281
11282         * decimal.c: fixed bug #26056.
11283
11284 2003-01-17  Martin Baulig  <martin@ximian.com>
11285
11286         * gc.c: Raise an ExecutionEngineException instead of using g_error().
11287
11288 2003-01-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11289
11290         * exception.[ch]:
11291         (mono_get_exception_type_initialization): new function.
11292
11293         * object.c: throw a TypeInitializationException when an exception is
11294         thrown invoking the class constructor.
11295
11296 2003-01-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11297
11298         * reflection.c: fixed attribute reading.
11299
11300 2003-01-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11301
11302         * icall.c:
11303         (ves_icall_type_from_name): make it work as MS. Ie, if no assembly name
11304         provided, look for the type in the calling assembly and then in
11305         mscorlib; if the assembly name is provided, only try that one.
11306
11307 Tue Jan 14 14:52:52 CET 2003 Paolo Molaro <lupus@ximian.com>
11308
11309         * object.c: register the vtable before there is a chance it's
11310         queried again recursively.
11311
11312 2003-01-13  Duncan Mak  <duncan@ximian.com>
11313
11314         * Makefile.am (libmonoruntime_la_SOURCES): Change gc.h to
11315         gc-internal.h. 
11316         
11317 2003-01-12  Patrik Torstensson <totte@race-x-change.com>
11318
11319         * string-icall.[c|h], icall.c: Added support for CompareOrdinal mode
11320
11321 2003-01-11  Martin Baulig  <martin@ximian.com>
11322
11323         * debug-mono-symfile.h (MONO_SYMBOL_FILE_DYNAMIC_VERSION): Incremented
11324         this to 20 for the release.
11325
11326 2003-01-10  Dietmar Maurer  <dietmar@ximian.com>
11327
11328         * marshal.c (emit_struct_conv): added support for EXPLICIT_LAYOUT
11329
11330         * loader.c (mono_method_get_marshal_info): bug fix
11331
11332         * marshal.c (mono_marshal_get_ptr_to_struct): don't convert
11333         structures with explicit layout
11334
11335 Fri Jan 10 15:58:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11336
11337         * profiler.c: made the output more readable (and sorted). 
11338         Added caller information for the allocation profiler.
11339
11340 2003-01-09  Sebastien Pouliot  <spouliot@videotron.ca>
11341
11342         * icall.c, rand.c, rand.h: Prepended RNG functions with Internal.
11343
11344 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11345
11346         * icall.c: added ves_icall_System_Activator_CreateInstanceInternal. Used
11347         to get value types.
11348         
11349 Thu Jan 9 19:43:11 CET 2003 Paolo Molaro <lupus@ximian.com>
11350
11351         * object.c, profiler.h, profiler.c, profiler-private.h:
11352         Added object allocation profiler.
11353
11354 Thu Jan 9 16:17:00 CET 2003 Paolo Molaro <lupus@ximian.com>
11355
11356         * reflection.h, reflection.c: handle global methods.
11357         Compress blob entries.
11358
11359 Thu Jan 9 15:54:53 CET 2003 Paolo Molaro <lupus@ximian.com>
11360
11361         * marshal.c: fix compilation.
11362
11363 2003-01-09  Dietmar Maurer  <dietmar@ximian.com>
11364
11365         * loader.c (mono_method_get_marshal_info): impl.
11366
11367         * metadata.c (mono_metadata_field_info): use mono_metadata_get_marshal_info
11368
11369 2003-01-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11370
11371         * icall.c: applied fix from Zoltan Varga that fixes Type.IsPrimitive
11372         for reference types.
11373
11374 Wed Jan 8 20:11:46 CET 2003 Paolo Molaro <lupus@ximian.com>
11375
11376         * loader.c: fixed off by one error in loaded parameter names.
11377
11378 2003-01-08  Dietmar Maurer  <dietmar@ximian.com>
11379
11380         * marshal.c (mono_marshal_get_icall_wrapper): like
11381         mono_marshal_get_native_wrapper, but simpler and use a MonoMethodSignature
11382         instead of a MonoMethod.
11383
11384 2003-01-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11385
11386         * decimal.c: fixed bug #36537.
11387
11388 Mon Jan 6 19:37:59 CET 2003 Paolo Molaro <lupus@ximian.com>
11389
11390         * marshal.c: throw a missing method exception if a
11391         P/Invoke method is not found.
11392
11393 Sun Jan 5 11:57:09 CET 2003 Paolo Molaro <lupus@ximian.com>
11394
11395         * icall.c: allow a null this for constructors.
11396
11397 Sat Jan 4 18:28:42 CET 2003 Paolo Molaro <lupus@ximian.com>
11398
11399         * icall.c: raise the proper exceptions if the arguments to the
11400         internal Invoke are incorrect.
11401
11402 2003-01-03  Dietmar Maurer  <dietmar@ximian.com>
11403
11404         * marshal.c (mono_marshal_get_ptr_to_struct): code cleanups
11405
11406 2003-01-03  Martin Baulig  <martin@ximian.com>
11407
11408         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11409
11410 2002-12-31  Martin Baulig  <martin@ximian.com>
11411
11412         * debug-mono-symfile.c: Completely rewrote the type section.
11413         Instead of using individual malloc()ed fields, we use one big
11414         continuous memory area and offsets into this area.
11415         See the comments in the source code for details.
11416
11417 2002-12-30  Martin Baulig  <martin@ximian.com>
11418
11419         * debug-mono-symfile.h (MonoDebugTypeInfo): Renamed to MonoDebugClassInfo.
11420
11421 2002-12-30  Martin Baulig  <martin@ximian.com>
11422
11423         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Include the
11424         line number table in this data blob instead of using an external
11425         pointer.
11426
11427 2002-12-28  Martin Baulig  <martin@ximian.com>
11428
11429         * debug-mono-symfile.h: Increment MONO_SYMBOL_FILE_DYNAMIC_VERSION.
11430
11431 2002-12-22  Rachel Hestilow  <hestilow@ximian.com>
11432
11433         * marshal.c (mono_marshal_get_runtime_invoke): Support MONO_TYPE_CHAR
11434         as a boxed return type.
11435
11436 2002-12-21  Miguel de Icaza  <miguel@ximian.com>
11437
11438         * appdomain.c
11439         (ves_icall_System_AppDomainSetup_InitAppDomainSetup): Use
11440         g_build_filename to properly get separators on the filename created.
11441
11442         * object.h: Small change, introduce MonoMarshalByRefObject to
11443         track the layout of that structure in the C# universe as we make
11444         changes there.
11445
11446 Thu Dec 19 16:23:19 CET 2002 Paolo Molaro <lupus@ximian.com>
11447
11448         * object.c: removed assert to allow static fields on interfaces.
11449         * loader.c: a TypeSpec may be used for any type, not just arrays.
11450
11451 Thu Dec 19 14:19:42 CET 2002 Paolo Molaro <lupus@ximian.com>
11452
11453         * class.c, class.h: added mono_class_array_element_size ().
11454         Ignore static methods in interfaces.
11455
11456 2002-12-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11457
11458         * threads.c: fixed the build under cygwin.
11459
11460 Wed Dec 18 18:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
11461
11462         * reflection.c: handle nullref constants. Allocate keys for
11463         reflection handles with the GC.
11464
11465 Wed Dec 18 11:34:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11466
11467         * threads.c, threads.h: added mono_thread_get_abort_signal()
11468         to get a suitable signal for thread abort.
11469
11470 Wed Dec 18 11:26:18 CET 2002 Paolo Molaro <lupus@ximian.com>
11471
11472         * metadata.c: fix handling of ExportedType table.
11473
11474 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11475
11476         * icall.c: added WriteWindowsDebugString internal call.
11477
11478 2002-12-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11479
11480         * reflection.h: added fields to match C# implementation.
11481
11482 2002-12-14  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11483
11484         * icall.c: patch from Jaroslaw Kowalski to fix Environment.MachineName.
11485
11486 2002-12-12  Juli Mallett  <jmallett@FreeBSD.org>
11487
11488         * gc.h, gc-internal.h: Rename header for GC internal calls to
11489         gc-internal.h from gc.h as to not clash with Boehm GC having its
11490         header installed as <gc.h> in outside include paths.
11491         * appdomain.c, gc.c, icall.c, object.c: Account for aforementioned.
11492         * threads.c: If SIGRTMIN is not defined, fall back to SIGUSR1.
11493
11494 2002-12-12  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11495
11496         * icall.c: assign minor, build and revision in FillName.
11497
11498 2002-12-11  Zoltan Varga  <vargaz@freemail.hu>
11499
11500         * image.h reflection.h reflection.c class.h class.c loader.c object.c:
11501         Added support for running code generated by Reflection.Emit.
11502
11503 2002-12-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11504
11505         * appdomain.c: check for NULL argument in LoadFrom.
11506
11507 2002-12-10  Dick Porter  <dick@ximian.com>
11508
11509         * threads.c: WaitHandle fixes from Tum <tum@veridicus.com>
11510
11511 2002-12-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11512
11513         * appdomain.c: fix buglet when building exe file name.  Handle full
11514         assembly name (needed after latest changes to AssemblyName).
11515         * image.c:
11516         (mono_image_close): free some hashtables.
11517
11518 2002-12-05  Dietmar Maurer  <dietmar@ximian.com>
11519
11520         * threads.c (ves_icall_System_Threading_Thread_Abort): we use SIGRTMIN 
11521         instead of SIGUSR1, because SIGUSR1 is used by the pthread implementation 
11522         on some systems (redhat 7.3) 
11523
11524 Thu Dec 5 16:13:40 CET 2002 Paolo Molaro <lupus@ximian.com>
11525
11526         * threads.c: delete the critical section of a sync block,
11527         spotted and fixed by tum@veridicus.com (Thong (Tum) Nguyen).
11528
11529 Thu Dec 5 12:52:52 CET 2002 Paolo Molaro <lupus@ximian.com>
11530
11531         * pedump.c, cil-coff.h, monosn.c: add strong name cli header flag.
11532
11533 2002-12-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11534
11535         * appdomain.[ch]: handle the assembly preload event to try loading the
11536         assemblies using the paths we have in the current domain.
11537
11538         * assembly.[ch]: created an assembly preload hook that is called to try
11539         loading the assembly by other means that the ones provided here.
11540
11541         * domain.c: initialize the domain search path.
11542
11543         From now on, assemblies (TODO: except corlib and System) are loaded
11544         according to these rules when using mono_assembly_load ():
11545
11546                 1. It tries to load the assembly from the ApplicationBase
11547                 of the current domain appending .dll and .exe (TODO: have to
11548                 try loading from name/name.dll and name/name.exe).
11549
11550                 2. It tries the search path specified in PrivateBinPath for the
11551                 current domain (if any).
11552
11553                 3. Previous behavior.
11554
11555 Wed Dec 4 16:02:25 CET 2002 Paolo Molaro <lupus@ximian.com>
11556
11557         * icall.c: implemented GetInterfaceMap() related icall.
11558         * domain.c, loader.h: load MethodInfo in mono_defaults.
11559
11560 Wed Dec 4 11:02:30 CET 2002 Paolo Molaro <lupus@ximian.com>
11561
11562         * gc.c: disable the finalizer thread for now, untill all the issues
11563         with it are resolved.
11564
11565 Wed Dec 4 10:44:01 CET 2002 Paolo Molaro <lupus@ximian.com>
11566
11567         * string-icalls.c: handle embedded nulls in string ctor when the
11568         length is specified.
11569
11570 Tue Dec 3 19:29:20 CET 2002 Paolo Molaro <lupus@ximian.com>
11571
11572         * class.c: look for explicit interface implementation in parent
11573         classes, too.
11574
11575 2002-12-03  Dietmar Maurer  <dietmar@ximian.com>
11576
11577         * gc.c (run_finalize): dont run the finalizer (strange behaviour on rh7.3) 
11578
11579 Tue Dec 3 12:40:06 CET 2002 Paolo Molaro <lupus@ximian.com>
11580
11581         * gc.c: protect handles with a critical section.
11582
11583 2002-12-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11584
11585         * icall.c:
11586         (ves_icall_type_from_name): it now has throwOnError and ignoreCase
11587         parameters. If no assembly specified, try getting the type from all
11588         the assemblies in the current domain, else, load the assembly and get
11589         the type from it.
11590
11591 2002-11-30  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11592
11593         * marshal.c: applied patch from Aleksey Demakov that fixes
11594         ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringUni.
11595
11596 2002-11-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11597
11598         * icall.c: fixed get_location.
11599
11600 2002-11-28  Dietmar Maurer  <dietmar@ximian.com>
11601
11602         * icall.c: moved MONO_ARCH_SAVE_REGS to the end of the
11603         declarations to make it work with older gcc. 
11604
11605         * loader.c (mono_get_method): set signature->pinvoke for native calls
11606
11607 2002-11-20  Dick Porter  <dick@ximian.com>
11608
11609         * threads.c (mono_thread_init): Set the main thread's handle
11610
11611 Tue Nov 19 14:15:34 CET 2002 Paolo Molaro <lupus@ximian.com>
11612
11613         * gc.c: allow compilation without GC support. Changed to match the
11614         mono coding style.
11615
11616 Mon Nov 18 18:41:51 CET 2002 Paolo Molaro <lupus@ximian.com>
11617
11618         * gc.c: don't start the finalizer thread if the env var GC_DONT_GC is set.
11619
11620 Mon Nov 18 16:35:22 CET 2002 Paolo Molaro <lupus@ximian.com>
11621
11622         * reflection.c: set a public key token on the core assemblies.
11623
11624 2002-11-18  Dick Porter  <dick@ximian.com>
11625
11626         * threads.c: Split out some thread initialisation so that other
11627         files can set the start callback function.
11628
11629         * gc.c: Run finalisers in a separate thread, to avoid stack
11630         overflow.  Fixes bug 31333.
11631
11632         * appdomain.c: Set up GC finalisation thread.
11633
11634         * reflection.c: 
11635         * object.c: 
11636         * domain.c: Use gc.h macros for GC_malloc
11637         
11638 2002-11-15  Dick Porter  <dick@ximian.com>
11639
11640         * threadpool.c: 
11641         * threads.c:
11642         * appdomain.c: Removed mono_runtime_init_with_attach(),
11643         mono_thread_create_arg(), and mono_thread_init_with_attach(), by
11644         merging the extra parameter with the existing function.  Removed
11645         unneeded code in mono_thread_attach().
11646
11647 2002-11-14  Dietmar Maurer  <dietmar@ximian.com>
11648
11649         * image.c (mono_image_loaded_by_guid): a method to get loaded
11650         images by guid. 
11651         (load_metadata_ptrs): we store the guid as string.
11652
11653 2002-11-11  Dietmar Maurer  <dietmar@ximian.com>
11654
11655         * assembly.c (mono_assembly_open): check the guid of aot compiled lib.
11656
11657         * metadata.c (mono_guid_to_string): imported method form Zoltan
11658         Varga (slightly modified)
11659
11660         * assembly.c (mono_assembly_open): load precompiled code
11661
11662         * loader.h (MonoMethod): we store the method token for use in the
11663         aot compiler. 
11664
11665 2002-11-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11666
11667         * appdomain.c: insert the loaded assemblies in the domain->assemblies in
11668         the hook function called when an assembly is loaded.
11669         
11670         * domain.c: Modified file.
11671         (mono_domain_assembly_load): removed hash table insertion of assemblies.
11672
11673         Fixes bug #33196.
11674
11675 2002-11-07  Miguel de Icaza  <miguel@ximian.com>
11676
11677         * reflection.c: Map PEFileKind to the value expected by the WinNT
11678         image loader. 
11679
11680 2002-11-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11681
11682         * rand.c: use /dev/urandom. If it fails to open, use the previous one.
11683         Read until the buffer is filled completely.
11684
11685 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11686
11687         * icall.c: implemented MonoType.InternalGetEvent ().
11688
11689 2002-11-04  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11690
11691         * appdomain.c: implemented InitAppDomainSetup. Delayed
11692         AppDomain.SetupInformation until mono_runtime_exec_main, where we get
11693         the entry_assembly.
11694
11695         * assembly.c: base_dir is now an absolute path ending with
11696         G_DIR_SEPARATOR.
11697
11698         * icall.c: modified get_location according to the above changes.
11699
11700         * object.c: init AppDomain.SetupInformation for the default domain after
11701         we have the entry assembly.
11702
11703         * domain.c: when unloading a domain, setup = NULL.
11704
11705 2002-11-04  Dietmar Maurer  <dietmar@ximian.com>
11706
11707         * marshal.c (emit_ptr_to_str_conv): try to fix bug 29548
11708
11709 Sun Nov 3 15:39:28 CET 2002 Paolo Molaro <lupus@ximian.com>
11710
11711         * object.h, object.c: introduced mono_object_get_virtual_method ()
11712         to lookup the method invoked on an object when a callvirt is done on
11713         a method.
11714         * icall.c: make MethodInfo::Invoke() always do a virtual call.
11715
11716 2002-11-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11717
11718         * appdomain.c: invoke AssemblyLoad and AsemblyResolve events in the
11719         current domain when loaded an assembly and failed to load it.
11720
11721         * icall.c: changed ...Assembly_GetType to Assembly_InternalGetType.
11722
11723 2002-10-31  Dick Porter  <dick@ximian.com>
11724
11725         * icall.c: 
11726         * file-io.h: 
11727         * file-io.c: Return the error status in a parameter, as the
11728         GetLastError() value has long since been blown away if we try and
11729         look it up in a subsequent internal call invocation.  Delete the
11730         GetLastError() internal call, because it's useless.
11731
11732 2002-10-31  Dietmar Maurer  <dietmar@ximian.com>
11733
11734         * class.[ch]: added cast_class to fix bug 29517
11735
11736 Wed Oct 30 19:37:32 CET 2002 Paolo Molaro <lupus@ximian.com>
11737
11738         * marshal.c: create valid IL code in the filter clause:
11739         the new JIT is less forgiving:-)
11740
11741 2002-10-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11742
11743         * icall.c: removed get_property internal call.
11744
11745 2002-10-25  Zoltan Varga  <vargaz@freemail.hu>
11746
11747         * appdomain.h domain.c: Added an ID to appdomains.
11748         
11749         * threads.c threads.h icall.c: Implement icall
11750         Thread:GetDomainID(), and remove unused icall 
11751         CurrentThreadDomain_internal.
11752
11753 2002-10-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11754
11755         * icall.c: Don't recurse through the base types in GetConstructor.
11756         Fixes bug #32063. 
11757
11758 Thu Oct 24 16:56:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
11759
11760         * mempool.h, mempool.c: added mono_mempool_empty() and
11761         mono_mempool_stats().
11762
11763 2002-10-23  Dick Porter  <dick@ximian.com>
11764
11765         * file-io.c: 
11766         * file-io.h: 
11767         * icall.c: Added MonoIO.GetFileType internal call
11768
11769 2002-10-17  Dick Porter  <dick@ximian.com>
11770
11771         * appdomain.c (mono_runtime_cleanup): Don't signal the async
11772         delegate semaphore before waiting for all threads to finish,
11773         because new threads can also call async delegates.  Fixes bug
11774         32004.
11775
11776         * threadpool.c (async_invoke_thread): Only wait for 500ms instead
11777         of 3 seconds, in case another async job is queued.  (This part is
11778         needed because the bug fix reintroduced the 3s exit lag.)  This
11779         makes the mono_runtime_shutdown flag superfluous.
11780
11781 Thu Oct 17 13:11:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
11782
11783         * reflection.c: include ehader size in method section headers.
11784         Really check for suplicated modules entries.
11785
11786 2002-10-17  Martin Baulig  <martin@gnome.org>
11787
11788         * debug-mono-symfile.c: Added back support for locals.
11789
11790 2002-10-14  Martin Baulig  <martin@gnome.org>
11791
11792         * debug-mono-symfile.c: Added MONO_TYPE_I, MONO_TYPE_U and
11793         MONO_TYPE_VOID.
11794
11795 2002-10-14  Martin Baulig  <martin@gnome.org>
11796
11797         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetType): Use
11798         mono_class_get() instead of looking in the class cache. 
11799
11800 2002-10-13  Martin Baulig  <martin@gnome.org>
11801
11802         * debug-mono-symfile.c: Set version number to 28, include the
11803         signature in method names.
11804
11805 2002-10-13  Martin Baulig  <martin@gnome.org>
11806
11807         * debug-mono-symfile.h: Set version number to 27.
11808
11809 2002-10-11  Martin Baulig  <martin@gnome.org>
11810
11811         * gc.c: Don't register/unregister NULL pointers as disappearing links.
11812
11813 Thu Oct 10 14:56:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
11814
11815         * metadata.c, metadata.h: added helper function to allocate signatures.
11816
11817 2002-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11818
11819         * icall.c: added internal call to get the location of machine.config.
11820
11821 2002-10-08  Martin Baulig  <martin@gnome.org>
11822
11823         * debug-mono-symfile.c: Ignore classes with a pending init for the
11824         moment.
11825
11826 2002-10-03  Dick Porter  <dick@ximian.com>
11827
11828         * threads.c: Freebsd pthread_t is a pointer
11829
11830 2002-10-03  Dick Porter  <dick@ximian.com>
11831
11832         * socket-io.c: Implemented GetHostName_internal
11833
11834 2002-10-02  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11835
11836         * mono-config.c:
11837         (mono_config_parse_file): don't leak the text.
11838
11839 2002-10-02  Martin Baulig  <martin@gnome.org>
11840
11841         * debug-mono-symfile.c: Added support for methods.
11842
11843 2002-10-01  Martin Baulig  <martin@gnome.org>
11844
11845         * debug-mono-symfile.c: Don't emit methods and line numbers for
11846         the dynamic symbol file, just write the type table.  We can easily
11847         have an external helper program which creates a symbol file for an
11848         IL file.        
11849
11850 2002-10-01  Dick Porter  <dick@ximian.com>
11851
11852         * threads.c (ves_icall_System_Threading_Thread_Start_internal):
11853         Only add the handle to the cleanup array when we're about to
11854         launch the thread.  Bug 31425 deadlocked when the test was run on
11855         mono under w32.
11856
11857 2002-10-01  Martin Baulig  <martin@gnome.org>
11858
11859         * debug-mono-symfile.c: Added support for properties.
11860
11861 Fri Sep 27 18:55:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
11862
11863         * reflection.c: unaligned store fix from Mark Crichton
11864         <crichton@gimp.org>.
11865
11866 2002-09-27  Martin Baulig  <martin@gnome.org>
11867
11868         * icall.c ("System.Reflection.Assembly::GetReferencedAssemblies"):
11869         New interncall.
11870
11871 Fri Sep 27 15:38:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
11872
11873         * assembly.h, assembly.c: use a sane API to hook into the assembly
11874         loading process instead of a useless special-purpouse hack
11875         (ngen needs a hook, too, for example).
11876
11877 2002-09-27  Dick Porter  <dick@ximian.com>
11878
11879         * threads.c (mono_thread_init): Call GetCurrentProcess() so
11880         io-layer can set up some process handle info.  Not needed on w32,
11881         but doesn't hurt either.
11882
11883         * process.c: Pass the program name in the second parameter to
11884         CreateProcess, so the path is searched.  Include the working
11885         directory. Implemented process name, process enumeration, and some
11886         process detail internal calls.
11887         
11888         * icall.c: Added internal calls for process lookup, and some
11889         process details
11890
11891 2002-09-26  Martin Baulig  <martin@gnome.org>
11892
11893         * assembly.c (mono_install_open_assembly_hook): New global
11894         function to install a function to be invoked each time a new
11895         assembly is loaded.
11896         (mono_assembly_open): Run this callback function if set.
11897
11898         * debug-mono-symfile.c: Put back line numbers for the dynamic
11899         symbol file and also record the .il file as source file.  This
11900         allows us to install the temporary symbol file as `file.dbg' just
11901         like a compiler-generated one.
11902
11903 2002-09-26  Nick Zigarovich <nick@chemlab.org>
11904
11905         * Corrected typo in gc.c (BOHEM vs BOEHM).
11906
11907 2002-09-25  Gonzalo Paniagua Javier <gonzalo@ximian.com>
11908
11909         * icall.c: fixed bug #31235 by copying a few lines from GetMethods to
11910         GetProperties. Also avoid calling g_slist_length in GetProperties and
11911         GetMethods.
11912
11913 Wed Sep 25 22:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
11914
11915         * reflection.c: avoid unaligned stores (bug spotted by
11916         Mark Crichton  <crichton@gimp.org>).
11917
11918 2002-09-25  Martin Baulig  <martin@gnome.org>
11919
11920         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Use pointers
11921         instead of guint64 for addresses and added prologue/epilogue info.
11922
11923 2002-09-25  Martin Baulig  <martin@gnome.org>
11924
11925         * debug-mono-symfile.h (MonoDebugLineNumberEntry): New type to
11926         store line number info.  For the dynamic symbol file, we only need
11927         to provide the JIT generated dynamic line number info for the dynamic
11928         symbol file.
11929
11930 2002-09-25  Martin Baulig  <martin@gnome.org>
11931
11932         * debug-mono-symfile.h: Incremented version number.
11933
11934 2002-09-24  Martin Baulig  <martin@gnome.org>
11935
11936         * class.c (mono_debugger_class_init_func): New global function
11937         pointer variable.
11938         (mono_class_init): If mono_debugger_class_init_func is non-NULL,
11939         call it.
11940
11941         * debug-mono-symfile.c (mono_debug_symfile_add_type): New
11942         function.  This is called via the mono_debugger_class_init_func
11943         hook to add all types to the dynamic type table.
11944         (ves_icall_MonoDebugger_GetType): New interncall to get a class
11945         from its metadata token.
11946
11947         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetType"):
11948         New interncall for the debugger.
11949
11950 2002-09-24  Nick Drochak <ndrochak@gol.com>
11951
11952         * icall.c (ves_icall_System_Enum_ToObject): validate the type parameter
11953         before using it in case it is null.
11954         
11955 Tue Sep 24 13:24:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
11956
11957         * metadata.c: allow custom modifiers in local var signatures
11958         (bug spotted by Zoltan Varga).
11959
11960 Tue Sep 24 12:12:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
11961
11962         * class.c: deal with the <Module> class that may have a NULL vtable.
11963         Eliminate warnings.
11964
11965 Tue Sep 24 11:28:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
11966
11967         * image.c, image.h: more strong name helpers.
11968         * monosn.c: more work: convert pem keys to cryptoapi format.
11969
11970 Tue Sep 24 11:27:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
11971
11972         * string-icalls.c: speedup IndexOf.
11973
11974 Tue Sep 24 11:17:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
11975
11976         * icall.c: updates from Zoltan.2.Varga@nokia.com.
11977
11978 Tue Sep 24 11:09:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
11979
11980         * icall.c: cleanup: use mono_object_domain ().
11981
11982 2002-09-23  Martin Baulig  <martin@gnome.org>
11983
11984         * debug-mono-symfile.c: Improved type support.
11985
11986 2002-09-22  Martin Baulig  <martin@gnome.org>
11987
11988         * debug-mono-symfile.c: Added support for reference types and strings.
11989
11990 2002-09-22  Martin Baulig  <martin@gnome.org>
11991
11992         * debug-mono-symfile.c: Started to work on the type table.
11993
11994 2002-09-21  Martin Baulig  <martin@gnome.org>
11995
11996         * debug-mono-symfile.c: Largely reworked the symbol table format.
11997         The symbol table is now incrementally updated each time a new
11998         method is added.  We're now also using our own magic and version
11999         so that you don't need to recompile all your classes if the
12000         dynamic table changes.
12001         (mono_debug_update_mono_symbol_file): Removed.
12002         (mono_debug_symfile_add_method): New function to add a method.
12003
12004 2002-09-21  Martin Baulig  <martin@gnome.org>
12005
12006         * icall.c
12007         ("System.Reflection.Assembly::MonoDebugger_GetLocalTypeFromSignature"):
12008         New interncall.
12009
12010         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetLocalTypeFromSignature):
12011         New interncall to get a method from its metadata token.
12012
12013 2002-09-21  Martin Baulig  <martin@gnome.org>
12014
12015         * debug-mono-symfile.c: Create type table.
12016
12017 2002-09-20  Martin Baulig  <martin@gnome.org>
12018
12019         * debug-mono-symfile.c: Reflect latest Mono.CSharp.Debugger changes.
12020
12021 2002-09-20  Martin Baulig  <martin@gnome.org>
12022
12023         * debug-mono-symfile.c: Provide information about params and locals.
12024
12025 2002-09-20  Martin Baulig  <martin@gnome.org>
12026
12027         * icall.c ("System.Reflection.Assembly::MonoDebugger_GetMethod"):
12028         New interncall.
12029
12030         * debug-mono-symfile.c (ves_icall_MonoDebugger_GetMethod): New
12031         interncall to get a method from its metadata token.
12032
12033 2002-09-20  Martin Baulig  <martin@gnome.org>
12034
12035         * debug-mono-symfile.c: Added a few checks for method->header
12036         being non-NULL.  This should never happen, but for the moment
12037         let's use a g_warning() rather than a g_assert().
12038
12039 2002-09-19  Mark Crichton  <crichton@gimp.org>
12040
12041         * gc.c: ves_icall_System_GCHandle_FreeHandle made a call to libgc
12042         even if support for it isn't present.  Added an #ifdef to fix this.
12043
12044         * socket-io.c: Added checks back for Solaris support.
12045
12046 2002-09-19  Martin Baulig  <martin@gnome.org>
12047
12048         * debug-mono-symfile.c (read_string, write_string): Reflect latest
12049         changes in the symbol file format.
12050
12051 2002-09-18  Martin Baulig  <martin@gnome.org>
12052
12053         * debug-mono-symfile.c: Set version number to 21.
12054
12055 2002-09-18  Dick Porter  <dick@ximian.com>
12056
12057         * threads.c (mon_new): Use the GC_MALLOC macro to hide differences
12058         on netbsd.  Fixes bug 30051.
12059
12060 2002-09-17  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12061
12062         * reflection.c:
12063         (set_version_from_string): little fix.
12064
12065 Mon Sep 16 18:57:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12066
12067         * monosn.c, Makefile.am: added strong name utility.
12068         * reflection.h, reflection.c: implemented delayed signing,
12069         locale, version and hash id assembly attributes.
12070
12071 Mon Sep 16 18:51:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12072
12073         * loader.c, metadata.c: load param attributes in signatures.
12074
12075 2002-09-16  Martin Baulig  <martin@gnome.org>
12076
12077         * debug-mono-symfile.c: Added string table with all method names.
12078
12079 2002-09-14  Martin Baulig  <martin@gnome.org>
12080
12081         * debug-mono-symfile.h (MonoSymbolFile): Added method range table for
12082         fast method lookup.
12083
12084 Fri Sep 13 16:04:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12085
12086         * reflection.c: record the public key token of referenced assemblies.
12087
12088 Fri Sep 13 15:41:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12089
12090         * image.c, image.h: added functions to get the strong name and the
12091         public key of an assembly.
12092         * pedump.c: use them.
12093
12094 2002-09-12  Dietmar Maurer  <dietmar@ximian.com>
12095
12096         * marshal.c (emit_str_to_ptr_conv): support marshalling of delegates.
12097
12098 2002-09-12  Miguel de Icaza  <miguel@ximian.com>
12099
12100         * marshal.c (mono_marshal_get_managed_wrapper): Added
12101         MONO_TYPE_BOOLEAN 
12102
12103 2002-09-11  Martin Baulig  <martin@gnome.org>
12104
12105         * gc.c: Call GC_unregister_disappearing_link() on all links when
12106         finalizing them, this is necessary to aviod a crash in boehm's
12107         finalize handler.
12108
12109 Wed Sep 11 17:06:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12110
12111         * gc.c: handle GetTarget for finalized objects spotted and fixed by
12112         nick@chemlab.org.
12113
12114 Wed Sep 11 15:27:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12115
12116         * icall.c: implemented MonoType::Module.
12117         * reflection.c, reflection.h: mono_module_get_object () from
12118         Tomi Pakarinen <tomi.pakarinen@welho.com>.
12119
12120 Wed Sep 11 12:53:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
12121
12122         * icall.c: ignore overridden methods in GetMethods ().
12123         Fix for FieldInfo::SetValue().
12124         * object.c: handle float/double in runtime invoke.
12125
12126 Tue Sep 10 15:51:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
12127
12128         * object.c: allow a constructor to be called again on an object.
12129
12130 Tue Sep 10 11:58:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12131
12132         * class.h, class.c: move field layout code to it's own function and
12133         export it. Get an interface id earlier. Move fields in MonoClass
12134         so they are more cache friendly and align the bitfields.
12135         * loader.c: temporary handle get_param_names() for a runtime method.
12136         * reflection.c, reflection.h: more code to handle runtime creation of
12137         types.
12138
12139 2002-09-09  Martin Baulig  <martin@gnome.org>
12140
12141         * marshal.c (mono_marshal_get_native_wrapper): We need to use a special
12142         signature with the pinvoke field being set for the actual call.
12143
12144 Sat Sep 7 10:12:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12145
12146         * icall.c: removed some unused icalls. Start of map of glib charsets
12147         to corlib names. Implemented RuntimeMethod::GetFunctionPointer ().
12148
12149 Fri Sep 6 16:08:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12150
12151         * debug-helpers.c: break infinite loop (found and fixed by
12152         Holger Arnold <harnold@gmx.de>).
12153
12154 Thu Sep 5 18:50:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
12155
12156         * icall.c: target may be null in create_delegate.
12157
12158 Thu Sep 5 17:42:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12159
12160         * marshal.c: handle a boolean return type.
12161
12162 Thu Sep 5 13:09:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
12163
12164         * gc.c: put HIDE_POINTER/REVEAL_POINTER only here.
12165
12166 Wed Sep 4 19:23:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12167
12168         * gc.c: fix weakreferences.
12169
12170 Wed Sep 4 13:59:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
12171
12172         * icall.c: added icall to get default codepage.
12173
12174 2002-09-03  Dick Porter  <dick@ximian.com>
12175
12176         * threads.h: 
12177         * threads.c: Use MonoThread instead of MonoObject where
12178         apropriate.
12179
12180         Store running thread objects in a hash table, so that we have all
12181         the info to hand when waiting for them to finish
12182         (means we don't need OpenThread() any more, so mingw builds should
12183         be fully functional again.)
12184
12185         * verify.c:
12186         * object.h: Added thread ID to MonoThread
12187
12188 2002-09-03  Martin Baulig  <martin@gnome.org>
12189
12190         * icall.c (System.Reflection.Assembly::get_location): New interncall.
12191
12192 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12193
12194         * icall.c: fixed leak in get_temp_path. Thanks lupus.
12195
12196 2002-09-03  Martin Baulig  <martin@gnome.org>
12197
12198         * debug-helpers.c (mono_disasm_code_one): Added `const guchar **endp'
12199         argument to store the end address of the disassembled instruction.
12200
12201         * debug-mono-symfile.h (MonoDebugMethodInfo, MonoDebugVarInfo): Moved
12202         here from debug-symfile.h.
12203         (MonoDebugMethodJitInfo): Moved all fields which are filled out by the
12204         JIT into this struct.
12205         (MonoSymbolFile): Added `char *image_file' field.
12206         (MonoDebugGetMethodFunc): Removed.
12207         (mono_debug_update_mono_symbol_file): Removed the hash table argument.
12208         (mono_debug_create_mono_symbol_file): Removed the `source_file' argument.
12209         (mono_debug_find_method): New method.
12210
12211         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): Always
12212         create a full symbol file.
12213         (mono_debug_update_mono_symbol_file): Don't distinguish between dynamic
12214         and static symbol files.
12215         (mono_debug_find_method): The symbol file keeps an internal method hash,
12216         call this to get a MonoDebugMethodInfo from a MonoMethod.
12217
12218         * debug-symfile.[ch]: Removed.
12219
12220 2002-08-29  Miguel de Icaza  <miguel@ximian.com>
12221
12222         * image.c (do_mono_image_open): Remove linker version check.
12223
12224 2002-08-29  Dietmar Maurer  <dietmar@ximian.com>
12225
12226         * marshal.c (mono_marshal_get_managed_wrapper): don't cache
12227         wrappers for instance methods.
12228         
12229 2002-08-29  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12230
12231         * icall.c: added ves_icall_System_IO_Path_get_temp_path.
12232
12233 2002-08-28  Dick Porter  <dick@ximian.com>
12234
12235         * Makefile.am: Export HOST_CC for w32 builds
12236
12237 Tue Aug 27 18:34:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
12238
12239         * file-io.c process.c: MonoString are null terminated, no
12240         need for mono_string_to_utf16() anymore.
12241
12242 Tue Aug 27 17:51:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12243
12244         * icall.c, unicode.h, unicode.c: removed unused iconv stuff.
12245
12246 Tue Aug 27 16:38:58 CEST 2002 Paolo Molaro <lupus@ximian.com>
12247
12248         * icall.c, reflection.h: speedup System.MonoType.
12249
12250 Tue Aug 27 16:37:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
12251
12252         * reflection.c: allow null as the value of a string argument in
12253         custom attributes constructors.
12254
12255 2002-08-27  Martin Baulig  <martin@gnome.org>
12256
12257         * debug-mono-symfile.h (MonoSymbolFileMethodAddress): Removed the
12258         `trampoline_address' field.
12259
12260 2002-08-27  Dietmar Maurer  <dietmar@ximian.com>
12261
12262         * marshal.c (mono_marshal_get_native_wrapper): removed wrong null
12263         check (fixes bug #29486) 
12264
12265 2002-08-27  Martin Baulig  <martin@gnome.org>
12266
12267         * debug-mono-symfile.c: Changed the file format in a way that allows us
12268         open it read-only and to use a specially malloced area for all the
12269         dynamic data.  We can now also generate a symbol file on-the-fly if we're
12270         debugging IL code and there is no MCS generated symbol file for it.
12271
12272 Mon Aug 26 16:47:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
12273
12274         * object.c: added a define for a good string and array
12275         creation speedup (not enabled by default because we need to deal with
12276         the synch stuff).
12277
12278 2002-08-26  Martin Baulig  <martin@gnome.org>
12279
12280         * debug-mono-symfile.c (mono_debug_create_mono_symbol_file): New
12281         function to create a dynamic symbol file.  This is used by the
12282         debugger to create a symbol file for IL code on-the-fly.
12283
12284 2002-08-26  Martin Baulig  <martin@gnome.org>
12285
12286         * loader.c (mono_lookup_pinvoke_call): Include the error message
12287         from g_module_error() in the error message.
12288
12289 2002-08-24  Martin Baulig  <martin@gnome.org>
12290
12291         * debug-mono-symfile.c (mono_debug_update_mono_symbol_file): New
12292         function to update the symbol file.  The symbol file is mmap()ed
12293         writable, but private.  This allows us to install the symbol file
12294         together with the assembly.
12295
12296 2002-08-24  Martin Baulig  <martin@gnome.org>
12297
12298         * debug-mono-symfile.[ch]: New files.  Similar to debug-symfile.[ch]
12299         but they can read the new symbol file format which mcs is now creating.
12300
12301         * debug-symfile.c (mono_debug_find_source_location): Moved to
12302         debug-mono-symfile.c; this is now operating on the new symbol file.
12303
12304 2002-08-23  Martin Baulig  <martin@gnome.org>
12305
12306         * debug-helpers.c (mono_method_desc_from_method): New function to get
12307         a MonoMethodDesc from a MonoMethod.
12308
12309 Fri Aug 23 15:54:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
12310
12311         * object.c: fixes assertion failure caused by multiple ExecuteAssembly
12312         calls for same domain (patch by Tomi Pakarinen <Tomi.Pakarinen@iki.fi>).
12313
12314 Fri Aug 23 12:14:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
12315
12316         * string-icalls.[ch]: make helper methods static.
12317
12318 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12319
12320         * icall.c: re-applied patch to GetValueInternal. Also added R4 and R8
12321         types to it and to SetValueInternal.
12322
12323         * object.c: Moved handle_enum label to its proper place. This was the
12324         f... bug! ;-)
12325
12326         This time i compiled mcs and gtk-sharp and they both work.
12327
12328 2002-08-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12329
12330         * icall.c: reverted partially my previous patch until 
12331         object.c:set_value handles enums correcly.
12332
12333 2002-08-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12334
12335         * icall.c:
12336         (ves_icall_MonoField_GetValue): changed to use mono_field_get_value.
12337         (ves_icall_System_Environment_get_MachineName): removed warning when
12338         compiling under cygwin.
12339
12340 Thu Aug 22 18:49:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12341
12342         * object.c: fixed field_get_value() for reference types.
12343
12344 2002-08-22  Dick Porter  <dick@ximian.com>
12345
12346         * socket-io.c (ves_icall_System_Net_Sockets_Socket_RecvFrom_internal):
12347         Don't free a buffer while it's still needed.  Patch from Jonathan
12348         Liger <Jonathan.liger@wanadoo.fr>
12349
12350 2002-08-21  Miguel de Icaza  <miguel@ximian.com>
12351
12352         * icall.c (ves_icall_System_Environment_get_Platform): Add new
12353         internal call.
12354
12355 2002-08-21  Dietmar Maurer  <dietmar@ximian.com>
12356
12357         * icall.c (ves_icall_get_method_info): s/MonoMethod/MonoReflectionMethod/
12358         (ves_icall_get_parameter_info): s/MonoMethod/MonoReflectionMethod/
12359
12360         * marshal.c (mono_marshal_get_remoting_invoke): save lmf, because
12361         we call unmanaged code which throws exceptions.
12362
12363 Wed Aug 21 12:56:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12364
12365         * appdomain.h: added per-domain entry_assembly.
12366         * appdomain.c: ensure mono_runtime_exec_main () gets non-null
12367         arguments.
12368         * icall.c: Assembly::GetEntryAssembly icall.
12369         * object.c: set domain->entry_assembly in mono_runtime_exec_main().
12370         Changes above from a patch by Tomi Pakarinen <tomi.pakarinen@welho.com>.
12371
12372 Tue Aug 20 15:42:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12373
12374         * appdomain.h, gc.c: added mono_domain_finalize ().
12375
12376 2002-08-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12377
12378         * object.c:
12379         (mono_print_unhandled_exception): changed g_warning by g_printerr
12380         because g_log has a 1024 characters limit (yeah, i got a big stack
12381         trace). Don't print exception name, that should be in ToString 
12382         returned string.
12383
12384 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12385
12386         * icall.c: added ves_icall_FieldInfo_SetValueInternal.
12387         * object.c: added missing MONO_TYPE_ARRAY in mono_runtime_invoke_array.
12388
12389 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12390
12391         * object.c:
12392         (mono_print_unhandled_exception): after previous commit, i realized
12393         that MS calls ToString on the exception. I changed this function to
12394         do that. This way we get stack_trace for free.
12395
12396 2002-08-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12397
12398         * object.c:
12399         (mono_print_unhandled_exception): invoke Message property instead of
12400         getting 'message' field from Exception. Don't allocate memory for
12401         'trace' and 'message' if not needed.
12402
12403 2002-08-18  Dick Porter  <dick@ximian.com>
12404
12405         * unicode.c: Fix asserts to match Encoder.cs checks
12406
12407 Fri Aug 16 21:42:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12408
12409         * marshal.c: fix unaligned store issue and a few wrong
12410         opcode argument types.
12411
12412 2002-08-16  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12413
12414         * icall.c: added GetUninitializedObjectInternal internal call.
12415
12416 2002-08-16  Dietmar Maurer  <dietmar@ximian.com>
12417
12418         * appdomain.c (mono_runtime_invoke_in_domain): transfer Exception
12419         to the right domain.
12420
12421 2002-08-14  Dietmar Maurer  <dietmar@ximian.com>
12422
12423         * marshal.c (mono_marshal_get_runtime_invoke): unbox value types
12424
12425         * class.c (class_compute_field_layout): set blittable to false for Strings
12426
12427         * appdomain.c (mono_domain_transfer_object): added support for ISerializable
12428
12429 Wed Aug 14 17:26:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12430
12431         * appdomain.h, reflection.c, icall.c, object.c, reflection.h:
12432         first chunk of code to create types at runtime. Code to
12433         handle ReflectedType/DeclaringType. Make reflection handles
12434         domain specific.
12435
12436 Wed Aug 14 17:24:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
12437
12438         * class.c: set correct name in arrays.
12439
12440 2002-08-13  Dietmar Maurer  <dietmar@ximian.com>
12441
12442         * appdomain.c (mono_domain_transfer_object): make it work with
12443         valuetypes. bug fixes.
12444
12445 2002-08-12  Dick Porter  <dick@ximian.com>
12446
12447         * object.h: Rename some parameters to avoid c++ keywords (Patch
12448         from Joseph Wenninger <kde@jowenn.at>)
12449
12450 Thu Aug 8 13:04:18 CEST 2002 Paolo Molaro <lupus@ximian.com>
12451
12452         * icall.c: added icall to implement Assembly.GetFile*.
12453
12454 Thu Aug 8 10:18:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12455
12456         * reflection.h, reflection.c: code to embed managed resources.
12457
12458 Tue Aug 6 17:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
12459
12460         * class.c: move all the type size stuff into
12461         class_compute_field_layout().
12462
12463 Tue Aug 6 11:20:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
12464
12465         * class.c: ensure enums have always the correct instance size.
12466         * unicode.c: remove wrong assert.
12467
12468 Mon Aug 5 19:30:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
12469
12470         * assembly.c: fix mem corruption issue.
12471         * image.h, image.c: added mono_image_get_resource () to access
12472         managed resources.
12473         * icall.c: implemented Assembly.EntryPoint property and some
12474         Managed Resources related internalcalls.
12475
12476
12477 Mon Aug 5 18:18:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
12478
12479         * image.c, image.h: impemented mono_image_get_entry_point ().
12480         * appdomain.c: use mono_image_get_entry_point.
12481
12482 Mon Aug 5 13:08:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12483
12484         * reflection.c: support the object type argument when loading
12485         custom attributes.
12486
12487 2002-08-05  Dietmar Maurer  <dietmar@ximian.com>
12488
12489         * marshal.c (mono_marshal_get_managed_wrapper): add suppport for
12490         String as return type.
12491
12492 Fri Aug 2 21:15:42 CEST 2002 Paolo Molaro <lupus@ximian.com>
12493
12494         * reflection.c: fix encoding of named args for custom attrs to match
12495         the ms implementation. Read them back when instantiating custom
12496         attributes.
12497
12498 2002-08-02  Radek Doulik  <rodo@ximian.com>
12499
12500         * marshal.c (mono_mb_add_data): convert ret value to LE, suggested
12501         by Dietmar as quick fix
12502         (mono_marshal_get_delegate_begin_invoke): use sig->param_count +
12503         16 as stack size, used on more places as quick fix before Dietmar
12504         will fix it properly
12505
12506 Fri Aug 2 17:48:17 CEST 2002 Paolo Molaro <lupus@ximian.com>
12507
12508         * object.h, object.c: added accessors for fields and properties.
12509
12510 Fri Aug 2 17:45:15 CEST 2002 Paolo Molaro <lupus@ximian.com>
12511
12512         * class.c, class.h: made mono_class_get_field_from_name ()
12513         loop on parent types.
12514         Added mono_class_get_property_from_name ().
12515
12516 Fri Aug 2 11:40:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12517
12518         * class.c, class.h: move the code to setup the type vtable in its own
12519         function so that it can be reused also for types created at runtime.
12520         Eliminate the "class" identifier from the header file.
12521         * reflection.c: setup the vtable for enums so that we can create
12522         objects for use in SetConstant ().
12523
12524 2002-08-02  Dietmar Maurer  <dietmar@ximian.com>
12525
12526         * marshal.c (mono_delegate_to_ftnptr): pass delegate->target
12527         instead of the delegate itself as this pointer (bug #28383)
12528
12529 2002-08-01  Dietmar Maurer  <dietmar@ximian.com>
12530
12531         * marshal.c (mono_marshal_get_managed_wrapper): added return type
12532         conversions.
12533
12534 Wed Jul 31 16:49:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12535
12536         * loader.c: don't set the pinvoke bit on icalls.
12537
12538 2002-07-31  Dietmar Maurer  <dietmar@ximian.com>
12539
12540         * debug-helpers.c (mono_method_full_name): only print a number to
12541         indicate wrapper type (so that the output is more readable in traces).
12542
12543 2002-07-30  Dietmar Maurer  <dietmar@ximian.com>
12544
12545         * class.c (mono_class_init): include method override patch from Paolo
12546
12547 Tue Jul 30 15:20:08 CEST 2002 Paolo Molaro <lupus@ximian.com>
12548
12549         * icall.c: fixed GetTypeCode().
12550
12551 2002-07-29  Dietmar Maurer  <dietmar@ximian.com>
12552
12553         * threads.c (ves_icall_System_Threading_Thread_Thread_internal):
12554         use real delegate invoke function to make it work with multicast
12555         delegates (fix bug# 28291).
12556
12557 Fri Jul 26 11:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
12558
12559         * object.c: load constant strings.
12560
12561 Fri Jul 26 11:36:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
12562
12563         * reflection.c: no magic numbers.
12564         * tabledefs.h: security action enum.
12565
12566 Fri Jul 26 11:22:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12567
12568         * assembly.c: fix possible memory corruption.
12569
12570 Thu Jul 25 13:58:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
12571
12572         * reflection.h, reflection.c: added support for linking resources.
12573         * verify.c: check we have an updated corlib.
12574
12575 2002-07-25  Dietmar Maurer  <dietmar@ximian.com>
12576
12577         * marshal.c (mono_marshal_get_native_wrapper): correctly marshal
12578         string arrays.
12579         (mono_marshal_string_array): null terminate unmanaged string arrays.
12580         (mono_marshal_get_managed_wrapper): print warning for arrays (not implemented)
12581
12582 Wed Jul 24 13:32:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
12583
12584         * icall.c: Type.GetType () can now return also types from the
12585         calling assembly.
12586
12587 Wed Jul 24 13:04:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12588
12589         * loader.h, loader.c: stack walking support.
12590         * icall.c: implemented GetCurrentMethod, GetExecutingAssembly,
12591         GetCallingAssembly.
12592
12593 2002-07-24  Dietmar Maurer  <dietmar@ximian.com>
12594
12595         * marshal.c: added optimisations for blittable types 
12596
12597         * class.c (mono_array_class_get): do not set blittable attribute on arrays
12598         (mono_class_setup_mono_type): set blittable attribute for single
12599         and double.
12600
12601         * marshal.c (mono_string_utf8_to_builder): impl.
12602         (mono_string_builder_to_utf8): impl.
12603         (mono_marshal_get_native_wrapper): impl. StringBuilder marshaling
12604
12605 2002-07-23  Dietmar Maurer  <dietmar@ximian.com>
12606
12607         * marshal.c (mono_marshal_get_native_wrapper): impl. byref types
12608         (mono_marshal_get_managed_wrapper): impl. byref types
12609
12610 2002-07-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12611
12612         * icall.c:
12613         (search_method): don't display debug message. 
12614
12615 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12616
12617         * metadata.c (mono_type_stack_size): removed temporary fix for new gcc
12618
12619 Mon Jul 22 18:17:05 CEST 2002 Paolo Molaro <lupus@ximian.com>
12620
12621         * appdomain.c: set the missing filename when throwing exception.
12622
12623 2002-07-22  Dietmar Maurer  <dietmar@ximian.com>
12624
12625         * metadata.c (mono_type_size): code cleanup
12626         (mono_type_stack_size): removed some test code
12627
12628 2002-07-21  Miguel de Icaza  <miguel@ximian.com>
12629
12630         * appdomain.c (ves_icall_System_Reflection_Assembly_LoadFrom): Use
12631         mono_get_exception_file_not_found now.
12632
12633         * exception.c (mono_exception_from_name_two_strings): New version
12634         that will call a constructor with two string arguments. 
12635         (mono_get_exception_file_not_found): New helper routine, used to
12636         report file-not-found errors.
12637
12638 2002-07-20  Dick Porter  <dick@ximian.com>
12639
12640         * process.h:
12641         * process.c: Pass file handles to CreateProcess
12642         
12643         * icall.c:
12644         * file-io.h:
12645         * file-io.c: Implemented CreatePipe
12646
12647 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12648
12649         * metadata.c (mono_get_param_info): set alignment for value types
12650
12651 Fri Jul 19 18:58:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
12652
12653         * appdomain.h, domain.c, threads-types.h: don't include config.h in headers.
12654         Constify mono_domain_assembly_open().
12655         * loader.c: handle null namespace in icalls.
12656
12657 2002-07-19  Dietmar Maurer  <dietmar@ximian.com>
12658
12659         * marshal.c (emit_ptr_to_str_conv): marshal object as structs
12660         (emit_str_to_ptr_conv): marshal object as structs
12661
12662         * metadata.c (mono_type_to_unmanaged): marshal object as structs
12663
12664         * marshal.c (mono_marshal_get_runtime_invoke): support value types
12665
12666 2002-07-18  Dietmar Maurer  <dietmar@ximian.com>
12667
12668         * marshal.c (mono_marshal_get_runtime_invoke): use exception filters
12669         (mono_marshal_get_native_wrapper): we an now return value types
12670
12671 Wed Jul 17 18:21:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12672
12673         * verify.c: more checks implemented.
12674
12675 2002-07-17  Dietmar Maurer  <dietmar@ximian.com>
12676
12677         * marshal.c (mono_delegate_to_ftnptr): invoke the right method
12678         (fix bug #27695)
12679         (mono_marshal_get_native_wrapper): allow byref arguments
12680         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringXXX):
12681         impl. PtrToStringXXX methods
12682         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStructure_type): impl.
12683         (ves_icall_System_Runtime_InteropServices_Marshal_OffsetOf): impl.
12684         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalAnsi): impl.
12685         (ves_icall_System_Runtime_InteropServices_Marshal_StringToHGlobalUni): impl.
12686         (ves_icall_System_Runtime_InteropServices_Marshal_DestroyStructure): impl.
12687
12688 Tue Jul 16 19:00:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12689
12690         * reflection.c: fix buglet in parsing an assembly name.
12691
12692 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12693
12694         * marshal.c (emit_ptr_to_str_conv): first impl.
12695
12696 Tue Jul 16 12:39:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
12697
12698         * object.c, class.h: cache the vtable in the class as suggested by
12699         vargaz@freemail.hu (Zoltan Varga).
12700
12701 Tue Jul 16 11:27:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
12702
12703         * class.h, loader.c: added mono_field_from_token().
12704         * verify.c: first cut of type checking code.
12705
12706 2002-07-16  Dietmar Maurer  <dietmar@ximian.com>
12707
12708         * marshal.c (mono_marshal_get_native_wrapper): support valuetypes
12709
12710 2002-07-15  Dietmar Maurer  <dietmar@ximian.com>
12711
12712         * marshal.c (mono_marshal_get_native_wrapper): handle enum types
12713         (fix bug #27782)
12714         (mono_marshal_get_remoting_invoke): impl.
12715         (mono_delegate_begin_invoke): impl.
12716         (mono_mb_emit_save_args): impl.
12717         (mono_delegate_end_invoke): impl.
12718         (mono_marshal_get_delegate_begin_invoke):
12719         (mono_marshal_get_delegate_end_invoke):
12720         (mono_marshal_get_delegate_invoke): generate a special name for
12721         those methods (including the signature) and associate them whith
12722         the delegate class. 
12723
12724 2002-07-13  Gonzalo Paniagua Javier <gonzalo@gnome-db.org>
12725
12726         * reflection.[ch]: 
12727         (mono_reflection_type_from_name): now it has a MonoImage parameter
12728         which is used as the default image to search the type in. If the image
12729         is NULL or getting the type from it fails, it defaults to corlib.
12730
12731         * icall.c: changed 1 call to mono_reflection_type_from_name to match
12732         new parameter.
12733
12734 Sat Jul 13 19:32:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
12735
12736         * reflection.c: update the parameter table index.
12737
12738 Sat Jul 13 17:34:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12739
12740         * domain.c: don't include the mark byte in the string hash.
12741
12742 Sat Jul 13 15:06:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12743
12744         * icall.cs: icall for Type.GetTypeCode ().
12745         * verify: a couple of fixes and disabled local initialization checks.
12746
12747 2002-07-12  Dietmar Maurer  <dietmar@ximian.com>
12748
12749         * marshal.c: better debugging support (DEBUG_RUNTIME_CODE)
12750
12751         * debug-helpers.c (mono_method_full_name): print the type of the
12752         runtime wrapper
12753
12754         * metadata.c (mono_signature_hash): a hash function for signatures
12755         (mono_signature_hash): better hash algorithm
12756
12757         * marshal.c (mono_marshal_get_delegate_invoke): cache methods by signature
12758
12759         * debug-helpers.c (mono_method_full_name): this can now generate
12760         method names with signatures
12761
12762         * marshal.c (mono_marshal_get_managed_wrapper): bug fix: unmanaged
12763         method dont have this pointers.
12764
12765 Fri Jul 12 11:35:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
12766
12767         * reflection.c: fixup typebuilder tokens.
12768         * image.c: fix buglet.
12769         * marshal.h: remove whitespace.
12770         * metadata.h, metadata.c: reinstate code that was removed.
12771         * verify.c: handle catch directives and fix another couple of bugs.
12772
12773 2002-07-11  Dietmar Maurer  <dietmar@ximian.com>
12774
12775         * marshal.c (mono_marshal_get_native_wrapper): support BOOLEAN
12776         (mono_marshal_get_native_wrapper): make it comp. with the old code
12777         (mono_marshal_get_native_wrapper): support boolean
12778         (mono_marshal_get_managed_wrapper): support more types
12779
12780 2002-06-25  Dietmar Maurer  <dietmar@ximian.com>
12781
12782         * class.c (class_compute_field_layout): compute class->blittable attribute.
12783
12784 2002-07-09  Dick Porter  <dick@ximian.com>
12785
12786         * threads.c: Make the thread cleaning up cope with threads that
12787         call ExitThread()
12788
12789 2002-07-08  Radek Doulik  <rodo@ximian.com>
12790
12791         * reflection.c (method_encode_code): use non-translated values to
12792         compute finally_start, this fixes exception handling on ppc, yay!
12793
12794         * decimal.h (struct signscale): fix endianess
12795
12796 2002-07-07  Radek Doulik  <rodo@ximian.com>
12797
12798         * reflection.c: swap box_val and not val
12799
12800 Mon Jul 8 15:18:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
12801
12802         * reflection.c, reflection.h: handle full assembly info in type name.
12803         Handle Type arguments when loading custom attributes.
12804         * icall.c: updated to use new mono_reflection_type_from_name () method.
12805
12806 2002-07-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12807
12808         * loader.c:
12809         (method_from_memberref): also print assembly name when method not found.
12810
12811 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12812
12813         * icall.c:
12814         (ves_icall_TypeGetProperties): fixed bug #27473. 
12815
12816 2002-07-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
12817
12818         * reflection.c: display image name and token when cannot find the
12819         .ctor for an attribute.
12820
12821 2002-07-05  Martin Baulig  <martin@gnome.org>
12822
12823         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12824
12825 2002-07-04  Dick Porter  <dick@ximian.com>
12826
12827         * threads.c (mono_thread_cleanup): Nasty kludge to get this to
12828         compile on mingw.  This will cause mingw builds to not wait for
12829         subthreads to terminate after the main thread does.  I've lodged a
12830         bug with the mingw developers for them to wrap OpenThread().
12831
12832 2002-07-03  Dick Porter  <dick@ximian.com>
12833
12834         * threads.c: Store thread IDs instead of handles, because
12835         GetCurrentThread() returns a pseudohandle and therefore stores
12836         useless values.  mono_thread_cleanup() continues checking the
12837         array of threads until it is empty, to cope with subthreads
12838         spawning new threads after the main thread has finished.
12839
12840         * profiler.h:
12841         * profiler.c:
12842         * profiler-private.h: Pass the thread ID to thread profiler
12843         functions, instead of a handle
12844
12845 Wed Jul 3 17:43:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
12846
12847         * verify.c: fixes to make it more usable.
12848         * pedump.c: added --verify code to verify IL code in an assembly.
12849
12850 Tue Jul 2 20:40:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12851
12852         * reflection.c: turn errors into warnings to allow compiling corlib.
12853
12854 Tue Jul 2 19:33:20 CEST 2002 Paolo Molaro <lupus@ximian.com>
12855
12856         * reflection.c: add special cases to compile corlib.
12857
12858 Mon Jul 1 18:00:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12859
12860         * reflection.c: handle properties with only a set method.
12861
12862 Mon Jul 1 17:11:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
12863
12864         * opcodes.h: add enum with opcodes in opval order.
12865
12866 2002-07-01  Dick Porter  <dick@ximian.com>
12867         
12868         * object.h:
12869         * object.c (mono_runtime_run_main): Removed unneeded argument
12870
12871 2002-06-28  Martin Baulig  <martin@gnome.org>
12872
12873         * debug-symfile.c: Reflect latest MonoDwarfFileWriter changes.
12874
12875 2002-06-27  Dick Porter  <dick@ximian.com>
12876
12877         * threads.c: Store the handle in both the parent thread and in the
12878         subthread, to minimise the time between starting a new thread and
12879         storing its ID.
12880
12881 2002-06-26  Dick Porter  <dick@ximian.com>
12882
12883         * appdomain.c (mono_runtime_cleanup): Close the socket library
12884         after all the threads have finished, not before
12885
12886 2002-06-26  Martin Baulig  <martin@gnome.org>
12887
12888         * debug-symfile.c (mono_debug_find_source_location): Added
12889         `guint32 *line_number' argument.  If it's not NULL, store the line number
12890         there and return the file name without the line number.
12891
12892 2002-06-25  Dick Porter  <dick@ximian.com>
12893
12894         * icall.c:
12895         * process.h:
12896         * process.c: Process forking and other support functions
12897
12898 2002-06-25  Dick Porter  <dick@ximian.com>
12899
12900         * image.c (do_mono_image_open): Set ref_count to 1, so that bad
12901         things dont happen when the image is closed.
12902         (mono_image_lookup_resource): Walk the resource section looking
12903         for a particular entry
12904
12905         * cil-coff.h: PE resource section decoding
12906
12907 2002-06-25  Dick Porter  <dick@ximian.com>
12908         
12909         * assembly.h:
12910         * assembly.c: 
12911         (mono_assembly_foreach): Accessor functions to walk the list of
12912         loaded assemblies
12913         (mono_assembly_set_main):
12914         (mono_assembly_get_main): Process methods need to know which
12915         assembly is the "main" one
12916
12917         * object.c (mono_runtime_run_main): Record the main assembly
12918
12919         * debug-helpers.c: Fix typo
12920
12921 2002-06-24  Dietmar Maurer  <dietmar@ximian.com>
12922
12923         * icall.c (ves_icall_System_Runtime_InteropServices_Marshal_copy_to_unmanaged): impl.
12924         (ves_icall_System_Runtime_InteropServices_Marshal_copy_from_unmanaged): impl.
12925
12926 Sat Jun 22 11:37:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
12927
12928         * icall.c: fix off-by-one in Assembly.GetTypes() reported by bob@karr.ath.cx.
12929
12930 2002-06-21  Miguel de Icaza  <miguel@ximian.com>
12931
12932         * image.c (do_mono_image_open): Initialize reference count,
12933         otherwise we leak the MonoImage.
12934
12935 Fri Jun 21 19:16:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
12936
12937         * reflection.c: small tweak to handle self-hosting.
12938
12939 Thu Jun 20 23:28:13 CEST 2002 Paolo Molaro <lupus@ximian.com>
12940
12941         * reflection.c: fix type name parse code.
12942
12943 Thu Jun 20 19:24:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
12944
12945         * reflection.c: break out of the loop.
12946         * image.c: special case corlib.
12947
12948 Thu Jun 20 16:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
12949
12950         * reflection.c: add all the custom attrs at the end to ensure the
12951         ctors have been properly initialized when the attributes are defined
12952         in the current assembly.
12953
12954 Thu Jun 20 13:46:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12955
12956         * reflection.c: handle correctly multiple-nested types.
12957
12958 Thu Jun 20 11:49:00 CEST 2002 Paolo Molaro <lupus@ximian.com>
12959
12960         * row-indexes.h: fix typos.
12961         * reflection.c: adjust for typos and fix method_def_or_ref
12962         encoding in MethodImpl table.
12963
12964 Wed Jun 19 21:57:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
12965
12966         * reflection.c: fix entry point patching (thanks Serge!).
12967
12968 2002-06-18  Dietmar Maurer  <dietmar@ximian.com>
12969
12970         * verify.c: add check for System.Exception
12971
12972 Mon Jun 17 20:23:23 CEST 2002 Paolo Molaro <lupus@ximian.com>
12973
12974         * image.c, class.c: minifix for code just c&p'ed.
12975         * reflection.c: warning fix.
12976         * object.h, loader.h, domain.c: load also StringBuilder.
12977
12978 Mon Jun 17 17:29:40 CEST 2002 Paolo Molaro <lupus@ximian.com>
12979
12980         * marshal.h, marshal.c: some support code to handle complex marshaling.
12981
12982 Mon Jun 17 16:32:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12983
12984         * class.h, class.c, reflection.c: handle ignorecase in GetType ().
12985         Better signatures with vtable error dump.
12986
12987 Mon Jun 17 16:13:35 CEST 2002 Paolo Molaro <lupus@ximian.com>
12988
12989         * reflection.c, reflection.h, icall.c: fixes for multiple-nested types.
12990
12991 2002-06-17  Dietmar Maurer  <dietmar@ximian.com>
12992
12993         * icall.c (ves_icall_Type_GetField): impl.
12994
12995 Mon Jun 17 16:08:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
12996
12997         * metadata.h, metadata.c: added mono_metadata_get_marshal_info()
12998         to retrieve a marshal description blob for a field or param.
12999
13000 Mon Jun 17 14:57:03 CEST 2002 Paolo Molaro <lupus@ximian.com>
13001
13002         * reflection.h, reflection.c: change order of nested type emission
13003         to avoid table corruption. The NestedTypes table is sorted.
13004         * icall.c: change order of GetConstructor results to workaround mcs bug.
13005
13006 Fri Jun 14 16:24:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13007
13008         * reflection.h, reflection.c: handle field and param marshal
13009         information.
13010
13011 Wed Jun 12 16:30:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13012
13013         * icall.c, marshal.c marshal.h: more Marshal class implementation.
13014
13015 Tue Jun 11 17:29:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13016
13017         * reflection.c: fix call convention.
13018
13019 Tue Jun 11 16:52:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13020
13021         * reflection.h, reflection.c: mono_image_get_memberref_token()
13022         takes a type instead of a class, now. Added
13023         mono_image_get_array_token() to create tokens for the special
13024         multi-dim array methods.
13025
13026 Tue Jun 11 13:21:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13027
13028         * assembly.c: handle modules (no assembly table). Split
13029         loading references in its own function.
13030         * class.c: handle moduleref resolution scope.
13031         * image.c, image.h: cache module name in image.
13032
13033 2002-06-07  Martin Baulig  <martin@gnome.org>
13034
13035         * reflection.c (mono_image_get_type_info): Only add a class layout entry
13036         if we actually have a `tb->class_size' (ie. it's not UnspecifiedTypeSize).
13037
13038 Fri Jun 7 22:07:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13039
13040         * icall.c: more signature fixes that used uint instead of int.
13041
13042 Fri Jun 7 20:41:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13043
13044         * reflection.c: fixed signature of field refs.
13045
13046 Fri Jun 7 19:41:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13047
13048         * class.c, reflection.c: handle typerefs of nested types
13049         (both on read and when writing files).
13050
13051 Fri Jun 7 17:46:50 CEST 2002 Paolo Molaro <lupus@ximian.com>
13052
13053         * icall.c: fix method signatures that tried to workaround the previous
13054         typo, d'oh!
13055
13056 Fri Jun 7 17:36:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13057
13058         * debug-helpers.c: fix typo.
13059
13060 Fri Jun 7 17:00:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13061
13062         * cil-coff.h, icall.c, image.c, reflection.c, reflection.h:
13063         rewrote the PE/COFF writing code (our programs are understood by the
13064         ms runtime, now).
13065
13066 Tue Jun 4 18:10:47 CEST 2002 Paolo Molaro <lupus@ximian.com>
13067
13068         * gc.c, gc.h, icall.c: weakreference support.
13069
13070 Tue Jun 4 16:06:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
13071
13072         * Makefile.am, mono-config.c: use $(sysconfdir).
13073
13074 Mon Jun 3 13:13:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13075
13076         * icall.c: changed default precision of Double.ToString() to 15.
13077         Fixed memory leak. Unified with Single.ToString.
13078
13079 Sat Jun 1 14:26:45 CEST 2002 Paolo Molaro <lupus@ximian.com>
13080
13081         * sysmath.c: workaround systems missing NAN and/or HUGE_VAL.
13082
13083 Sat Jun 1 13:46:54 CEST 2002 Paolo Molaro <lupus@ximian.com>
13084
13085         * pedump.c, appdomain.c, appdomain.h, assembly.c, domain.c,
13086         gc.c, icall.c, image.c, mono-config.c, reflection.c: killed
13087         warnings and compilation fixes from Dennis Haney (davh@davh.dk)
13088         and myself.
13089
13090 Fri May 31 16:58:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13091
13092         * debug-symfile.c, sysmath.c: yet more compilation fixes.
13093
13094 Fri May 31 16:35:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13095
13096         * reflection.c, socket-io.c: more compilation fixes.
13097
13098 Fri May 31 15:58:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13099
13100         * appdomain.c, class.c, class.h, debug-symfile.c, decimal.c,
13101         domain.c, loader.c, object.c, object.h, reflection.c, string-icalls.h,
13102         unicode.c: warning and compiler compatibility fixes.
13103
13104 Fri May 31 15:36:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13105
13106         * class.h, metadata.c: fixed warnings/compilation errors.
13107
13108 Fri May 31 13:08:25 CEST 2002 Paolo Molaro <lupus@ximian.com>
13109
13110         * Makefile.am, mono-config.c, mono-config.h: configuration file
13111         support routines.
13112         * loader.c, loader.h: make Dll mapping configurable at runtime in the
13113         config file. Export methods to insert and lookup mappings.
13114
13115 Fri May 31 12:45:38 CEST 2002 Paolo Molaro <lupus@ximian.com>
13116
13117         * reflection.c: handle types and boxed objects in custom attr
13118         constructors.
13119
13120 2002-05-30  Martin Baulig  <martin@gnome.org>
13121
13122         * debug-symfile.c
13123         (ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token): Removed.
13124
13125 Thu May 30 14:15:02 CEST 2002 Paolo Molaro <lupus@ximian.com>
13126
13127         * metadata.c, metadata.h: added mono_metadata_implmap_from_method()
13128         to lookup the implmap row for a P/Invoke method.
13129         * loader.c: added mono_lookup_pinvoke_call(): we only lookup a
13130         P/Invoke method from the runtime on an as needed basis.
13131
13132 2002-05-28  Dietmar Maurer  <dietmar@ximian.com>
13133
13134         * metadata.c (mono_metadata_parse_signature): impl.
13135
13136 Tue May 28 16:02:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13137
13138         * class.c: handle .pack directive.
13139
13140 Tue May 28 11:04:46 CEST 2002 Paolo Molaro <lupus@ximian.com>
13141
13142         * object.c: initialize static fields with RVA data.
13143
13144 2002-05-25  Martin Baulig  <martin@gnome.org>
13145
13146         * debug-symfile.c
13147         (ves_icall_Debugger_DwarfFileWriter_get_type_token): Removed.
13148
13149 2002-05-24  Martin Baulig  <martin@gnome.org>
13150
13151         * debug-symfile.c
13152         (ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig): Removed.
13153         (ves_icall_Debugger_MonoSymbolWriter_method_from_token): Renamed to
13154         `ves_icall_Debugger_MonoSymbolWriter_method_builder_from_token'.
13155
13156 Thu May 23 18:44:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13157
13158         * object.c: special case string ctros in invoke.
13159         * gc.c: silly whitespace changes.
13160
13161 2002-05-23  Dietmar Maurer  <dietmar@ximian.com>
13162
13163         * threadpool.[ch]: impl. a threadpool that can
13164         be used by mint and mono.
13165
13166 2002-05-22  Martin Baulig  <martin@gnome.org>
13167
13168         * debug-symfile.c (ves_icall_Debugger_MonoSymbolWriter_method_from_token):
13169         The first argument is now a `MonoReflectionModuleBuilder *', the return
13170         value is a `MonoReflectionModuleBuilder *'.  Use the AssemblyBuilder's
13171         `methods' field to get the method builder.  The `token' argument is the
13172         unfixed token.
13173
13174         * unicode.c (iconv_get_length, iconv_convert): Silently ignore all
13175         invalid characters instead of g_assert_not_reached()ing.  This seems
13176         to be the behaviour of mscorlib.
13177
13178 2002-05-22  Dietmar Maurer  <dietmar@ximian.com>
13179
13180         * object.c (mono_runtime_invoke_array): applied patch from Rachel
13181         Hestilow to fix bug #25104
13182
13183 2002-05-21  Martin Baulig  <martin@gnome.org>
13184
13185         * debug-symfile.c (mono_debug_find_source_location): New function.
13186         Looks up an IL offset in the line number table and returns the source
13187         location as a string.
13188
13189 2002-05-21  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13190
13191         * icall.c:
13192         (mono_double_ToStringImpl): changed %f by %g until we have something
13193         better.
13194
13195 2002-05-21  Nick Drochak  <ndrochak@gol.com>
13196
13197         * icall.c : Use different name for Math.Pow's icall.  Needed to check
13198         parameters first in C#.
13199
13200 Mon May 20 17:36:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13201
13202         * icall.c, reflection.h: added icall to get info about an event.
13203
13204 2002-05-20  Radek Doulik  <rodo@ximian.com>
13205
13206         * object.c (mono_value_box): don't use memcpy for boxing on BIG
13207         endian
13208         (mono_value_box): don't use memcpy for small sizes on
13209         architectures with unaligned access
13210
13211 2002-05-20  Martin Baulig  <martin@gnome.org>
13212
13213         * reflection.c (mono_reflection_setup_internal_class): Don't crash
13214         if `tb->parent == NULL'.
13215         (mono_reflection_create_internal_class): New function.  This is
13216         called from TypeBuilder.CreateType() and sets `klass->enum_basetype'
13217         for enum types.
13218
13219         * icall.c ("System.Reflection.Emit.TypeBuilder::create_internal_class"):
13220         New interncall.
13221
13222 2002-05-19  Martin Baulig  <martin@gnome.org>
13223
13224         * unicode.c (ves_icall_iconv_get_bytes): Actually use the `charCount'
13225         argument to get the length, don't default to the array length.
13226
13227 2002-05-18  Miguel de Icaza  <miguel@ximian.com>
13228
13229         * assembly.c (mono_assembly_setrootdir): New function used to
13230         override the MONO_ASSEMBLIES directory.
13231
13232 Fri May 17 20:39:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13233
13234         * icall.c: ValueType_GetHashCode() initialize local var.
13235
13236 Thu May 16 17:20:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13237
13238         * reflection.c: sort custom attributes table.
13239
13240 Thu May 16 16:08:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13241
13242         * reflection.c: support named args in custom attributes (write support).
13243
13244 Thu May 16 13:04:59 CEST 2002 Paolo Molaro <lupus@ximian.com>
13245
13246         * reflection.c: fix finally position calculation.
13247
13248 2002-05-15  Radek Doulik  <rodo@ximian.com>
13249
13250         * reflection.c: fixed endianess at many places
13251
13252         * icall.c (ves_icall_InitializeArray): comment out debug msg
13253
13254 2002-05-15  Dietmar Maurer  <dietmar@ximian.com>
13255
13256         * object.c (mono_unhandled_exception): new function to handle
13257         unhandled exceptions.
13258         (mono_unhandled_exception): call the UnhandledException event.
13259         (mono_runtime_delegate_invoke): impl.
13260
13261 Wed May 15 15:59:55 CEST 2002 Paolo Molaro <lupus@ximian.com>
13262
13263         * metadata.h, metadata.c, class.c: mono_metadata_field_info ()
13264         returns the RVA, not the direct pointer to the data. Handle the case
13265         when the class size is fixed.
13266
13267 Tue May 14 16:59:44 CEST 2002 Paolo Molaro <lupus@ximian.com>
13268
13269         * reflection.c: fix some endianess issues.
13270
13271 2002-05-14  Dietmar Maurer  <dietmar@ximian.com>
13272
13273         * object.c (mono_runtime_invoke): is now able to catch exceptions.
13274
13275         * threads.c (mono_thread_init): added a callback which is invoked
13276         at thread start.
13277
13278 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13279         
13280         * icall.c: make GetHashCode return non-negative values.
13281
13282 2002-05-14  Dan Lewis  <dihlewis@yahoo.co.uk>
13283
13284         * object.c, icall.c, gc.c: revert to address-based hashcode.
13285
13286 2002-05-13  Miguel de Icaza  <miguel@ximian.com>
13287
13288         * icall.c (mono_double_ParseImpl): Added ParseImpl method.
13289
13290 Mon May 13 16:40:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13291
13292         * icall.c, class.c: special case <Module>.
13293
13294 2002-05-13  Dan Lewis  <dihlewis@yahoo.co.uk>
13295
13296         * icall.c: fix bug in GetNow().
13297
13298 2002-05-11  Dietmar Maurer  <dietmar@ximian.com>
13299
13300         * object.c (mono_runtime_class_init): make sure that we call all
13301         static class constructors.
13302
13303 Fri May 10 18:14:51 CEST 2002 Paolo Molaro <lupus@ximian.com>
13304
13305         * reflection.c: sort methodsemantics table.
13306
13307 Fri May 10 16:31:49 CEST 2002 Paolo Molaro <lupus@ximian.com>
13308
13309         * reflection.h, reflection.c: honour init locals setting.
13310
13311 Thu May 9 18:50:00 EDT 2002 Daniel Morgan <danmorg@sc.rr.com>
13312
13313         * icall.c: copied Double ToStringImpl for Single ToStringImpl
13314
13315 Wed May 8 12:28:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13316
13317         * reflection.c: support ContructorBuilders in attribute blob creation.
13318
13319 Wed May 8 12:06:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13320
13321         * reflection.c: some changes to build a binary that can be run
13322         directly in windows.
13323
13324 Mon May 6 13:10:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13325
13326         * loader.c: print a big message when an icall can't be found.
13327
13328 2002-05-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13329
13330         * string-icalls.c: fix bug 24248.
13331
13332 Sat May 4 14:03:21 CEST 2002 Paolo Molaro <lupus@ximian.com>
13333
13334         * appdomain.c, appdomain.h, assembly.c, assembly.h, image.h,
13335         icall.c, reflection.h: separate assembly loading by pathname and by
13336         assembly name. Use the MONO_PATH env var to search for assemblies.
13337
13338 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13339
13340         * assembly.c, image.h: add some support for assemblies
13341         with multiple modules.
13342         * class.c, class.h: export mono_class_from_typeref().
13343         * loader.c: remove duplicated code and use mono_class_from_typeref(),
13344         instead.
13345
13346 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13347
13348         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13349         documentation says (the ECMA one is correct).
13350
13351 2002-05-02  Dick Porter  <dick@ximian.com>
13352
13353         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
13354         Don't name the synchronisation mutex.
13355
13356 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
13357
13358         * rand.c
13359         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
13360         Make the prototypes match.
13361         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
13362         Same.
13363
13364         * icall.c
13365         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
13366         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
13367         all systems have tm.tm_zone, so use strftime() with %Z to print
13368         the timezone abreviation into a temp string.
13369
13370         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
13371         rather than mono_array_addr() on a MonoString on Big Endian
13372         machines.
13373
13374 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
13375
13376         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
13377         fix bug 24041
13378
13379 2002-04-30  Dick Porter  <dick@ximian.com>
13380
13381         * socket-io.c: Cope with SOCKET being an integer rather than a
13382         pointer now.
13383
13384         * threads.c: Added Thread_free_internal, to deal with thread
13385         handle cleanup.  Moved calls to handle_store() and handle_remove()
13386         to start_wrapper(), so each can only be called once.  Allocate
13387         synchronisation blocks with GC_malloc(), and use GC finalisation
13388         to close the handles.
13389
13390         * icall.c: added System.Threading.Thread::Thread_free_internal
13391
13392 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13393
13394         * icall.c: support Environment.Exit, CommandLineArgs().
13395
13396 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
13397
13398         * object.c, object.h: added mono_runtime_run_main () and
13399         mono_runtime_get_main_args () for use in System.Environment.
13400
13401 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
13402
13403         * gc.c: fix thinko, enable actual finalization since the jit is now
13404         fixed.
13405
13406 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13407
13408         * gc.c, object.c: take into account that an object may be offset wrt the address
13409         returned by GC_malloc().
13410
13411 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
13412
13413         * image.c: handle files without entries in the assembly table (modules).
13414
13415 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
13416
13417         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
13418         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
13419         allowed to be null when it's System.Object class setup.
13420
13421 2002-04-27  Martin Baulig  <martin@gnome.org>
13422
13423         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
13424         if `tb->parent == NULL' rather than crashing.
13425
13426 2002-04-28  Nick Drochak  <ndrochak@gol.com>
13427
13428         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
13429         calling acos() where asin() should have been called.
13430
13431 2002-04-26  Martin Baulig  <martin@gnome.org>
13432
13433         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
13434         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
13435         there's a subdirectory called `System', but we don't want to read that
13436         subdirectory as an assembly.
13437
13438 2002-04-25  Martin Baulig  <martin@gnome.org>
13439
13440         * debug-symfile.c: Reflect latest MonoString changes.
13441
13442 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
13443
13444         * rand.c, rand.h: instance method icalls need to have an explicit
13445         this pointer as first argument in the C implementation.
13446
13447 2002-04-25  Nick Drochak <ndrochak@gol.com>
13448
13449         * icall.c: Fix typo in map for GetNonZeroBytes
13450
13451 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13452
13453         * string-icalls.c : String does now passes unit tests without any 
13454         errors, the following changes has been made:
13455         
13456         Implemented replace methods.
13457         Renaming of methods to (try) follow the standard.
13458         Fixed compare ordinal
13459         Made all memory allocated directly to function instead of via icall function.
13460         Small performance fix in is_in_array function
13461                         
13462  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
13463
13464         c (mono_string_Internal_ctor_charp_int_int):
13465         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
13466         sindex < 0, throw ArgumentOutOfRangeException instead of
13467         ArgumentNullException.
13468
13469         Added new check for length == 0, however
13470         I need to make it return String.Empty from the C code.
13471         
13472         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
13473         that calculate the length for us here.
13474         
13475         (mono_string_Internal_ctor_sbytep_int_int): Replaced
13476         mono_string_new_utf16 with mono_string_new, since value is utf8.
13477
13478 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13479
13480         * object.c: register the object for finalization if needed.
13481         Allocate one more char in the string for the terminating 0 char.
13482
13483 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
13484
13485         * class.c, class.h, image.c: check if a type implemenst a destructor.
13486         Use the proper key for array class lookups.
13487         * icall.c: register the icalls in the System.GC class.
13488         * gc.c, gc.h: GC-related functions and icalls.
13489
13490 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13491
13492         * icall.c:
13493         * socket-io.c:
13494         * unicode.c: free some strings gotten from mono_string_to_utf8 and
13495         changed a couple of free () by g_free ().
13496
13497         * decimal.c: one-liner in the comments for decimal2string ().
13498
13499 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13500
13501         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
13502
13503 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
13504
13505         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
13506         * object.c (mono_runtime_invoke_array) : handle null in params
13507
13508 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13509
13510         * string-icalls.c: fixed bug in split (one off bug)
13511
13512 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13513
13514         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
13515         * icalls.c: added String::Equals as internal method
13516
13517 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
13518
13519         * threads.c: fixed bug in the double interlocked functions
13520
13521 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
13522
13523         * threads.c: implemented all of the new interlocked icalls.
13524         * string-icalls.c: fix a bug in insert.
13525         * icalls.c: added the icalls for interlocked, removed old string functions.
13526         
13527 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13528
13529         * loader.c: fix off-by-one error when reading argument names.
13530
13531 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13532
13533         * profiler.c: win32 counter implementation (untested).
13534         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
13535         (the latter needs testing and more complete impl. from win32 folks).
13536
13537 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
13538
13539         * object.c: mono_array_new_full workaround mono_array_class_get
13540         problem.
13541
13542 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13543
13544         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
13545         * object.h (mono_string_chars): Changed casting type.
13546
13547 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13548
13549         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
13550                            method signatures to use gunichar2 instead of gint16.
13551
13552 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
13553
13554         * object.h, object.c: domain-specific versions of mono_object_new and
13555         mono_array_new.
13556
13557 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
13558
13559         * object.c: changed String layout
13560
13561         * string-icalls.c (mono_string_Internal_ctor_chara): added
13562         internal string constructors.
13563
13564 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
13565
13566         * threads.c: pass 'this' to the thread start routine.
13567
13568 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13569
13570         * string-icalls.c: fix IndexOf and LastIndexOf. Now
13571         InternalCompareStr don't call twice mono_string_cmp_char for the last
13572         character. Improved performance in mono_string_cmp_char.
13573
13574 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
13575
13576         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
13577         code into its own library: libmonoruntime.
13578
13579 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
13580
13581         * object.h, object.c: changed array format so that szarrays do not
13582         require a bounds structure.
13583         * icall.c, appdomain.c: support for new szarray format.
13584
13585 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
13586
13587         * metadata.c: compare also the retuns type when comparing signatures:
13588         we didn't do this as an optimization since really overloaded methods
13589         must differ also in the arguments, but this doesn't work with
13590         low-level IL code (or when using explicit conversion operators: see
13591         bug#23498 for an example).
13592
13593 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
13594
13595         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
13596
13597 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
13598
13599         * icall.c: make MonoType::GetElementType its own icall.
13600
13601 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
13602
13603         * icall.c: remove MonoMethod_get_Name().
13604         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
13605         object.
13606
13607 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13608
13609         * string-icalls.c: optimized a few methods.
13610
13611 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
13612
13613         * icall.c: added all new string internal calls
13614         * string-icalls.c: added, new string internal call implementation.
13615         * object.c: added mono_string_new_size for allocating a string a size
13616
13617 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
13618
13619         * object.c (mono_object_isinst): use the same code as in the
13620         optimized x86 version.
13621
13622 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
13623
13624         * profiler.c: TSC-based timer code (faster and more accurate).
13625         Not hooked up in configure, yet (set USE_X86TSC to 1).
13626
13627 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
13628
13629         * profiler.c, profiler.h: track time spent compiling methods.
13630         * threads.c: track thread creation/destruction.
13631
13632 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
13633
13634         * profiler.c, profiler.h, profiler-private.h: profiling interface
13635         and sample implementation. Moved here so that it can be used also by
13636         the jit.
13637
13638 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
13639
13640         * reflection.c, reflection.h: keep types and other handles separate in
13641         the hash tables for referred tokens. Add guid for modules.
13642
13643 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
13644
13645         * assembly.c: fix bugs found with valgrind.
13646         * metadata.h, metadata.c: added mono_metadata_guid_heap().
13647
13648 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
13649
13650         * threads: added icall support for getting current domain for
13651                    the thread.
13652  
13653 2002-04-13  Martin Baulig  <martin@gnome.org>
13654
13655         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
13656         (MonoDebugVarInfo): Added `index' field for register based addresses.
13657         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
13658         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
13659         `MonoDebugVarInfo *params' and `guint32 this_offset' with
13660         `MonoDebugVarInfo *this_var'.
13661
13662         * debug-symfile.c (relocate_variable): New static function to write
13663         a location description for a local variable or method parameter.
13664
13665 2002-04-12  Martin Baulig  <martin@gnome.org>
13666
13667         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
13668         stack offset and begin/end scope address of a local variable.
13669         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
13670         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
13671         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
13672
13673         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
13674         Added new relocation types for start/end scope of a local variable.
13675
13676 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
13677
13678         * object.h: add mono_object_domain() macro.
13679         * reflection.c: handle typespecs.
13680         * icall.c: MonoMethod::get_Name() implementation.
13681
13682 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13683
13684         * icall.c: String::GetHashCode() icall implementation.
13685
13686 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13687
13688         * icall.c: String::IndexOfAny icall.
13689         * object.c, object.h: make array->max_length more useful.
13690         Intrduced mono_object_class() and mono_string_length() macros.
13691
13692 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
13693
13694         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
13695         instead of g_unichar_isdigit.
13696
13697 2002-04-11  Nick Drochak  <ndrochak@gol.com>
13698
13699         * icall.c: Implement a simple Double.ToString().
13700
13701 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
13702
13703         * appdomain.h: only io-layer.h is supposed to be included.
13704         * icall.c: explicitly import environ. Fix warning.
13705
13706 2002-04-10  Nick Drochak  <ndrochak@gol.com>
13707
13708         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
13709                 return true even if it's not Daylight Savings time.
13710                 Only return false for the case where the function isn't
13711                 implemented for a plaform (read Windows).
13712
13713 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
13714
13715         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
13716         data with a mutex.
13717
13718 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
13719
13720         * mempool.c (mono_mempool_alloc): only use g_malloc when
13721         absolutely necessary.
13722
13723 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13724
13725         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
13726
13727         * class.c (mono_class_vtable): use domain mempool to allocate vtable
13728         (mono_class_proxy_vtable): use domain mempool
13729
13730 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
13731
13732         * appdomain.h, appdomain.c: split initialization that requires the
13733         execution engine support into mono_runtime_init().
13734
13735 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
13736
13737         * class.c (mono_class_init): don't include vtable inside MonoClass
13738         to save some memory, gather some statistics.
13739         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
13740
13741 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13742
13743         * icall.c: internalcall implementation for ValueType.Equals().
13744
13745 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
13746
13747         * object.c (mono_message_init): moved 
13748         (mono_runtime_exec_main): new arch. independent impl.
13749         (mono_runtime_invoke_array): new method - like
13750         mono_runtime_invoke, but you can pass an array of objects.
13751         (mono_remoting_invoke): new arch. independent impl.
13752         (mono_message_invoke): new arch. independent impl.
13753         (mono_runtime_class_init): new arch. independent impl.
13754         (mono_runtime_object_init): new arch. independent impl.
13755
13756 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
13757
13758         * metadata.c, object.c, reflection.c: documented the exported
13759         functions.
13760
13761 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
13762
13763         * icall.c: simpler code to pass the assembly builder data to corlib.
13764         Implement GetNestedTypes() internalcall.
13765
13766 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
13767
13768         * class.c: warn if a type can't be loaded.
13769
13770 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
13771
13772         * image.h: typedef MonoImageOpenStatus
13773         * types.h: removed unused file
13774         
13775 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
13776
13777         * icall.c: Enum_ToObject accepts enum value arguments.
13778
13779 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
13780
13781         * class.c: move initialization of properties, events and nested
13782         classes, so that they happen for interfaces, too.
13783
13784 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
13785
13786         * icall.c: cleanup some ugly casts in Array_SetValue*.
13787
13788 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
13789
13790         * icall.c: the values array fro enums is of the correct type, now.
13791         Implement (correctly) getFullName instead of assQualifiedName for
13792         MonoType.
13793         * reflection.h, reflection.c: added mono_type_get_name ().
13794
13795 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
13796
13797         * assembly.c, image.h: for each MonoImage, record from wich assembly
13798         it was loaded.
13799         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
13800         Make Type.Assembly work.
13801
13802 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
13803
13804         * debug-symfile.h: use char* instead of gpointer to avoid
13805         unnecessary casts.
13806
13807         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
13808
13809         * icall.c (ves_icall_InternalExecute): impl. FielSetter
13810         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
13811
13812 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
13813
13814         * icall.c (mono_message_init): impl. (code cleanup)
13815         (ves_icall_InternalExecute): impl. FieldGetter
13816
13817         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
13818         defined we call all (non-static)methods through the vtable. 
13819
13820 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
13821
13822         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
13823         finalizer even though the memory is still referenced (and the chunk of
13824         memory is not freed).
13825
13826 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
13827
13828         * assembly.c: fix brokeness.
13829
13830 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
13831
13832         * class.c: kill some warnings. Check explicit interface method
13833         implementation also without considering the namespace.
13834         Load also literal strings in static class data.
13835
13836 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
13837
13838         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
13839         (default_assembly_name_resolver): Make the resolver take the
13840         "base" directory where the assembly was originally defined, so we
13841         can load DLLs that are in the same directory as the assembly that
13842         is being referenced.
13843
13844 2002-03-28  Dick Porter  <dick@ximian.com>
13845
13846         * file-io.h: 
13847         * file-io.c:
13848         * socket-io.c: 
13849         * unicode.h: 
13850         * unicode.c: Warning cleanups
13851
13852 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
13853
13854         * object.h, reflection.h: use the correct type instead of MonoObject.
13855
13856 2002-03-28  Martin Baulig  <martin@gnome.org>
13857
13858         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
13859         (mono_debug_update_symbol_file): Initialize classes if necessary.
13860
13861 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
13862
13863         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
13864         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
13865
13866 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
13867
13868         * assembly.h: fix function prototype.
13869         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
13870         * mono-endian.h: use const cast.
13871
13872 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13873
13874         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
13875
13876 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
13877
13878         * loader.c: don't assert when a typeref can't be loaded, give
13879         a chance to the runtime to trow an exception instead.
13880         * loader.h: fix warning.
13881
13882 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
13883
13884         * class.c (mono_class_proxy_vtable): added proxy support
13885
13886 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
13887
13888         * icall.c: removed last of PAL calls, added System.Environment
13889         * file-io.h, file-io.c: MonoIO implementation
13890         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
13891
13892 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
13893
13894         * appdomain.c: do not use the byte marker in ldstr table lookup.
13895         * debug-helpers.c: allow two ':' to separate class and method name.
13896         * object.c: allocate arrays bounds with the GC, too.
13897         * verify: add a few more checks.
13898
13899 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
13900
13901         * reflection.c: output also literal strings. Allocate parameter data
13902         with GC_malloc() (thanks, Martin, for catching this!).
13903
13904 2002-03-26  Martin Baulig  <martin@gnome.org>
13905
13906         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
13907         include the `this' offset in the `param_offsets'.
13908
13909 2002-03-25  Martin Baulig  <martin@gnome.org>
13910
13911         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
13912         mono_debug_get_class() function to get the classes. Added new
13913         relocation types for arrays and strings.
13914         (mono_debug_get_class): New static function to search in all
13915         referenced assemblies for a metadata token.
13916
13917         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
13918
13919 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
13920
13921         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
13922         hold gc-allocated objects. Make the string heap a stream like the
13923         others. Removed duplicated code when writing stream info.
13924         Added asserts to catch possible buffer overflows. Set the sorted map
13925         for tables that need sorting. Added some documentation.
13926
13927 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
13928
13929         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
13930         for interned strings and vtables.
13931
13932 2002-03-24  Martin Baulig  <martin@gnome.org>
13933
13934         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
13935         it in the array since it was created with g_slist_prepend().
13936
13937 2002-03-24  Martin Baulig  <martin@gnome.org>
13938
13939         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
13940         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
13941         (mono_debug_method_from_token): Renamed to
13942         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
13943         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
13944
13945         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
13946         relocation types.
13947
13948         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
13949
13950 2002-03-24  Martin Baulig  <martin@gnome.org>
13951
13952         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
13953         (mono_debug_method_from_token): New func.
13954
13955         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
13956         New interncall, calls mono_debug_local_type_from_signature().
13957         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
13958         calls mono_debug_method_from_token().
13959
13960 2002-03-23  Martin Baulig  <martin@gnome.org>
13961
13962         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
13963         specifies the number of bytes to be converted, not the array size.
13964         Return the number of chars, not the number of bytes.
13965         (ves_icall_iconv_get_chars): The `byteCount' argument
13966         specifies the number of bytes to be converted, not the array size.
13967
13968 2002-03-23  Martin Baulig  <martin@gnome.org>
13969
13970         * reflection.h (MonoReflectionSigHelper): New type.
13971
13972         * reflection.c (mono_reflection_sighelper_get_signature_local),
13973         (mono_reflection_sighelper_get_signature_local): New functions.
13974
13975         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
13976         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
13977         interncalls.
13978
13979 2002-03-23  Martin Baulig  <martin@gnome.org>
13980
13981         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
13982         is_writeable is set.
13983         (mono_raw_buffer_update): New function to write the modified map
13984         back to disk.
13985
13986         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
13987
13988         * debug-symfile.c (mono_debug_update_symbol_file): Call
13989         mono_raw_buffer_update() when done writing.
13990
13991 2002-03-23  Martin Baulig  <martin@gnome.org>
13992
13993         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
13994
13995         * debug-symfile.c: Added support for arguments and local variables.
13996
13997 2002-03-23  Dick Porter  <dick@ximian.com>
13998
13999         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
14000         protected by ifdefs, hence breaking the w32 build.
14001
14002 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14003
14004         * object.c: implement is_interned() the right way.
14005
14006 2002-03-21  Martin Baulig  <martin@gnome.org>
14007
14008         * debug-symfile.[ch]: New files to handle debugging information
14009         files. There's also support to dynamically update these symbol
14010         files to include machine dependent information.
14011
14012 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
14013
14014         * threads.c (mono_thread_create): new function to create thread
14015         from C
14016
14017 2002-03-20  Martin Baulig  <martin@gnome.org>
14018
14019         * icall.c (ves_icall_InternalInvoke): Create a new object if the
14020         method is a constructor.
14021         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
14022         points to ves_icall_InternalInvoke().
14023
14024 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
14025
14026         * file-io.c: Flush shouldn't throw exceptions.
14027
14028 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
14029
14030         * file-io.c: FileStream flush support; FileSetLength now
14031         restores file pointer.
14032
14033 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14034
14035         * class.c: set image for pointer classes.
14036
14037 2002/03/19  Nick Drochak <ndrochak@gol.com>
14038
14039         * sysmath.c: Forgot one.
14040
14041 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
14042
14043         * sysmath.c: Avoid redefining existing names.
14044
14045 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
14046
14047         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
14048         handled by runtime as icall rather than dllimport from libm.so
14049         * file-io.c, file-io.h: fixed handle argument type.
14050
14051 2002-03-18  Dick Porter  <dick@ximian.com>
14052
14053         * reflection.c (mono_image_get_type_info): rename interface to
14054         iface, because of "#define interface struct" on windows.
14055
14056 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
14057
14058         * class.c, class.h: rename and export mono_ptr_class_get().
14059         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
14060         * reflection.c, reflection.h, icall.c: better/saner type name
14061         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
14062         method signatures.
14063
14064 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
14065
14066         * class.c (mono_class_init): removed hardcoded GHC_SLOT
14067
14068         * icall.c (ves_icall_InternalInvoke): impl.
14069
14070 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14071
14072         * reflection.c: output the interface map table, too.
14073
14074 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14075
14076         * class.c (class_compute_field_layout): separate computation of 
14077         static field layout
14078
14079 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
14080
14081         * icall.c: added System.Buffer support.
14082         * file-io.c: moved file icalls from PAL to FileStream.
14083
14084 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
14085
14086         * icall.c (ves_icall_System_Object_GetHashCode): impl.
14087
14088 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
14089
14090         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
14091
14092 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14093
14094         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
14095
14096 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14097
14098         * debug-helpers.{c,h}: moved here from monograph some useful functions
14099         to locate a method by name/signature in a class or image. Included
14100         also a small and flexible IL disassembler.
14101
14102 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14103
14104         * reflection.c: fixup tokens in methods with small header size, too.
14105
14106 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
14107
14108         * object.c (mono_string_to_utf8): remove assert(!error), instead
14109         print a warning. 
14110
14111 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
14112
14113         * icall.c: update to the new mono_Array_class_get interface.
14114
14115 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14116
14117         * appdomain.c, object.c: Boehm-GC enable.
14118         * icall.c: make get_data_chunk() support split data requests.
14119         Ensure a class is initialized in more cases. Return only the first
14120         property found in GetProperties() or the compiler gets confused. 
14121         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
14122         * reflection.h, reflection.c: add fixup mechanism for field and method
14123         tokens. Initialize assembly->typeref in a single place. Output
14124         properties after events. Support custom attributes for events, too.
14125         Typo fix for paramter custom attrs.
14126
14127 2002-03-07  Martin Baulig  <martin@gnome.org>
14128
14129         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
14130
14131 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
14132
14133         * class.c (mono_array_class_get): fix. for multi. dim. arrays
14134
14135 2002-03-06  Martin Baulig  <martin@gnome.org>
14136
14137         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
14138         non-zero lower bounds. See testcases #F10-#F13.
14139
14140 2002-03-05  Martin Baulig  <martin@gnome.org>
14141
14142         * exception.c (mono_get_exception_argument_out_of_range): New exception.
14143
14144         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
14145         ves_icall_System_Array_GetValue(), only calculate the absolute array position
14146         here.
14147         (ves_icall_System_Array_SetValue): Likewise.
14148         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
14149         as argument and does the actual work. This function is used when copying a
14150         multi-dimensional array.
14151         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
14152         now do all the widening conversions of value types.
14153         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
14154
14155 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14156
14157         * class.c: remove some magic numbers and use the smbolic names,
14158         instead. Added init_events() to load event info at class init time.
14159         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
14160         and mono_metadata_methods_from_event().
14161         * reflection.h, reflection.c: added support for writing out the evnets
14162         related information.
14163
14164 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
14165
14166         * reflection.h, icall.c: use a different method (GetInterfaces)
14167         to gather interface info and add isbyref, isprimitive and
14168         ispointer to the ves_icall_get_type_info() return value.
14169
14170 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
14171
14172         * class.h: stared adding support for events.
14173         * icall.c: split find_members implementation. Added debug icall to get
14174         the address of an object.
14175         * reflection.c: handle TypeBuilders in mono_type_get_object().
14176
14177 2002-03-01  Martin Baulig  <martin@gnome.org>
14178
14179         * icall.c (ves_icall_System_Array_GetLength): This must throw an
14180         ArgumentOutOfRangeException(), not an ArgumentException().
14181         (ves_icall_System_Array_GetLowerBound): Likewise.
14182         (ves_icall_System_Array_GetValue): Improved argument checking.
14183         (ves_icall_System_Array_SetValue): Improved argument checking.
14184
14185 2002-03-01  Martin Baulig  <martin@gnome.org>
14186
14187         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
14188         called with invalid arguments rather than just dying with g_assert().
14189         (ves_icall_System_Array_SetValue): Likewise.
14190         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
14191         raise a NotImplementedException instead.
14192         (ves_icall_System_Array_GetLength): Added argument checking.
14193         (ves_icall_System_Array_GetLowerBound): Added argument checking.
14194
14195 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
14196
14197         * object.h (mono_assert): new macros mono_assert and
14198         mono_assert_not_reached
14199
14200 2002-02-28  Martin Baulig  <martin@gnome.org>
14201
14202         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
14203         and "System::String::IsInterned" to "System::String::_IsInterned".
14204
14205 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
14206
14207         * icall.c: remove hacks for typebuilder. Added icall to create a
14208         modified type from a tybebuilder.
14209         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
14210         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
14211         to create a backing MonoClass for a TypeBuilder.
14212
14213 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14214
14215         * class.c, class.h: more refactoring of class init.
14216         Export mono_class_setup_mono_type() and mono_class_setup_parent().
14217
14218 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
14219
14220         * marshal.c, marshal.h: start of marshaling interface.
14221
14222 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14223
14224         * icall.c: fix order in assembly qualified name icall.
14225
14226 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14227
14228         * class.c: do not free str, since we store it in the hash table.
14229         * reflection.h: add label field to MonoILExceptionInfo.
14230         * reflection.c: handle references to more than one assembly. Handle
14231         case when there isn't a module created in the assembly.
14232
14233 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
14234
14235         * class.c: Fix typo. Start refactoring of class init code.
14236
14237 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
14238
14239         * appdomain.c: exit with 1 on error.
14240         * class.c: we already have the name in MonoClassField.
14241         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
14242         MonoStreamHeader instead of an offset of image->raw_metadata.
14243
14244 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
14245
14246         * appdomain.c (mono_init): Be even more descriptive about the error.
14247
14248 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
14249
14250         * appdomain.c: give the user an informative message when corlib can't
14251         be loaded.
14252
14253 2002-02-26  Martin Baulig  <martin@gnome.org>
14254
14255         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
14256         New icall to get the time zone data.
14257
14258 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14259
14260         * reflection.c: set virtual and raw size of section correctly.
14261         * threads.c: transfer domain information to newly created threads.
14262
14263 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14264
14265         * class.c: when instancing a class in a domain, load the default
14266         vaules for static fields from the constant table. Fix System.Enum to
14267         not be an enum.
14268         * icall.c: implement Object::GetType() internalcall. Implemented
14269         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
14270         Fixed checking of binding flags in find_members().
14271         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
14272         * reflection.c: handle enumerations when writing to the constant
14273         table. Use a different object cache for types.
14274
14275
14276 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
14277
14278         * object.c (mono_object_isinst): fix for arrays
14279
14280         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
14281
14282 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14283
14284         * object.c: don't use mprotect ()  and fix intern pool hash table
14285         lookup for big endian systems.
14286
14287 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14288
14289         * icall.c: change type_is_subtype_of () signature.
14290
14291 2002-02-21  Mark Crichton  <crichton@gimp.org>
14292
14293         * rand.c, rand.h: Added random number generator for
14294         System.Security.Cryptography classes.
14295
14296         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
14297
14298         * icall.c: Added System.Security.Cryptography calls.
14299
14300 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
14301
14302         * class.c, icall.c, metadata.c: better support for pointer types.
14303         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
14304         * reflection.c: Add support for getting custom attrs for properties
14305         and simplify some code.
14306
14307 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
14308
14309         * icall.c: change getToken () and add custom attribute GetBlob()helper
14310         method.
14311         * reflection.h: add custom attrs array to the reflection builder structures.
14312         * reflection.c: encode and emit custom attributes for all the relevant
14313         reflection objects. Cache fieldref and methodref tokens. Change
14314         mono_image_create_token() interface to take a MonoDynamicAssembly.
14315         More complete custom attributes decoder. Load custom attributes for
14316         Assembly, Field, Method and Constructor objects, too. Make the
14317         returned array an Attribute[] one, not object[]. Added
14318         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
14319         custom attribute constructor.
14320
14321 2002-02-20  Dick Porter  <dick@ximian.com>
14322
14323         * icall.c:
14324         * rawbuffer.c:
14325         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
14326         problem code out for now).
14327
14328 2002-02-19  Radek Doulik  <rodo@ximian.com>
14329
14330         * object.c (mono_ldstr): use hash table to avoid multiple swapping
14331
14332 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
14333
14334         * icall.c: register the GetCustomAttributes method.
14335         * object.c, object.h: add mono_string_new_len ().
14336         * reflection.h, reflection.c: added mono_runtime_invoke(),
14337         mono_install_runtime_invoke(). Added
14338         mono_reflection_get_custom_attrs () to load custom attributes and
14339         create the attribute objects.
14340
14341 2002-02-19  Dick Porter  <dick@ximian.com>
14342         * threads-dummy-types.c:
14343         * threads-dummy-types.h:
14344         * threads-dummy.c:
14345         * threads-dummy.h:
14346         * threads-pthread-types.c:
14347         * threads-pthread-types.h:
14348         * threads-pthread.c:
14349         * threads-pthread.h:  Deleted obsolete files
14350
14351 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
14352
14353         * class.c (mono_class_vtable): runtime init the class when we
14354         allocate static class data.
14355
14356         * icall.c (ves_icall_System_Array_SetValue): check for null values.
14357
14358         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
14359         and String - but we will need generic marshalling support in the
14360         future. 
14361         (mono_init): set the domain name in a ms compatible way
14362
14363         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
14364         String[].
14365
14366 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
14367
14368         * object.c (mono_array_clone): use alloca() instead of g_malloc  
14369         for sizes
14370
14371         * appdomain.c (mono_domain_unload): impl.
14372
14373 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14374
14375         * appdomain.c, object.c: fix intern pool implementation.
14376         * class.c: fix alignment code.
14377
14378 2002-02-16  Radek Doulik  <rodo@ximian.com>
14379
14380         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
14381         and s2 > s1, just copy lower bytes to be compatible with little
14382         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
14383         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
14384
14385         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
14386         force big_endian to be 1 for big endian machines 
14387         (ves_icall_iconv_new_decoder): ditto
14388
14389 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
14390
14391         * socket-io.c (convert_sockopt_level_and_name): If the system
14392         doesn't define SOL_IP or SOL_TCP, get them by hand using
14393         getprotobyname() and caching the values (because this could be a
14394         slow operation).
14395         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14396         Use the appropriate struct when the system does support it. Ie,
14397         not all systems have struct ip_mreqn so use struct ip_mreq when
14398         appropriate.
14399
14400 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
14401
14402         * reflection.c: handle finally clauses.
14403
14404 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
14405
14406         * socket-io.c: use g_snprintf() instead of snprintf.
14407
14408 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14409
14410         * reflection.c (mono_param_get_objects): Cast second argument to
14411         mono_method_get_param_names to a const char** to silence the
14412         compiler warning.
14413
14414         * appdomain.c (mono_domain_assembly_open): Put parens around the
14415         truth statement in the for-loop.
14416
14417         * unicode.c (iconv_convert): Got rid of a compiler warning about
14418         int i being unused when the system has a new iconv.
14419         (iconv_get_length): Same.
14420
14421         * image.c (load_class_names): Cast the second argument to
14422         g_hash_table_insert() to char* to hush compiler warnings about the
14423         arg being a const.
14424         (mono_image_open): Same here.
14425
14426         * socket-io.c: Don't conditionally include sys/filio.h or
14427         sys/sockio.h here anymore since we now get them from
14428         io-layer/io-layer.h
14429         (inet_pton): If the system doesn't support inet_aton, implement
14430         using inet_addr and also #define INADDR_NONE if it isn't defined
14431         by the system.
14432
14433 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
14434
14435         * metadata.c, metadata.h: added function to get packing and size info
14436         of a typedef.
14437         * reflection.h, reflection.c: handle field RVA data. Save info about
14438         the table layout if needed. Assign typedef indexes to all the types
14439         before dumping the info about them to avoid forward reference problems.
14440
14441 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
14442
14443         * socket-io.c (convert_sockopt_level_and_name): ifdef
14444         SO_ACCEPTCONN because it is not defined on my system (old debian)
14445
14446 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
14447
14448         * opcode.c: use stddef.h to get NULL.
14449
14450 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
14451
14452         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
14453         for FIONBIO, FIONREAD and SIOCATMARK.
14454         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
14455         define INADDR_NONE and besides, inet_addr() is deprecated and
14456         should not be used. Use inet_pton() instead - it also has the
14457         added bonus that it can easily handle IPv6 addresses as well.
14458         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
14459
14460 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
14461
14462         * decimal.c: remove _MSC_VER conditional.
14463
14464 2002-02-13  Dick Porter  <dick@ximian.com>
14465
14466         * socket-io.c: 
14467         * icall.c: Internal calls for Blocking, Select, Shutdown,
14468         GetSocketOption and SetSocketOption
14469
14470 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14471
14472         * assembly.cs: better resolver: use it instead of some kludgy
14473         code.
14474
14475 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
14476
14477         * reflection.c: the best way to speed-up the compiler is to avoid
14478         infinite loops.
14479
14480 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
14481
14482         * class.c (mono_class_vtable): changed the object layout
14483         (obj->vtable->class). 
14484         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
14485
14486 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
14487
14488         * assembly.c: look for assemblies in the assembly dir, too.
14489
14490 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14491
14492         * class.c: fix thinko in mono_class_from_type().
14493
14494 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
14495
14496         * exception.h, exception.c: added TypeLoadException.
14497         * object.h, object.c: added mono_array_clone ().
14498         * icall.c: handle throwOnError in AssemblyGetType().
14499         Added Array.Clone().
14500         * opcode.h, opcode.c: use a single value for the opcode val.
14501         Compile fix for non-gcc compilers.
14502
14503 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
14504
14505         * opcodes.c, opcodes.h: export interesting info about opcodes.
14506
14507 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
14508
14509         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
14510         icalls. 
14511
14512         * class.c (class_compute_field_layout): set element_class for enums
14513         (mono_class_create_from_typedef): set element_class for normal classes
14514
14515         * icall.c (ves_icall_System_Enum_get_value): impl.
14516
14517         * class.c (mono_class_create_from_typedef): do not set valuetype
14518         flag for System.ValueType and System.Enum
14519
14520 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
14521
14522         * unicode.c (iconv_convert): fix big endian problem.
14523
14524 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
14525
14526         * class.c: add asserts if we are ever going to scribble over memory.
14527         * socket-io.c: not all systems have AF_IRDA defined.
14528
14529 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
14530
14531         * class.c (class_compute_field_layout): do not consider static
14532         fields to compute alignment
14533
14534 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
14535
14536         * appdomain.c (mono_appdomain_get): impl.
14537         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
14538
14539 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
14540
14541         * icall.c: ignore "file://" prefix when loading an assembly.
14542
14543 2002-01-23  Dick Porter  <dick@ximian.com>
14544
14545         * socket-io.c:
14546         * icall.c:
14547         * Makefile.am: Added socket support
14548
14549 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14550
14551         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
14552         code back.  This should return the assemblies that are loaded by
14553         the runtime on behalf of an application domain. 
14554
14555         The current implementation is still broken, it just returns every
14556         assembly loaded, but until we get real applications domain this
14557         will do.
14558
14559 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
14560
14561         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
14562         AppDomain object.
14563
14564 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
14565
14566         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
14567         the mono_class_from_name lookup.
14568         (ves_icall_get_parameter_info): ditto.
14569         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
14570         method.
14571         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
14572
14573 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
14574
14575         * class.c: load also nested classes on class init.
14576         System.ValueType instance methods gets passed boxed
14577         values, unless methods in derived classed that get a pointer to the
14578         data.
14579         * icall.c: use better name parsing code in GetType().
14580         * image.c, image.h: add mono_image_loaded ().
14581         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
14582         * reflection.c, reflection.h: added mono_reflection_parse_type().
14583
14584 2002-01-22  Veronica De Santis <veron78@interfree.it>
14585
14586         * icall.c : Added mapping of internal calls for Manual and Auto reset events
14587         * threads.c : Added the implementation of internal calls for events
14588         * threads.h : Added prototypes of internal calls for events
14589         
14590 2002-01-21  Radek Doulik  <rodo@ximian.com>
14591
14592         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
14593
14594 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
14595
14596         * class.c (mono_class_init): set min_align to 1 (instead of 0)
14597         (mono_class_value_size): use min_align
14598
14599 2002-01-20  Dick Porter  <dick@ximian.com>
14600
14601         * threads.h:
14602         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
14603         so it compiles on w32.
14604
14605 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
14606
14607         * metadata.c (mono_type_stack_size): impl.
14608
14609         * class.c (mono_class_get_field): impl. memberref token
14610
14611 2002-01-16 Veronica De Santis <veron78@@interfree.it>
14612
14613         * icall.h : Added the internal calls mapping for CreateMutex_internal
14614                     and ReleaseMutex_internal.
14615         * threads.h : Added the prototype of mutexes internal calls.
14616         * threads.c : Added the implementations of mutexes internal calls.
14617
14618 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
14619
14620         * metaparse.h: removed unused file.
14621         * reflection.c, reflection.h: added stream_data_align () function 
14622         to align data in streams and keep stream aligned. Add support for
14623         exception support in method headers.
14624
14625 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
14626
14627         * unicode.c: make iconv_convert () return the number of bytess written
14628         in the output buffer.
14629
14630 2002-01-15  Dick Porter  <dick@ximian.com>
14631         * threads.c: Make the runtime's idea of infinite timeouts coincide
14632         with the class library's
14633
14634         Fix a particularly egregious bug in mono_thread_cleanup(). That
14635         code was so utterly bogus it must have been written on a Monday.
14636
14637 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
14638
14639         * reflection.h: add subtypes field to TypeBuilder.
14640         * reflection.c: encode constants for literal fields.
14641         Handle subtypes. Fix user string token (and add a zero byte)
14642         at the end.
14643         
14644 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
14645
14646         * class.c (mono_class_init): bug fix: assign slot numbers for
14647         abstract methods.
14648
14649 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
14650
14651         * reflection.c: don't try to output a code RVA for abstract methods.
14652         Small fixes for method header format. Output parameter info to the
14653         ParamDef table. Save method overriding info to MethodImpl table.
14654         Fix property support. Allow typedef.extends to be a type in the
14655         building assembly.
14656         * verify.c: fix off-by-one error.
14657
14658 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
14659
14660         * class.c: fix mono_class_from_mono_type () for szarray types.
14661         Remove unused cache check in mono_class_from_type_spec().
14662         * icall.c: *type_from_name () functions handle simple arrays and byref.
14663         * reflection.c: handle byref and szarray types. Handle methods without
14664         body (gets P/Invoke compilation working). Handle types and fields in
14665         get_token ().
14666         * reflection.h: add rank to MonoTypeInfo.
14667
14668 2002-01-10  Dick Porter  <dick@ximian.com>
14669
14670         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
14671         internal calls
14672
14673 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
14674
14675         * icall.c: initialize class in type_from_handle ().
14676         Loop also in parent classes for get_method ().
14677         * reflection.c: properly encode class and valuetype types.
14678         Start on encoding TypeBuilder types. Handle fieldrefs.
14679         Use correct length when registering a user string.
14680         Handle ConstructorBuilder and MonoMethod in get_token ().
14681         Make mono_type_get_object () aware of cached types.
14682         * object.c: back out change to mono_string_new ().
14683
14684 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
14685         * object.c: mono_string_new should return a NULL when the string 
14686         passed in is NULL -- not try to deference it.
14687         
14688 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
14689
14690         * icall.c: hack to make IsSubType work for TypeBuilders.
14691         * reflection.c: emit constructors before methods.
14692         Retrieve param names in mono_param_get_objects().
14693
14694 2002/01/05  Nick Drochak  <ndrochak@gol.com>
14695
14696         * Makefile.am: fix list of headers and sources so automake 1.5
14697         doesn't complain. Removed \# at end of list.
14698
14699 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
14700
14701         * reflection.c: get token for a method ref. Set return type of
14702         constructor to void.
14703         * loader.c: debug message.
14704         * class.c: typo fix.
14705
14706 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
14707
14708         * icall.c: fix array init with rank > 1. FindMembers
14709         loops in parent class as well.
14710         * image.c: do not insert nested types in name cache.
14711         * reflection.c: warning fix.
14712         * reflection.h: add override method (for interface impl).
14713
14714 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
14715
14716         * metadata.c: fix customattr decoding.
14717
14718 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
14719
14720         * rawbuffer.cs: Added native Win32 implementation, avoids using
14721         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
14722
14723 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
14724
14725         * class.c: make the low-level routines handle the cache.
14726
14727 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
14728
14729         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
14730
14731 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
14732
14733         * class.c: fix mono_array_element_size() for objects.
14734         * class.h, class.c: add properties to MonoClass and load them
14735         at init time.
14736         * icall.c: check with isinst() when assigning a value to an array
14737         instead of requiring the classes to match exactly.
14738         Implemented icall for System.Type::GetType().
14739         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
14740         enums. Handle bindingflags when looking for methods and fields.
14741         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
14742         and mono_metadata_methods_from_property().
14743         * reflection.h, reflection.c: added structures for propreties,
14744         parameters and enums. Implemented mono_property_get_object() and
14745         mono_param_get_objects().
14746
14747 2001-12-18  Dick Porter  <dick@ximian.com>
14748
14749         * file-io.c: Use mono_string_to_utf16() instead of
14750         mono_string_chars()
14751
14752         * object.c: Added mono_string_to_utf16(), which copies the non
14753         NULL-terminated MonoString into a new double-null-terminated
14754         buffer.
14755
14756 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
14757
14758         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
14759
14760 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
14761
14762         * file-io.c: raise exceptions if handle is invalid.
14763
14764 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
14765
14766         * assembly.c: yet another check for mscorlib.
14767         * class.c, class.h: load nesting info for classes.
14768         * icall.c: many new functions to support the Reflection classes.
14769         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
14770         * reflection.h, reflection.c: mono_image_create_token(),
14771         mono_assembly_get_object(), mono_type_get_object(),
14772         mono_method_get_object(), mono_field_get_object(): methods to return
14773         objects that parallel the C representation of assemblies, types,
14774         methods, fields.
14775
14776 2001-12-11  Dick Porter  <dick@ximian.com>
14777
14778         * icall.c:
14779         * file-io.c: Internal calls for file IO.
14780
14781 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
14782
14783         * tabledefs.h: missing FileAttributes.
14784         * verify.h, verify.c: use is_valid_string () to simplify and check for
14785         valid strings more correctly. Fix warnings and speeling.
14786         Check more tables: Filed, File, ModuleRef, StandAloneSig.
14787         Check code: branches, maxstack, method calls.
14788
14789 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
14790
14791         * object.c (mono_object_allocate): removed static, so that the jit
14792         can allocate value types.
14793
14794         * icall.c (ves_icall_System_DateTime_GetNow): impl.
14795
14796 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14797
14798         * class.c: init enum types right away and register the
14799         token->MonoClass map in mono_class_create_from_typedef ().
14800         * verify.h, verify.c: first cut of the verifier.
14801         * pedump.c: add --verify switch to verify metadata tables.
14802         * tabledefs.h: add some missing enums.
14803
14804 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
14805
14806         * class.c (mono_install_runtime_class_init): impl.
14807         (mono_class_init): renamed mono_class_metadata_init to
14808         mono_class_init, also removed the metadata_inited flag
14809
14810         * object.c (mono_object_isinst): use faster algorithm
14811
14812 2001-11-30  Radek Doulik  <rodo@ximian.com>
14813
14814         * mono-endian.h: reverted last change
14815         added function prototypes
14816
14817         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
14818         add mono-endian.c back
14819
14820         * mono-endian.c: returned back, as Paolo pointed out, it's needed
14821         for unaligned access, I've mistaked it with endianess. I am
14822         sorry.
14823         (mono_read16): fix reverted endianess
14824         (mono_read64): ditto
14825         (mono_read32): ditto
14826
14827 2001-11-30  Dick Porter  <dick@ximian.com>
14828
14829         * exception.c: Implement mono_exception_from_name()
14830
14831 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14832
14833         * metadata.h, metadata.c: remove params_size and locals_size and their
14834         calculation from the metadata code: they are only usefult to the
14835         interp.
14836
14837 2001-11-29  Radek Doulik  <rodo@ximian.com>
14838
14839         * object.c (mono_ldstr): swap bytes here, it's probably not the
14840         best place, but works for me now, I'll redo it once I know mono
14841         better, also note that I add PROT_WRITE and don't reset back, also
14842         note that it's only affects big endians, so x86 should be OK
14843
14844         * mono-endian.h (read16): use just glib macros for both endians
14845
14846         * mono-endian.c: removed as glib macros are used in in
14847         mono-endian.h so we don't need to care about endianess for read
14848         macros as glib does that for us already
14849
14850 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
14851
14852         * class.h, class.h: take minimum alignment into consideration so
14853         that the fields of a class remain aligned also when in an array.
14854
14855 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14856
14857         * loader.h, loader.c: add mono_method_get_param_names().
14858         * class.c: 0-init class fields.
14859
14860 2001-11-26  Dick Porter  <dick@ximian.com>
14861
14862         * icall.c:
14863         * threads-types.h:
14864         * threads.c: New file that handles System.Threading on all platforms
14865
14866         * object.c: 
14867         * object.h: Remove the synchronisation struct from MonoObject,
14868         replace it with a pointer that gets initialised on demand
14869
14870         * Makefile.am: Replace all the system-specific threading code with
14871         a single file that uses the new wrapper library
14872
14873 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
14874
14875         * class.c, class.h: add mono_install_trampoline() so that the runtime
14876         can register a function to create a trampoline: removes the ugly
14877         requirement that a runtime needed to export arch_create_jit_trampoline.
14878         * object.h, object.c: added mono_install_handler() so that the runtime
14879         can install an handler for exceptions generated in C code (with
14880         mono_raise_exception()). Added C struct for System.Delegate.
14881         * pedump.c: removed arch_create_jit_trampoline.
14882         * reflection.c: some cleanups to allow registering user strings and
14883         later getting a token for methodrefs and fieldrefs before the assembly
14884         is built.
14885         * row-indexes.h: updates and fixes from the new ECMA specs.
14886
14887 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
14888
14889         * class.h, class.c: add enum_basetype field to MonoClass.
14890         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
14891         to get index in the constant table reated to a field, param or
14892         property.
14893         * reflection.h, reflection.c: handle constructors. Set public-key and
14894         version number of the built assembly to 0.
14895         * row-indexes.h: update from new ECMA spec.
14896
14897 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14898
14899         * class.h, class.c: add a max_interface_id to MonoClass.
14900         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
14901         since it's used to do that. Added mono_type_type_from_obj().
14902         Make GetType() return NULL instead of segfaulting if the type was not
14903         found. Handle simple arrays in assQualifiedName.
14904         * object.h: add a struct to represent an Exception.
14905         * reflection.c: output call convention in method signature.
14906         Add code to support P/Invoke methods and fixed offsets for fields.
14907
14908 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
14909
14910         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
14911         the value.
14912         * icall.c: use mono_array_addr instead of array->vector: fixes the
14913         reflection image writing.
14914         * reflection.c: init call convention byte to 0 in method signature.
14915         Encode the property signature. Don't output property-related methods
14916         twice. Really process the properties for a type (don't cast a field to
14917         a property, my mom always told me that).
14918         Fix 64 bit issues in pointer alignment in a different and more
14919         readable way.
14920
14921 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
14922
14923         * loader.h: Removed type class from MonoDefaults, added monotype
14924
14925         * loader.c: Loaded MonoType, removed loading of Type
14926
14927         * icall.c (my_mono_new_object): Now returns a System.MonoType,
14928         and fills in System.Type._impl with a RuntimeTypeHandle rather
14929         than the actual MonoClass *
14930
14931         (ves_icall_type_from_handle): change from type_class to
14932         monotype_class
14933
14934         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
14935         implemented
14936
14937         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
14938         implemented
14939
14940         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
14941
14942         (ves_icall_System_Reflection_Assembly_GetType): implemented
14943
14944         (ves_icall_System_MonoType_assQualifiedName): implemented
14945
14946         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
14947
14948 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
14949
14950         * assembly.c (mono_assembly_open): Implement a cache for the
14951         assemblies. 
14952
14953         (mono_assembly_close): only destroy the assembly when the last
14954         reference is gone.
14955         
14956 2001-11-09  Dick Porter  <dick@ximian.com>
14957
14958         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
14959
14960 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
14961
14962         * class.c (mono_class_metadata_init): bug fix: compute the right slot
14963
14964 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
14965
14966         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
14967         from Martin Weindel.
14968         * object.h: add mono_string_chars ().
14969
14970 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
14971
14972         * reflection.c (build_compressed_metadata): Eliminates warnings
14973         and uses 64-bit clean code.
14974
14975         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
14976         (mono_type_equal): Change signature to eliminate warnings.
14977
14978 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
14979
14980         * icall.c, loader.c: remove the internalcall array constructors.
14981         Changes to match the new MonoArray structure.
14982         * object.h, object.c: an array object doesn't allocate an extra
14983         vector. Add mono_array_new_full () to create jagged arrays easily.
14984
14985 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
14986
14987         * metadata.h, metadata.c: add mono_metadata_field_info () to
14988         retreive all the info about a field from vairous tables.
14989         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
14990         * class.h, class.c: augment MonoClassField with more info.
14991         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
14992         policy and load a field's RVA if needed.
14993
14994 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
14995
14996         * class.c (mono_class_metadata_init): create a trampoline for all
14997         virtual functions instead of actually compiling them.
14998
14999 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
15000
15001         * class.h, class.c: include name in MonoClassField.
15002         * class.c: fix fundamental type of System.Object and System.String.
15003         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
15004         tokens in ldtoken.
15005         * icall.c: remove internalcalls for the Reflection stuff that is now
15006         done in C# code.
15007         * loader.c: mono_field_from_memberref () implementation.
15008         * mono-endian.c: thinko (s/struct/union/g).
15009         * object.c, object.h: make the mono_string_* prototypes actually use
15010         MonoString instead of MonoObject.
15011         * reflection.c, reflection.h: updates for changes in the reflection
15012         code in corlib: we use C structures that map to the actual C# classes.
15013         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
15014         fat method header if needed and use the info from the ILGenerator for
15015         methods. Handle fields in types. Misc fixes.
15016
15017 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
15018
15019         * class.c (mono_class_metadata_init): bug fix: always allocate
15020         space for static class data
15021
15022 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
15023
15024         * class.c (mono_compute_relative_numbering): use relative
15025         numbering to support fast runtime type checks.
15026
15027 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
15028
15029         * class.c (mono_class_create_from_typeref): added debugging output
15030         to print class name when MonoDummy is returned instead of real class
15031
15032 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
15033
15034         * class.c (mono_class_metadata_init): interface offset table now
15035         contains pointers into the vtable - this is more efficient for the jit
15036
15037 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
15038
15039         * class.c (mono_class_metadata_init): use a temporary vtable (the
15040         old algorithm only worked for the interpreter, but not for the jit)
15041
15042 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
15043
15044         * loader.c (method_from_memberref): use mono_class_get to get the
15045         class of an array instead of using System.Array directly.
15046         (mono_get_method): also add MEMBERREF methods to the method cache
15047         which usefull for arrays.
15048
15049 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
15050
15051         * pedump.c (arch_compile_method): added to compute vtable entry
15052
15053         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
15054         number of interfaces.
15055         
15056         * class.h: merged MonoArrayClass into MonoClass
15057
15058         * class.c (mono_class_create_from_typedef): compute the vtable size and
15059         allocate space to include the vtable inside MonoClass
15060         (mono_class_metadata_init): initialize the vtable
15061
15062 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
15063
15064         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
15065         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
15066         * image.c: endian fixes by Laurent Rioux.
15067         * object.h, object.c: rename MonoStringObject to MonoString and
15068         MonoArrayObject to MonoArray. Change some function names to conform to
15069         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
15070         guint16* as first argument, so don't use char*.
15071         Provide macros to do the interesting things on arrays in a portable way.
15072         * threads-pthread.c: updates for the API changes and #include <sched.h>
15073         (required for sched_yield()).
15074         * icall.c: updates for the API changes above.
15075         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
15076         platforms that need them.
15077
15078 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15079
15080         * class.c: set the correct type for all the fundamental
15081         type when loading the class.
15082
15083 2001-10-05  Dick Porter  <dick@ximian.com>
15084
15085         * threads-pthread.c (pthread_mutex_timedlock): Simple
15086         compatibility version for C libraries that lack this call.
15087
15088 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15089
15090         * class.c: MonoTypes stored in MonoClass are stored as
15091         fundamental MonoTypes when the class represents a
15092         fundamental type (System.Int32, ...).
15093         The TypeHandle return by ldtoken is a MonoType*.
15094         * icall.c: ves_icall_get_data_chunk () write out all the
15095         PE/COFF stuff. Implement ves_icall_define_method (),
15096         ves_icall_set_method_body (), ves_icall_type_from_handle ().
15097         * image.c: properly skip unknown streams.
15098         * loader.h, loader.c: add type_class to mono_defaults.
15099         * metadata.c, metadata.h: export compute_size () as
15100         mono_metadata_compute_size () with a better interface.
15101         Typo and C&P fixes.
15102         * pedump.c: don't try to print the entry point RVA if there is no entry point.
15103         * reflection.c, reflection.h: many cleanups, fixes, output method
15104         signatures and headers, typedef and typeref info, compress the metadata
15105         tables, output all the heap streams, cli header etc.
15106         * row-indexes.h: typo fixes.
15107
15108 2001-10-04  Dick Porter  <dick@ximian.com>
15109
15110         * object.h: Add a synchronisation mutex struct to MonoObject
15111
15112         * object.c (mono_new_object): Initialise the object
15113         synchronisation mutexes
15114
15115         * icall.c: System.Threading.Monitor internal calls
15116         
15117         * threads-pthread.h:
15118         * threads-pthread.c: System.Threading.Monitor internal calls
15119
15120         * threads-types.h: New file, includes the system-specific thread
15121         structures
15122         
15123         * threads-pthread-types.h:
15124         * threads-pthread-types.c: New files, handle pthread-specific
15125         synchronisation types
15126
15127         * threads-dummy-types.h: 
15128         * threads-dummy-types.c: New files of dummy support for
15129         thread-specific types
15130
15131         * metadata.c:
15132         * image.c:
15133         * pedump.c: include mono-endian.h not endian.h
15134         
15135         * Makefile.am: More threads files.
15136         Name mono-endian.h not endian.h
15137
15138 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
15139
15140         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
15141         stuff and implement a few more bits.
15142         * icall.c: a field needs to be dereferenced twice. Do not use the same
15143         name for two variables in the same scope.
15144         * image.c, image.h: cleanups.
15145
15146 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
15147
15148         * class.c (mono_class_metadata_init): bug fix: compute the right size
15149
15150 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
15151
15152         * icall.c: implemented some of the Reflection internalcalls.
15153         * image.c, image.h: start writing out the PE/COFF image.
15154         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
15155         that does the reverse than decode_blob_size ().
15156         * object.c: use mono_metadata_encode_value (). Move here
15157         temporary implementation of mono_string_to_utf8 ().
15158         * rawbuffer.c: make malloc_map static.
15159
15160 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15161
15162         * metadata.c: fix type comparison for arrays.
15163         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
15164         Added a couple of new classes to monodefaults.
15165         * icall.c: added a couple of Reflection-related internalcalls.
15166         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
15167         Added a byval_arg MonoType to MonoClass.
15168
15169 2001-09-28  Dick Porter  <dick@ximian.com>
15170
15171         * icall.c:
15172         * threads-pthread.h: 
15173         * threads-pthread.c: Implemented internal calls for
15174         LocalDataStoreSlot operations.  Applied mutexes around all shared
15175         data.  Reworked the thread creation and Start() operations to
15176         avoid a race condition.
15177         
15178         * threads-dummy.h:
15179         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
15180
15181 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
15182
15183         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
15184
15185 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
15186
15187         * class.c, loader.c: warn and return NULL instead of erroring out.
15188         * icall.c: added System.AppDomain::getCurDomain().
15189         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
15190
15191 2001-09-25  Dick Porter  <dick@ximian.com>
15192
15193         * threads-pthread.h:
15194         * threads-pthread.c: Implemented timed thread joining and added
15195         System.Threading.Thread::Join_internal internal call
15196
15197         * icall.c: Added System.Threading.Thread::Join_internal internal call
15198
15199         * threads-dummy.h:
15200         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
15201
15202 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
15203
15204         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
15205         mono_string_intern () to implement the semantics of the ldstr opcode
15206         and the interning of System.Strings.
15207         * icall.c: provide hooks to make String::IsIntern and String::Intern
15208         internalcalls.
15209
15210 2001-09-23  Dick Porter  <dick@ximian.com>
15211
15212         * threads-dummy.c: 
15213         * threads-dummy.h: New files of dummy threading routines
15214
15215         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
15216         support code based on system specifics
15217
15218         Rename PTHREAD_LIBS to THREAD_LIBS
15219         
15220 2001-09-23  Dick Porter  <dick@ximian.com>
15221
15222         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
15223         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
15224         internal calls.
15225         (mono_thread_init): Set up a Thread object instance to return when
15226         the main thread calls Thread.CurrentThread
15227         (mono_thread_cleanup): Wait for all subthreads to exit
15228
15229         * icall.c: New internal calls for System.Threading.Thread::Sleep
15230         (including Schedule) and CurrentThread
15231
15232         * threads.h: New file, to insulate thread-specific stuff from the
15233         rest of the code
15234
15235 2001-09-21  Dick Porter  <dick@ximian.com>
15236
15237         * threads-pthread.h: 
15238         * threads-pthread.c: New file, for handling pthreads-style
15239         threading support.  Start() now starts a new thread and executes
15240         the ThreadStart delegate instance.
15241
15242         * icall.c: Added the internalcall for
15243         System.Threading.Thread::Start_internal
15244
15245         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
15246
15247 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
15248
15249         * loader.c: work around the different signatures for delegates
15250         constructors csc generates in compiled code vs the ones compiled in mscorlib.
15251
15252 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15253
15254         * class.h, class.c: add mono_class_get_field_from_name ().
15255         * *: Fix C comments and other ANSI C issues.
15256
15257 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
15258
15259         * endian.h, assembly.c: fix some endianness issues.
15260
15261 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
15262
15263         * loader.h, load.c: add delegate_class to mono_defaults.
15264         Handle runtime provided methods in mono_get_method ().
15265
15266 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
15267
15268         * loader.c (mono_get_method): use pinvoke for internal call
15269
15270         * icall.c: use pinvoke for internal call
15271
15272         * loader.c (method_from_memberref): set the method name
15273
15274 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
15275
15276         * metadata.c: help the compiler generate better code for
15277         mono_class_from_mono_type ().
15278
15279 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
15280
15281         * class.c (mono_class_metadata_init): delayed computing of the
15282         class size to mono_class_metadata_init ()
15283
15284 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
15285
15286         * class.c, class.h: add an interfaces member to MonoClass.
15287         * image.c, image.h: add assembly_name field to MonoImage
15288         from the assembly table.
15289         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
15290
15291 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15292
15293         * class.c: Handle Array in mono_class_from_mono_type ().
15294         * metadata.c, pedump.c: some endian fixes.
15295
15296 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
15297
15298         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
15299         * metadata.c: fix small problem introduced with the latest commit.
15300
15301 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
15302
15303         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
15304         We don't need a MonoMetadata pointer anymore to compare signatures in
15305         mono_metadata_signature_equal (), update callers.
15306         Reduced memory usage an number of allocations for MonoMethodHeader and
15307         MonoMethodSignature.
15308
15309 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
15310
15311         * metadata.c: added compare for szarray.
15312
15313 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
15314
15315         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
15316         and add a couple more types to it and mono_defaults. Give an hint on
15317         classes that need implementing in our corlib and are referenced
15318         in mscorlib.
15319
15320 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
15321
15322         * class.h, class.c: keep track if a class is also an Enum.
15323         * loader.c: Implement a couple more types for use in libffi
15324         marshalling. Gives better diagnostics when failing to dlopen
15325         a library. Set method->klass for P/Invoke methods, too.
15326
15327 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
15328
15329         * class.c, class.h: add a MonoType this_arg to MonoClass that
15330         represents a pointer to an object of the class' type that
15331         can be used by the interpreter and later the type cache.
15332         Add best guess alignment info for valuetype objects.
15333
15334 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
15335
15336         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
15337         into MonoType: one less level of indirection and allocation and
15338         simplifies quite a bit of code. Added cache for MonoTypes that are
15339         used frequently, so that we don't need to allocate them all the time.
15340
15341 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
15342
15343         * class.c (mono_class_create_from_typedef): System.Enum is also a
15344         value type, although it does not derive from System.ValueType
15345         (maybe a bug in the ms compiler?)
15346
15347         * metadata.c (mono_type_size): return the right size for value types
15348
15349         * loader.c (mono_get_method): only initialize method header if not abstract
15350
15351         * class.c (mono_class_from_mono_type): use mono_default values. 
15352
15353 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
15354
15355         * *: use MonoClass pointers instead of <type_tokens>
15356         
15357         * class.h: new flag: metadata_inited.
15358
15359         * class.c (mono_class_metadata_init): impl.
15360         (mono_class_instance_size): impl.
15361         (mono_class_data_size): impl.
15362
15363 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
15364
15365         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
15366         MonoClass now has the name and name_space fields. 
15367         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
15368         mono_get_method () takes and optional MonoClass as argument.
15369         Removed mono_typedef_from_name() and added mono_class_token_from_name()
15370         instead that takes advantage of a map from class names to typedef
15371         tokens in MonoImage.
15372
15373 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
15374
15375         * metadata.c: zero is not a valid alignment boundary.
15376         Merge MONO_TYPE_VOID in default decoding code.
15377
15378 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
15379
15380         * image.h: merged MonoMetadata into MonoImage
15381
15382         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
15383         identify the type of elements.
15384
15385 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
15386
15387         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
15388         * cil-coff.h: split MonoMSDOSHeader and add size info.
15389         * image.c: add some consistency checks.
15390         * metadata.c: fix row size computation: one programmer
15391         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
15392         add explanation for the locator routine.
15393         Fix decoding of size in method header.
15394         
15395 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
15396
15397         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
15398         (g_concat_dir_and_file): Bring g_concat_dir_and_file
15399         function from gnome-libs.  This uses the right path separator
15400         based on the OS, and also works around a bug in some systems where
15401         a double slash is not allowed. 
15402         (default_assembly_name_resolver): Use g_concat_dir_and_file
15403         (mono_assembly_open): ditto.
15404
15405 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
15406
15407         * metadata.c (mono_metadata_signature_equal): impl.
15408
15409         * *: void is now a realy MonoType (instead of using NULL)
15410         
15411         * metadata.c (do_mono_metadata_parse_type): use
15412         mono_metadata_parse_type to parse void value.
15413
15414 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
15415
15416         * metadata.c, metadata.h: in the signature and method header store
15417         only the space required for holding the loca vars and incoming arguments.
15418
15419 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
15420
15421         * metadata.c (do_mono_metadata_parse_type): treat void like any
15422         other type (instead of assigning NULL);
15423
15424 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
15425
15426         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
15427
15428 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
15429
15430         * image.c (do_mono_image_open): added a cache for arrays.
15431
15432 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15433
15434         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
15435         decode a single column from a row in a metadata table and changes
15436         to take advantage of it in the typedef locator (gives a nice speed up).
15437         Store offset info for function params.
15438
15439 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
15440
15441         * image.h (MONO_IMAGE_IS_CORLIB): removed 
15442
15443 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
15444
15445         * assembly.c: how could mono_assembly_close () had ever worked?
15446         * metadata.c, metadata.h: provide offset info for local vars.
15447         Implement mono_type_size () to take care of alignment as well
15448         as size (it was mono_field_type_size in cli/class.c before).
15449
15450 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
15451
15452         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
15453
15454         * assembly.h (CORLIB_NAME): set to corlib.dll
15455
15456         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
15457
15458 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
15459
15460         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
15461         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
15462         tokentype.h: massive namespace cleanup.
15463
15464 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
15465
15466         * metadata.h, metadata.c: decode exception clauses when parsing method header.
15467
15468 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
15469
15470         * metadata.c (mono_metadata_free_type): added check for type !=
15471         NULL (void) before calling mono_metadata_free_type()
15472
15473 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
15474
15475         * metadata.h, row_indexes.h: added header with enumerations to use
15476         to index in the columns from tables in metadata and to decode coded
15477         tokens: we should start using this instead of embedding magic numbers
15478         all over the code.
15479
15480 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
15481
15482         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
15483         Move metadata_t info from cli_image_info_t to MonoImage, where
15484         it's easily accessible. Changed all the uses accordingly.
15485         Added the method and class caches to MonoImage.
15486         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
15487         and mono_metadata_decode_value () signature to be more consistent
15488         with the other parse functions (and simplify code). Taken advantage
15489         of zero-length array allocation with GCC. Removed reduntant (and
15490         wrong) MonoFieldType struct and use MonoParam instead. Changed
15491         mono_metadata_parse_field_type () to use common code for parsing.
15492         Added mono_metadata_typedef_from_field () and
15493         mono_metadata_typedef_from_method () to lookup a typedef index from a
15494         field or method token.
15495         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
15496
15497 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
15498
15499         * metadata.c (mono_metadata_parse_field_type): Implement. 
15500         (do_mono_metadata_parse_type): Split engine from
15501         mono_metadata_parse_type, so that we can create smaller structures
15502         for things that just have one pointer to the MonoType (look at
15503         the MonoFieldType)
15504
15505 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
15506
15507         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
15508         as Jan Gray found out, it is incorrect. 
15509
15510 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
15511
15512         * assembly.c: Implement asssembly loading.  This loads an image
15513         and loads all the referenced assemblies.  Come to think of it, we
15514         could always do lazy loading of the assemblies. 
15515
15516         * image.c (mono_image_open): Keep loaded images in a hashtable.
15517
15518         * image.h (MonoImage): Add reference count.
15519
15520 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
15521
15522         * assembly.c (mono_assembly_open): Keep track of the file name in
15523         case the assembly has no ASSEMBLY table.
15524
15525         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
15526         from get.c here.
15527
15528 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
15529
15530         * metadata.c, metadata.h: decode local vars in method header
15531         parse function. Change callers accordingly.
15532
15533 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
15534
15535         * metadata.h, cil-coff.h: protect against multiple inclusion.
15536         Added some new structures to hold information decoded from metadata:
15537         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
15538         and relevant decoding/free functions.
15539         * metadata.c: implement decoding functions. Add warning for out of bounds
15540         index in mono_metadata_locate(). Implement mono_get_method () to retreive
15541         all the info about a method signature and invocation. Remove check on
15542         uninitialized local var in parse_mh() and fix memory leak.
15543
15544 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
15545
15546         * metadata.h: More macros.
15547
15548         * tokentype.h: New file.
15549
15550 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
15551
15552         * assembly.c: added a consistency check and initialize
15553         some structures with g_new0().
15554         * metadata.c: fixed a couple more bugs in table size computation
15555         and add other checks for out-of bound access to metadata.
15556
15557 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
15558
15559         * metatada.c: fix bugs computing table sizes. Spew a
15560         warning when index in string heap is out of bounds.
15561
15562 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
15563
15564         * metadata.h: Add a couple of macros to manipulate tokens. 
15565
15566 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
15567
15568         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
15569         cli_section_tables).
15570
15571 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
15572
15573         * metadata.c (mono_metadata_user_string): New function, provides
15574         access to the UserString heap. 
15575
15576 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
15577
15578         * metadata.c: Add inline documentation.
15579
15580 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
15581
15582         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
15583         files. 
15584
15585 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
15586
15587         * typeattr.h: New file, TypeAttribute flags. 
15588
15589 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
15590
15591         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
15592         mono_assembly_ensure_section): Section loading code.
15593         (load_section_tables): Load the sections.
15594
15595         * mono/metadata/metadata.c (mono_metadata_locate_token,
15596         mono_metadata_locate): Functions to locate the information
15597         definition given a token or a table and an index.
15598         (mono_metadata_compute_table_bases): New.
15599         (compute_size): New function to compute the sizes of the various
15600         tables.
15601
15602         * mono/metadata/metadata.h: Finish listing the different index
15603         types. 
15604
15605         * mono/metadata/pedump.c: Improve to dump new information.
15606
15607 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
15608
15609         * mono/metadata/metadata.c: Entered all the tables matching
15610         Beta2. 
15611
15612         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
15613