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