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