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