Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1
2 Thu May 2 17:56:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
3
4         * assembly.c, image.h: add some support for assemblies
5         with multiple modules.
6         * class.c, class.h: export mono_class_from_typeref().
7         * loader.c: remove duplicated code and use mono_class_from_typeref(),
8         instead.
9
10 Thu May 2 15:51:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
11
12         * unicode.c: Char.IsNumber doesn't include hex digits as the ms
13         documentation says (the ECMA one is correct).
14
15 2002-05-02  Dick Porter  <dick@ximian.com>
16
17         * threads.c: Use GC_debug_register_finalizer with GC_debug_malloc.
18         Don't name the synchronisation mutex.
19
20 2002-04-30  Jeffrey Stedfast  <fejj@ximian.com>
21
22         * rand.c
23         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetBytes):
24         Make the prototypes match.
25         (ves_icall_System_Security_Cryptography_RNGCryptoServiceProvider_GetNonZeroBytes):
26         Same.
27
28         * icall.c
29         (ves_icall_System_CurrentTimeZone_GetTimeZoneData): Fixed for
30         systems that use 'timezone' rather than tm.tm_gmtoff. Also, not
31         all systems have tm.tm_zone, so use strftime() with %Z to print
32         the timezone abreviation into a temp string.
33
34         * object.c (mono_ldstr): Fixed to use mono_string_chars() macro
35         rather than mono_array_addr() on a MonoString on Big Endian
36         machines.
37
38 2002-04-30  Dietmar Maurer  <dietmar@ximian.com>
39
40         * string-icalls.c (ves_icall_System_String_InternalReplace_Str):
41         fix bug 24041
42
43 2002-04-30  Dick Porter  <dick@ximian.com>
44
45         * socket-io.c: Cope with SOCKET being an integer rather than a
46         pointer now.
47
48         * threads.c: Added Thread_free_internal, to deal with thread
49         handle cleanup.  Moved calls to handle_store() and handle_remove()
50         to start_wrapper(), so each can only be called once.  Allocate
51         synchronisation blocks with GC_malloc(), and use GC finalisation
52         to close the handles.
53
54         * icall.c: added System.Threading.Thread::Thread_free_internal
55
56 Mon Apr 29 15:33:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
57
58         * icall.c: support Environment.Exit, CommandLineArgs().
59
60 Mon Apr 29 15:15:57 CEST 2002 Paolo Molaro <lupus@ximian.com>
61
62         * object.c, object.h: added mono_runtime_run_main () and
63         mono_runtime_get_main_args () for use in System.Environment.
64
65 Mon Apr 29 13:45:11 CEST 2002 Paolo Molaro <lupus@ximian.com>
66
67         * gc.c: fix thinko, enable actual finalization since the jit is now
68         fixed.
69
70 Mon Apr 29 12:47:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
71
72         * gc.c, object.c: take into account that an object may be offset wrt the address
73         returned by GC_malloc().
74
75 Mon Apr 29 12:14:39 CEST 2002 Paolo Molaro <lupus@ximian.com>
76
77         * image.c: handle files without entries in the assembly table (modules).
78
79 2002-04-28 Patrik Torstensson <patrik.torstensson@intel.com>
80
81         * reflection.c (mono_reflection_setup_internal_class): remove g_assert_not_reached() to allow 
82         mcs selfhosting again (build breaker) and did move the check to class instead. parent is
83         allowed to be null when it's System.Object class setup.
84
85 2002-04-27  Martin Baulig  <martin@gnome.org>
86
87         * reflection.c (mono_reflection_setup_internal_class): g_assert_not_reached()
88         if `tb->parent == NULL' rather than crashing.
89
90 2002-04-28  Nick Drochak  <ndrochak@gol.com>
91
92         * sysmath.c (ves_icall_System_Math_Asin): Fix copy-paste error.  Was
93         calling acos() where asin() should have been called.
94
95 2002-04-26  Martin Baulig  <martin@gnome.org>
96
97         * assembly.c (default_assembly_name_resolver): Use G_FILE_TEST_IS_REGULAR
98         instead of G_FILE_TEST_EXISTS - if you're in mcs/class/corlib/System/Test,
99         there's a subdirectory called `System', but we don't want to read that
100         subdirectory as an assembly.
101
102 2002-04-25  Martin Baulig  <martin@gnome.org>
103
104         * debug-symfile.c: Reflect latest MonoString changes.
105
106 Thu Apr 25 16:38:01 CEST 2002 Paolo Molaro <lupus@ximian.com>
107
108         * rand.c, rand.h: instance method icalls need to have an explicit
109         this pointer as first argument in the C implementation.
110
111 2002-04-25  Nick Drochak <ndrochak@gol.com>
112
113         * icall.c: Fix typo in map for GetNonZeroBytes
114
115 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
116
117         * string-icalls.c : String does now passes unit tests without any 
118         errors, the following changes has been made:
119         
120         Implemented replace methods.
121         Renaming of methods to (try) follow the standard.
122         Fixed compare ordinal
123         Made all memory allocated directly to function instead of via icall function.
124         Small performance fix in is_in_array function
125                         
126  (2002-04-23) Changes from Duncan Mak <duncan@ximian.com>
127
128         c (mono_string_Internal_ctor_charp_int_int):
129         (mono_string_Internal_ctor_sbytep_int_int):  Removed check for
130         sindex < 0, throw ArgumentOutOfRangeException instead of
131         ArgumentNullException.
132
133         Added new check for length == 0, however
134         I need to make it return String.Empty from the C code.
135         
136         (mono_string_Internal_ctor_sbytep): Use mono_string_new, and let
137         that calculate the length for us here.
138         
139         (mono_string_Internal_ctor_sbytep_int_int): Replaced
140         mono_string_new_utf16 with mono_string_new, since value is utf8.
141
142 Wed Apr 24 18:43:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
143
144         * object.c: register the object for finalization if needed.
145         Allocate one more char in the string for the terminating 0 char.
146
147 Wed Apr 24 18:22:27 CEST 2002 Paolo Molaro <lupus@ximian.com>
148
149         * class.c, class.h, image.c: check if a type implemenst a destructor.
150         Use the proper key for array class lookups.
151         * icall.c: register the icalls in the System.GC class.
152         * gc.c, gc.h: GC-related functions and icalls.
153
154 2002-04-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
155
156         * icall.c:
157         * socket-io.c:
158         * unicode.c: free some strings gotten from mono_string_to_utf8 and
159         changed a couple of free () by g_free ().
160
161         * decimal.c: one-liner in the comments for decimal2string ().
162
163 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
164
165         * object.c (mono_runtime_invoke_array) : Bug because of my incompetence.
166
167 2002-04-24      Patrik Torstensson <patrik.torstensson@labs2.com>
168
169         * reflection.c (mono_reflection_get_custom_attrs) : fixed image bug (crash)
170         * object.c (mono_runtime_invoke_array) : handle null in params
171
172 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
173
174         * string-icalls.c: fixed bug in split (one off bug)
175
176 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
177
178         * string-icalls.c: fixed bug in remove and lastindexofany, add equals icall.
179         * icalls.c: added String::Equals as internal method
180
181 2002-04-23      Patrik Torstensson <patrik.torstensson@labs2.com>
182
183         * threads.c: fixed bug in the double interlocked functions
184
185 2002-04-22      Patrik Torstensson <patrik.torstensson@labs2.com>
186
187         * threads.c: implemented all of the new interlocked icalls.
188         * string-icalls.c: fix a bug in insert.
189         * icalls.c: added the icalls for interlocked, removed old string functions.
190         
191 Mon Apr 22 19:44:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
192
193         * loader.c: fix off-by-one error when reading argument names.
194
195 Mon Apr 22 19:28:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
196
197         * profiler.c: win32 counter implementation (untested).
198         * icall.cs: win32 GetNow() and GetTimeZoneData() implementations
199         (the latter needs testing and more complete impl. from win32 folks).
200
201 2002-04-21  Dan Lewis  <dihlewis@yahoo.co.uk>
202
203         * object.c: mono_array_new_full workaround mono_array_class_get
204         problem.
205
206 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
207
208         * string-icalls.c (mono_string_InternalRemove): Fixed overwrite bug.
209         * object.h (mono_string_chars): Changed casting type.
210
211 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
212
213         * string-icalls.c: Fixed trim method, added the constructors done by Duncan, fixed
214                            method signatures to use gunichar2 instead of gint16.
215
216 2002-04-20  Dan Lewis  <dihlewis@yahoo.co.uk>
217
218         * object.h, object.c: domain-specific versions of mono_object_new and
219         mono_array_new.
220
221 2002-04-20  Dietmar Maurer  <dietmar@ximian.com>
222
223         * object.c: changed String layout
224
225         * string-icalls.c (mono_string_Internal_ctor_chara): added
226         internal string constructors.
227
228 Sat Apr 20 13:33:07 CEST 2002 Paolo Molaro <lupus@ximian.com>
229
230         * threads.c: pass 'this' to the thread start routine.
231
232 2002-04-20  Gonzalo Paniagua Javier <gonzalo@ximian.com>
233
234         * string-icalls.c: fix IndexOf and LastIndexOf. Now
235         InternalCompareStr don't call twice mono_string_cmp_char for the last
236         character. Improved performance in mono_string_cmp_char.
237
238 Fri Apr 19 19:26:28 CEST 2002 Paolo Molaro <lupus@ximian.com>
239
240         * Makefile.am, appdomain.c, class.c, object.c: split runtime-depended
241         code into its own library: libmonoruntime.
242
243 2002-04-19  Dan Lewis  <dihlewis@yahoo.co.uk>
244
245         * object.h, object.c: changed array format so that szarrays do not
246         require a bounds structure.
247         * icall.c, appdomain.c: support for new szarray format.
248
249 Fri Apr 19 18:04:34 CEST 2002 Paolo Molaro <lupus@ximian.com>
250
251         * metadata.c: compare also the retuns type when comparing signatures:
252         we didn't do this as an optimization since really overloaded methods
253         must differ also in the arguments, but this doesn't work with
254         low-level IL code (or when using explicit conversion operators: see
255         bug#23498 for an example).
256
257 Fri Apr 19 16:14:52 CEST 2002 Paolo Molaro <lupus@ximian.com>
258
259         * loader.c: SZARRAY types can be saved as TYPESPEC, too.
260
261 Thu Apr 18 17:15:09 CEST 2002 Paolo Molaro <lupus@ximian.com>
262
263         * icall.c: make MonoType::GetElementType its own icall.
264
265 Thu Apr 18 16:41:30 CEST 2002 Paolo Molaro <lupus@ximian.com>
266
267         * icall.c: remove MonoMethod_get_Name().
268         * reflection.c, reflection.h, verify: cache the method name in the MonoMethod
269         object.
270
271 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
272
273         * string-icalls.c: optimized a few methods.
274
275 2002-04-17      Patrik Torstensson <patrik.torstensson@labs2.com>
276
277         * icall.c: added all new string internal calls
278         * string-icalls.c: added, new string internal call implementation.
279         * object.c: added mono_string_new_size for allocating a string a size
280
281 2002-04-17  Dietmar Maurer  <dietmar@ximian.com>
282
283         * object.c (mono_object_isinst): use the same code as in the
284         optimized x86 version.
285
286 Wed Apr 17 14:14:36 CEST 2002 Paolo Molaro <lupus@ximian.com>
287
288         * profiler.c: TSC-based timer code (faster and more accurate).
289         Not hooked up in configure, yet (set USE_X86TSC to 1).
290
291 Wed Apr 17 12:33:10 CEST 2002 Paolo Molaro <lupus@ximian.com>
292
293         * profiler.c, profiler.h: track time spent compiling methods.
294         * threads.c: track thread creation/destruction.
295
296 Tue Apr 16 20:08:43 CEST 2002 Paolo Molaro <lupus@ximian.com>
297
298         * profiler.c, profiler.h, profiler-private.h: profiling interface
299         and sample implementation. Moved here so that it can be used also by
300         the jit.
301
302 Tue Apr 16 12:58:12 CEST 2002 Paolo Molaro <lupus@ximian.com>
303
304         * reflection.c, reflection.h: keep types and other handles separate in
305         the hash tables for referred tokens. Add guid for modules.
306
307 Mon Apr 15 11:37:33 CEST 2002 Paolo Molaro <lupus@ximian.com>
308
309         * assembly.c: fix bugs found with valgrind.
310         * metadata.h, metadata.c: added mono_metadata_guid_heap().
311
312 2002-04-14      Patrik Torstensson <patrik.torstensson@labs2.com>
313
314         * threads: added icall support for getting current domain for
315                    the thread.
316  
317 2002-04-13  Martin Baulig  <martin@gnome.org>
318
319         * debug-symfile.h (MonoDebugLocalInfo): Renamed to MonoDebugVarInfo.
320         (MonoDebugVarInfo): Added `index' field for register based addresses.
321         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 9.
322         (MonoDebugMethodInfo): Replaced `guint32 *param_offsets' with
323         `MonoDebugVarInfo *params' and `guint32 this_offset' with
324         `MonoDebugVarInfo *this_var'.
325
326         * debug-symfile.c (relocate_variable): New static function to write
327         a location description for a local variable or method parameter.
328
329 2002-04-12  Martin Baulig  <martin@gnome.org>
330
331         * debug-symfile.h (MonoDebugLocalInfo): New type. This contains the
332         stack offset and begin/end scope address of a local variable.
333         (MonoDebugMethodInfo): Replaced `guint32 *local_offsets' with
334         'MonoDebugLocalInfo *locals', added `prologue_end' and `epilogue_begin'.
335         (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 8.
336
337         * debug-symfile.c (MRT_variable_start_scope, MRT_variable_end_scope):
338         Added new relocation types for start/end scope of a local variable.
339
340 Fri Apr 12 18:30:29 CEST 2002 Paolo Molaro <lupus@ximian.com>
341
342         * object.h: add mono_object_domain() macro.
343         * reflection.c: handle typespecs.
344         * icall.c: MonoMethod::get_Name() implementation.
345
346 Thu Apr 11 12:29Ni:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
347
348         * icall.c: String::GetHashCode() icall implementation.
349
350 Wed Apr 10 21:16:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
351
352         * icall.c: String::IndexOfAny icall.
353         * object.c, object.h: make array->max_length more useful.
354         Intrduced mono_object_class() and mono_string_length() macros.
355
356 2002-04-10  Gonzalo Paniagua Javier <gonzalo@ximian.com>
357
358         * unicode.c (ves_icall_System_Char_IsNumber): use g_unichar_isxdigit
359         instead of g_unichar_isdigit.
360
361 2002-04-11  Nick Drochak  <ndrochak@gol.com>
362
363         * icall.c: Implement a simple Double.ToString().
364
365 Tue Apr 9 21:31:16 CEST 2002 Paolo Molaro <lupus@ximian.com>
366
367         * appdomain.h: only io-layer.h is supposed to be included.
368         * icall.c: explicitly import environ. Fix warning.
369
370 2002-04-10  Nick Drochak  <ndrochak@gol.com>
371
372         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData) :
373                 return true even if it's not Daylight Savings time.
374                 Only return false for the case where the function isn't
375                 implemented for a plaform (read Windows).
376
377 Tue Apr 9 13:05:56 CEST 2002 Paolo Molaro <lupus@ximian.com>
378
379         * appdomain.h, appdomain.c, class.c, object.c: protect MonoDomain
380         data with a mutex.
381
382 2002-04-09  Dietmar Maurer  <dietmar@ximian.com>
383
384         * mempool.c (mono_mempool_alloc): only use g_malloc when
385         absolutely necessary.
386
387 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
388
389         * mempool.c (MEM_ALIGN): hardcode MEM_ALIGN to 8
390
391         * class.c (mono_class_vtable): use domain mempool to allocate vtable
392         (mono_class_proxy_vtable): use domain mempool
393
394 Mon Apr 8 17:17:04 CEST 2002 Paolo Molaro <lupus@ximian.com>
395
396         * appdomain.h, appdomain.c: split initialization that requires the
397         execution engine support into mono_runtime_init().
398
399 2002-04-08  Dietmar Maurer  <dietmar@ximian.com>
400
401         * class.c (mono_class_init): don't include vtable inside MonoClass
402         to save some memory, gather some statistics.
403         (mono_class_vtable): use g_malloc instead of GC_malloc when possible
404
405 Sat Apr 6 20:07:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
406
407         * icall.c: internalcall implementation for ValueType.Equals().
408
409 2002-04-06  Dietmar Maurer  <dietmar@ximian.com>
410
411         * object.c (mono_message_init): moved 
412         (mono_runtime_exec_main): new arch. independent impl.
413         (mono_runtime_invoke_array): new method - like
414         mono_runtime_invoke, but you can pass an array of objects.
415         (mono_remoting_invoke): new arch. independent impl.
416         (mono_message_invoke): new arch. independent impl.
417         (mono_runtime_class_init): new arch. independent impl.
418         (mono_runtime_object_init): new arch. independent impl.
419
420 Fri Apr 5 18:29:14 CEST 2002 Paolo Molaro <lupus@ximian.com>
421
422         * metadata.c, object.c, reflection.c: documented the exported
423         functions.
424
425 Fri Apr 5 15:42:31 CEST 2002 Paolo Molaro <lupus@ximian.com>
426
427         * icall.c: simpler code to pass the assembly builder data to corlib.
428         Implement GetNestedTypes() internalcall.
429
430 Thu Apr 4 21:46:48 CEST 2002 Paolo Molaro <lupus@ximian.com>
431
432         * class.c: warn if a type can't be loaded.
433
434 2002-04-04  Dietmar Maurer  <dietmar@ximian.com>
435
436         * image.h: typedef MonoImageOpenStatus
437         * types.h: removed unused file
438         
439 2002-04-04  Dan Lewis  <dihlewis@yahoo.co.uk>
440
441         * icall.c: Enum_ToObject accepts enum value arguments.
442
443 Thu Apr 4 11:35:37 CEST 2002 Paolo Molaro <lupus@ximian.com>
444
445         * class.c: move initialization of properties, events and nested
446         classes, so that they happen for interfaces, too.
447
448 Wed Apr 3 20:03:32 CEST 2002 Paolo Molaro <lupus@ximian.com>
449
450         * icall.c: cleanup some ugly casts in Array_SetValue*.
451
452 Wed Apr 3 19:49:53 CEST 2002 Paolo Molaro <lupus@ximian.com>
453
454         * icall.c: the values array fro enums is of the correct type, now.
455         Implement (correctly) getFullName instead of assQualifiedName for
456         MonoType.
457         * reflection.h, reflection.c: added mono_type_get_name ().
458
459 Wed Apr 3 17:56:22 CEST 2002 Paolo Molaro <lupus@ximian.com>
460
461         * assembly.c, image.h: for each MonoImage, record from wich assembly
462         it was loaded.
463         * reflection.h, icall.c: added System_Reflection_Assembly_GetTypes().
464         Make Type.Assembly work.
465
466 2002-04-03  Dietmar Maurer  <dietmar@ximian.com>
467
468         * debug-symfile.h: use char* instead of gpointer to avoid
469         unnecessary casts.
470
471         * appdomain.c (mono_jit_info_table_find): use char* instead of gpointer
472
473         * icall.c (ves_icall_InternalExecute): impl. FielSetter
474         (ves_icall_System_Array_SetValueImpl): removed strange MonoArray cast
475
476 2002-03-30  Dietmar Maurer  <dietmar@ximian.com>
477
478         * icall.c (mono_message_init): impl. (code cleanup)
479         (ves_icall_InternalExecute): impl. FieldGetter
480
481         * class.c (mono_class_init): added exerimental EXT_VTABLE_HACK, if
482         defined we call all (non-static)methods through the vtable. 
483
484 Fri Mar 29 18:09:08 CET 2002 Paolo Molaro <lupus@ximian.com>
485
486         * class.c: it seems GC_debug_malloc() makes the Boehm GC call the
487         finalizer even though the memory is still referenced (and the chunk of
488         memory is not freed).
489
490 Fri Mar 29 17:43:04 CET 2002 Paolo Molaro <lupus@ximian.com>
491
492         * assembly.c: fix brokeness.
493
494 Fri Mar 29 16:09:54 CET 2002 Paolo Molaro <lupus@ximian.com>
495
496         * class.c: kill some warnings. Check explicit interface method
497         implementation also without considering the namespace.
498         Load also literal strings in static class data.
499
500 2002-03-29  Miguel de Icaza  <miguel@ximian.com>
501
502         * assembly.c (default_assembly_name_resolver): Kill memory leak. 
503         (default_assembly_name_resolver): Make the resolver take the
504         "base" directory where the assembly was originally defined, so we
505         can load DLLs that are in the same directory as the assembly that
506         is being referenced.
507
508 2002-03-28  Dick Porter  <dick@ximian.com>
509
510         * file-io.h: 
511         * file-io.c:
512         * socket-io.c: 
513         * unicode.h: 
514         * unicode.c: Warning cleanups
515
516 Thu Mar 28 18:06:14 CET 2002 Paolo Molaro <lupus@ximian.com>
517
518         * object.h, reflection.h: use the correct type instead of MonoObject.
519
520 2002-03-28  Martin Baulig  <martin@gnome.org>
521
522         * debug-symfile.c (mono_debug_class_get): Don't look in referenced assemblies.
523         (mono_debug_update_symbol_file): Initialize classes if necessary.
524
525 Thu Mar 28 15:58:43 CET 2002 Paolo Molaro <lupus@ximian.com>
526
527         * assembly.c, debug-helpers.c, image.c, image.h, metadata.c, pedump.c,
528         rawbuffer.c, reflection.c, verify.c: mare warning cleanups.
529
530 Thu Mar 28 15:20:39 CET 2002 Paolo Molaro <lupus@ximian.com>
531
532         * assembly.h: fix function prototype.
533         * metadata.h, metadata.c, object.h, private.h: get rid of warnings.
534         * mono-endian.h: use const cast.
535
536 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
537
538         * icall.c (ves_icall_MonoMethodMessage_InitMessage): moved from message.c
539
540 Thu Mar 28 12:32:00 CET 2002 Paolo Molaro <lupus@ximian.com>
541
542         * loader.c: don't assert when a typeref can't be loaded, give
543         a chance to the runtime to trow an exception instead.
544         * loader.h: fix warning.
545
546 2002-03-28  Dietmar Maurer  <dietmar@ximian.com>
547
548         * class.c (mono_class_proxy_vtable): added proxy support
549
550 2002-03-27  Dan Lewis <dihlewis@yahoo.co.uk>
551
552         * icall.c: removed last of PAL calls, added System.Environment
553         * file-io.h, file-io.c: MonoIO implementation
554         * object.h, object.c: mono_string_to_utf16() now returns gunichar2*
555
556 Tue Mar 26 19:56:10 CET 2002 Paolo Molaro <lupus@ximian.com>
557
558         * appdomain.c: do not use the byte marker in ldstr table lookup.
559         * debug-helpers.c: allow two ':' to separate class and method name.
560         * object.c: allocate arrays bounds with the GC, too.
561         * verify: add a few more checks.
562
563 Tue Mar 26 18:45:46 CET 2002 Paolo Molaro <lupus@ximian.com>
564
565         * reflection.c: output also literal strings. Allocate parameter data
566         with GC_malloc() (thanks, Martin, for catching this!).
567
568 2002-03-26  Martin Baulig  <martin@gnome.org>
569
570         * debug-symfile.h (MonoDebugMethodInfo): Added `this_offset', don't
571         include the `this' offset in the `param_offsets'.
572
573 2002-03-25  Martin Baulig  <martin@gnome.org>
574
575         * debug-symfile.c (mono_debug_update_symbol_file): Use a new
576         mono_debug_get_class() function to get the classes. Added new
577         relocation types for arrays and strings.
578         (mono_debug_get_class): New static function to search in all
579         referenced assemblies for a metadata token.
580
581         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 7.
582
583 Mon Mar 25 13:08:18 CET 2002 Paolo Molaro <lupus@ximian.com>
584
585         * reflection.h, reflection.c: use a gc-safe hash for hash tables that
586         hold gc-allocated objects. Make the string heap a stream like the
587         others. Removed duplicated code when writing stream info.
588         Added asserts to catch possible buffer overflows. Set the sorted map
589         for tables that need sorting. Added some documentation.
590
591 Mon Mar 25 13:04:56 CET 2002 Paolo Molaro <lupus@ximian.com>
592
593         * appdomain.h, appdomain.c, class.c, object.c: use a GC-safe hash table 
594         for interned strings and vtables.
595
596 2002-03-24  Martin Baulig  <martin@gnome.org>
597
598         * icall.c (ves_icall_Type_GetFields): Reverse the list before storing
599         it in the array since it was created with g_slist_prepend().
600
601 2002-03-24  Martin Baulig  <martin@gnome.org>
602
603         * debug-symfile.c (mono_debug_local_type_from_signature): Renamed
604         to ves_icall_Debugger_MonoSymbolWriter_get_local_type_from_sig().
605         (mono_debug_method_from_token): Renamed to
606         ves_icall_Debugger_MonoSymbolWriter_method_from_token().
607         (ves_icall_Debugger_DwarfFileWriter_get_type_token): New interncall.
608
609         * debug-symfile.c (MRT_type_sizeof, MRT_type_field_offset): New
610         relocation types.
611
612         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 6.
613
614 2002-03-24  Martin Baulig  <martin@gnome.org>
615
616         * debug-symfile.c (mono_debug_local_type_from_signature): New func.
617         (mono_debug_method_from_token): New func.
618
619         * icall.c (Mono.CSharp.Debugger.MonoSymbolWriter::get_local_type_from_sig):
620         New interncall, calls mono_debug_local_type_from_signature().
621         (Mono.CSharp.Debugger.MonoSymbolWriter::get_method): New interncall,
622         calls mono_debug_method_from_token().
623
624 2002-03-23  Martin Baulig  <martin@gnome.org>
625
626         * unicode.c (ves_icall_iconv_get_char_count): The `count' argument
627         specifies the number of bytes to be converted, not the array size.
628         Return the number of chars, not the number of bytes.
629         (ves_icall_iconv_get_chars): The `byteCount' argument
630         specifies the number of bytes to be converted, not the array size.
631
632 2002-03-23  Martin Baulig  <martin@gnome.org>
633
634         * reflection.h (MonoReflectionSigHelper): New type.
635
636         * reflection.c (mono_reflection_sighelper_get_signature_local),
637         (mono_reflection_sighelper_get_signature_local): New functions.
638
639         * icall.c (System.Reflection.Emit.SignatureHelper::get_signature_local),
640         (System.Reflection.Emit.SignatureHelper::get_signature_field): New
641         interncalls.
642
643 2002-03-23  Martin Baulig  <martin@gnome.org>
644
645         * rawbuffer.c (mono_raw_buffer_load_mmap): Use MAP_SHARED when
646         is_writeable is set.
647         (mono_raw_buffer_update): New function to write the modified map
648         back to disk.
649
650         * debug-symfile.h (MonoDebugSymbolFile): Added `raw_contents_size'.
651
652         * debug-symfile.c (mono_debug_update_symbol_file): Call
653         mono_raw_buffer_update() when done writing.
654
655 2002-03-23  Martin Baulig  <martin@gnome.org>
656
657         * debug-symfile.h (MONO_DEBUG_SYMBOL_FILE_VERSION): Increased to 5.
658
659         * debug-symfile.c: Added support for arguments and local variables.
660
661 2002-03-23  Dick Porter  <dick@ximian.com>
662
663         * debug-symfile.c: Remove extraneous 'include <elf.h>' that wasn't
664         protected by ifdefs, hence breaking the w32 build.
665
666 Thu Mar 21 17:35:01 CET 2002 Paolo Molaro <lupus@ximian.com>
667
668         * object.c: implement is_interned() the right way.
669
670 2002-03-21  Martin Baulig  <martin@gnome.org>
671
672         * debug-symfile.[ch]: New files to handle debugging information
673         files. There's also support to dynamically update these symbol
674         files to include machine dependent information.
675
676 2002-03-20  Dietmar Maurer  <dietmar@ximian.com>
677
678         * threads.c (mono_thread_create): new function to create thread
679         from C
680
681 2002-03-20  Martin Baulig  <martin@gnome.org>
682
683         * icall.c (ves_icall_InternalInvoke): Create a new object if the
684         method is a constructor.
685         (icall_map): Added "System.Reflection.MonoCMethod::InternalInvoke",
686         points to ves_icall_InternalInvoke().
687
688 2002-03-20  Dan Lewis <dihlewis@yahoo.co.uk>
689
690         * file-io.c: Flush shouldn't throw exceptions.
691
692 2002-03-19  Dan Lewis <dihlewis@yahoo.co.uk>
693
694         * file-io.c: FileStream flush support; FileSetLength now
695         restores file pointer.
696
697 Tue Mar 19 18:17:21 CET 2002 Paolo Molaro <lupus@ximian.com>
698
699         * class.c: set image for pointer classes.
700
701 2002/03/19  Nick Drochak <ndrochak@gol.com>
702
703         * sysmath.c: Forgot one.
704
705 2002-03-18  Miguel de Icaza  <miguel@ximian.com>
706
707         * sysmath.c: Avoid redefining existing names.
708
709 2002-03-18  Dan Lewis <dihlewis@yahoo.co.uk>
710
711         * sysmath.c, sysmath.h, icall.c, Makefile.am: math routines now
712         handled by runtime as icall rather than dllimport from libm.so
713         * file-io.c, file-io.h: fixed handle argument type.
714
715 2002-03-18  Dick Porter  <dick@ximian.com>
716
717         * reflection.c (mono_image_get_type_info): rename interface to
718         iface, because of "#define interface struct" on windows.
719
720 Sat Mar 16 19:18:38 CET 2002 Paolo Molaro <lupus@ximian.com>
721
722         * class.c, class.h: rename and export mono_ptr_class_get().
723         * metadata.c: support MONO_TYPE_ARRAY in MonoType compare.
724         * reflection.c, reflection.h, icall.c: better/saner type name
725         parsing and MonoType creation. Handle MONO_TYPE_ARRAY in
726         method signatures.
727
728 2002-03-14  Dietmar Maurer  <dietmar@ximian.com>
729
730         * class.c (mono_class_init): removed hardcoded GHC_SLOT
731
732         * icall.c (ves_icall_InternalInvoke): impl.
733
734 Wed Mar 13 00:27:30 CET 2002 Paolo Molaro <lupus@ximian.com>
735
736         * reflection.c: output the interface map table, too.
737
738 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
739
740         * class.c (class_compute_field_layout): separate computation of 
741         static field layout
742
743 2002-03-12  Dan Lewis <dihlewis@yahoo.co.uk>
744
745         * icall.c: added System.Buffer support.
746         * file-io.c: moved file icalls from PAL to FileStream.
747
748 2002-03-12  Dietmar Maurer  <dietmar@ximian.com>
749
750         * icall.c (ves_icall_System_Object_GetHashCode): impl.
751
752 2002-03-11  Dietmar Maurer  <dietmar@ximian.com>
753
754         * icall.c (ves_icall_System_ValueType_GetHashCode): impl.
755
756 Mon Mar 11 14:45:42 CET 2002 Paolo Molaro <lupus@ximian.com>
757
758         * verify.c, verify.h: moved here the corlib/runtime consistency checks.
759
760 Mon Mar 11 11:12:23 CET 2002 Paolo Molaro <lupus@ximian.com>
761
762         * debug-helpers.{c,h}: moved here from monograph some useful functions
763         to locate a method by name/signature in a class or image. Included
764         also a small and flexible IL disassembler.
765
766 Fri Mar 8 16:29:29 CET 2002 Paolo Molaro <lupus@ximian.com>
767
768         * reflection.c: fixup tokens in methods with small header size, too.
769
770 2002-03-08  Dietmar Maurer  <dietmar@ximian.com>
771
772         * object.c (mono_string_to_utf8): remove assert(!error), instead
773         print a warning. 
774
775 Thu Mar 7 18:55:15 CET 2002 Paolo Molaro <lupus@ximian.com>
776
777         * icall.c: update to the new mono_Array_class_get interface.
778
779 Thu Mar 7 17:23:26 CET 2002 Paolo Molaro <lupus@ximian.com>
780
781         * appdomain.c, object.c: Boehm-GC enable.
782         * icall.c: make get_data_chunk() support split data requests.
783         Ensure a class is initialized in more cases. Return only the first
784         property found in GetProperties() or the compiler gets confused. 
785         Implemented GetEvents(). Temporary fix to GetType(), needs rewriting.
786         * reflection.h, reflection.c: add fixup mechanism for field and method
787         tokens. Initialize assembly->typeref in a single place. Output
788         properties after events. Support custom attributes for events, too.
789         Typo fix for paramter custom attrs.
790
791 2002-03-07  Martin Baulig  <martin@gnome.org>
792
793         * icall.c (ves_icall_System_Array_FastCopy): Small fix.
794
795 2002-03-07  Dietmar Maurer  <dietmar@ximian.com>
796
797         * class.c (mono_array_class_get): fix. for multi. dim. arrays
798
799 2002-03-06  Martin Baulig  <martin@gnome.org>
800
801         * icall.c (ves_icall_System_Array_CreateInstanceImpl): Make this work with
802         non-zero lower bounds. See testcases #F10-#F13.
803
804 2002-03-05  Martin Baulig  <martin@gnome.org>
805
806         * exception.c (mono_get_exception_argument_out_of_range): New exception.
807
808         * icall.c (ves_icall_System_Array_GetValue): Moved actual implementation to
809         ves_icall_System_Array_GetValue(), only calculate the absolute array position
810         here.
811         (ves_icall_System_Array_SetValue): Likewise.
812         (ves_icall_System_Array_GetValueImpl): New interncall. Takes an array position
813         as argument and does the actual work. This function is used when copying a
814         multi-dimensional array.
815         (ves_icall_System_Array_SetValueImpl): Almost completely rewrote this. It can
816         now do all the widening conversions of value types.
817         (ves_icall_System_Array_CreateInstanceImpl): Implemented.
818
819 Tue Mar 5 18:14:01 CET 2002 Paolo Molaro <lupus@ximian.com>
820
821         * class.c: remove some magic numbers and use the smbolic names,
822         instead. Added init_events() to load event info at class init time.
823         * metadata.h, metadata.c: added mono_metadata_events_from_typedef()
824         and mono_metadata_methods_from_event().
825         * reflection.h, reflection.c: added support for writing out the evnets
826         related information.
827
828 Mon Mar 4 20:32:43 CET 2002 Paolo Molaro <lupus@ximian.com>
829
830         * reflection.h, icall.c: use a different method (GetInterfaces)
831         to gather interface info and add isbyref, isprimitive and
832         ispointer to the ves_icall_get_type_info() return value.
833
834 Mon Mar 4 11:22:26 CET 2002 Paolo Molaro <lupus@ximian.com>
835
836         * class.h: stared adding support for events.
837         * icall.c: split find_members implementation. Added debug icall to get
838         the address of an object.
839         * reflection.c: handle TypeBuilders in mono_type_get_object().
840
841 2002-03-01  Martin Baulig  <martin@gnome.org>
842
843         * icall.c (ves_icall_System_Array_GetLength): This must throw an
844         ArgumentOutOfRangeException(), not an ArgumentException().
845         (ves_icall_System_Array_GetLowerBound): Likewise.
846         (ves_icall_System_Array_GetValue): Improved argument checking.
847         (ves_icall_System_Array_SetValue): Improved argument checking.
848
849 2002-03-01  Martin Baulig  <martin@gnome.org>
850
851         * icall.c (ves_icall_System_Array_GetValue): Raise an exception when
852         called with invalid arguments rather than just dying with g_assert().
853         (ves_icall_System_Array_SetValue): Likewise.
854         (ves_icall_System_Array_CreateInstanceImpl): Don't g_assert_not_reached(),
855         raise a NotImplementedException instead.
856         (ves_icall_System_Array_GetLength): Added argument checking.
857         (ves_icall_System_Array_GetLowerBound): Added argument checking.
858
859 2002-03-01  Dietmar Maurer  <dietmar@ximian.com>
860
861         * object.h (mono_assert): new macros mono_assert and
862         mono_assert_not_reached
863
864 2002-02-28  Martin Baulig  <martin@gnome.org>
865
866         * icall.c: Rename "System::String::Intern" to "System::String::_Intern"
867         and "System::String::IsInterned" to "System::String::_IsInterned".
868
869 Thu Feb 28 19:19:35 CET 2002 Paolo Molaro <lupus@ximian.com>
870
871         * icall.c: remove hacks for typebuilder. Added icall to create a
872         modified type from a tybebuilder.
873         * reflection.c: removed hacks for TypeBuilder. Create also a MonoImage
874         in mono_image_basic_init (). Added mono_reflection_setup_internal_class ()
875         to create a backing MonoClass for a TypeBuilder.
876
877 Thu Feb 28 15:35:51 CET 2002 Paolo Molaro <lupus@ximian.com>
878
879         * class.c, class.h: more refactoring of class init.
880         Export mono_class_setup_mono_type() and mono_class_setup_parent().
881
882 Thu Feb 28 12:33:41 CET 2002 Paolo Molaro <lupus@ximian.com>
883
884         * marshal.c, marshal.h: start of marshaling interface.
885
886 Wed Feb 27 22:15:17 CET 2002 Paolo Molaro <lupus@ximian.com>
887
888         * icall.c: fix order in assembly qualified name icall.
889
890 Wed Feb 27 18:45:03 CET 2002 Paolo Molaro <lupus@ximian.com>
891
892         * class.c: do not free str, since we store it in the hash table.
893         * reflection.h: add label field to MonoILExceptionInfo.
894         * reflection.c: handle references to more than one assembly. Handle
895         case when there isn't a module created in the assembly.
896
897 Wed Feb 27 12:35:10 CET 2002 Paolo Molaro <lupus@ximian.com>
898
899         * class.c: Fix typo. Start refactoring of class init code.
900
901 Wed Feb 27 12:23:00 CET 2002 Paolo Molaro <lupus@ximian.com>
902
903         * appdomain.c: exit with 1 on error.
904         * class.c: we already have the name in MonoClassField.
905         * image.c, image.h, metadata.c, pedump.c: use directly a pointer in
906         MonoStreamHeader instead of an offset of image->raw_metadata.
907
908 2002-02-26  Miguel de Icaza  <miguel@ximian.com>
909
910         * appdomain.c (mono_init): Be even more descriptive about the error.
911
912 Tue Feb 26 16:18:07 CET 2002 Paolo Molaro <lupus@ximian.com>
913
914         * appdomain.c: give the user an informative message when corlib can't
915         be loaded.
916
917 2002-02-26  Martin Baulig  <martin@gnome.org>
918
919         * icall.c (ves_icall_System_CurrentTimeZone_GetTimeZoneData):
920         New icall to get the time zone data.
921
922 Mon Feb 25 15:51:51 CET 2002 Paolo Molaro <lupus@ximian.com>
923
924         * reflection.c: set virtual and raw size of section correctly.
925         * threads.c: transfer domain information to newly created threads.
926
927 Fri Feb 22 18:55:57 CET 2002 Paolo Molaro <lupus@ximian.com>
928
929         * class.c: when instancing a class in a domain, load the default
930         vaules for static fields from the constant table. Fix System.Enum to
931         not be an enum.
932         * icall.c: implement Object::GetType() internalcall. Implemented
933         MonoField::GetValue() internalcall. Avoid SEGV in search_method().
934         Fixed checking of binding flags in find_members().
935         * metadata.c, metadata.h: introduce mono_metadata_type_hash().
936         * reflection.c: handle enumerations when writing to the constant
937         table. Use a different object cache for types.
938
939
940 2002-02-22  Dietmar Maurer  <dietmar@ximian.com>
941
942         * object.c (mono_object_isinst): fix for arrays
943
944         * icall.c (ves_icall_type_is_subtype_of): fix for 2 interfaces
945
946 Thu Feb 21 21:00:13 CET 2002 Paolo Molaro <lupus@ximian.com>
947
948         * object.c: don't use mprotect ()  and fix intern pool hash table
949         lookup for big endian systems.
950
951 Thu Feb 21 19:30:29 CET 2002 Paolo Molaro <lupus@ximian.com>
952
953         * icall.c: change type_is_subtype_of () signature.
954
955 2002-02-21  Mark Crichton  <crichton@gimp.org>
956
957         * rand.c, rand.h: Added random number generator for
958         System.Security.Cryptography classes.
959
960         * exception.c, exception.h: Added mono_get_exception_not_implemeted.
961
962         * icall.c: Added System.Security.Cryptography calls.
963
964 Thu Feb 21 16:45:34 CET 2002 Paolo Molaro <lupus@ximian.com>
965
966         * class.c, icall.c, metadata.c: better support for pointer types.
967         Create a class for them as suggested by dietmar. Fix TYPE_ARRAY class.
968         * reflection.c: Add support for getting custom attrs for properties
969         and simplify some code.
970
971 Wed Feb 20 22:20:29 CET 2002 Paolo Molaro <lupus@ximian.com>
972
973         * icall.c: change getToken () and add custom attribute GetBlob()helper
974         method.
975         * reflection.h: add custom attrs array to the reflection builder structures.
976         * reflection.c: encode and emit custom attributes for all the relevant
977         reflection objects. Cache fieldref and methodref tokens. Change
978         mono_image_create_token() interface to take a MonoDynamicAssembly.
979         More complete custom attributes decoder. Load custom attributes for
980         Assembly, Field, Method and Constructor objects, too. Make the
981         returned array an Attribute[] one, not object[]. Added
982         mono_reflection_get_custom_attrs_blob() to encode the arguments of a
983         custom attribute constructor.
984
985 2002-02-20  Dick Porter  <dick@ximian.com>
986
987         * icall.c:
988         * rawbuffer.c:
989         * socket-io.c: Windows portability fixes (sometimes just ifdeffing
990         problem code out for now).
991
992 2002-02-19  Radek Doulik  <rodo@ximian.com>
993
994         * object.c (mono_ldstr): use hash table to avoid multiple swapping
995
996 Tue Feb 19 20:23:11 CET 2002 Paolo Molaro <lupus@ximian.com>
997
998         * icall.c: register the GetCustomAttributes method.
999         * object.c, object.h: add mono_string_new_len ().
1000         * reflection.h, reflection.c: added mono_runtime_invoke(),
1001         mono_install_runtime_invoke(). Added
1002         mono_reflection_get_custom_attrs () to load custom attributes and
1003         create the attribute objects.
1004
1005 2002-02-19  Dick Porter  <dick@ximian.com>
1006         * threads-dummy-types.c:
1007         * threads-dummy-types.h:
1008         * threads-dummy.c:
1009         * threads-dummy.h:
1010         * threads-pthread-types.c:
1011         * threads-pthread-types.h:
1012         * threads-pthread.c:
1013         * threads-pthread.h:  Deleted obsolete files
1014
1015 2002-02-19  Dietmar Maurer  <dietmar@ximian.com>
1016
1017         * class.c (mono_class_vtable): runtime init the class when we
1018         allocate static class data.
1019
1020         * icall.c (ves_icall_System_Array_SetValue): check for null values.
1021
1022         * appdomain.c (mono_domain_transfer_object): impl. hack for Arrays
1023         and String - but we will need generic marshalling support in the
1024         future. 
1025         (mono_init): set the domain name in a ms compatible way
1026
1027         * object.c (mono_string_new_utf16): bug fix: use char[] instead of
1028         String[].
1029
1030 2002-02-18  Dietmar Maurer  <dietmar@ximian.com>
1031
1032         * object.c (mono_array_clone): use alloca() instead of g_malloc  
1033         for sizes
1034
1035         * appdomain.c (mono_domain_unload): impl.
1036
1037 Mon Feb 18 15:52:20 CET 2002 Paolo Molaro <lupus@ximian.com>
1038
1039         * appdomain.c, object.c: fix intern pool implementation.
1040         * class.c: fix alignment code.
1041
1042 2002-02-16  Radek Doulik  <rodo@ximian.com>
1043
1044         * icall.c (ves_icall_System_Enum_ToObject): in case of big endian
1045         and s2 > s1, just copy lower bytes to be compatible with little
1046         endian (i.e. 64bit value & 0xffffffff --> 32bit value)
1047         (ves_icall_System_Enum_ToObject): and likewise for s1 > s2
1048
1049         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
1050         force big_endian to be 1 for big endian machines 
1051         (ves_icall_iconv_new_decoder): ditto
1052
1053 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
1054
1055         * socket-io.c (convert_sockopt_level_and_name): If the system
1056         doesn't define SOL_IP or SOL_TCP, get them by hand using
1057         getprotobyname() and caching the values (because this could be a
1058         slow operation).
1059         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
1060         Use the appropriate struct when the system does support it. Ie,
1061         not all systems have struct ip_mreqn so use struct ip_mreq when
1062         appropriate.
1063
1064 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
1065
1066         * reflection.c: handle finally clauses.
1067
1068 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
1069
1070         * socket-io.c: use g_snprintf() instead of snprintf.
1071
1072 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1073
1074         * reflection.c (mono_param_get_objects): Cast second argument to
1075         mono_method_get_param_names to a const char** to silence the
1076         compiler warning.
1077
1078         * appdomain.c (mono_domain_assembly_open): Put parens around the
1079         truth statement in the for-loop.
1080
1081         * unicode.c (iconv_convert): Got rid of a compiler warning about
1082         int i being unused when the system has a new iconv.
1083         (iconv_get_length): Same.
1084
1085         * image.c (load_class_names): Cast the second argument to
1086         g_hash_table_insert() to char* to hush compiler warnings about the
1087         arg being a const.
1088         (mono_image_open): Same here.
1089
1090         * socket-io.c: Don't conditionally include sys/filio.h or
1091         sys/sockio.h here anymore since we now get them from
1092         io-layer/io-layer.h
1093         (inet_pton): If the system doesn't support inet_aton, implement
1094         using inet_addr and also #define INADDR_NONE if it isn't defined
1095         by the system.
1096
1097 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
1098
1099         * metadata.c, metadata.h: added function to get packing and size info
1100         of a typedef.
1101         * reflection.h, reflection.c: handle field RVA data. Save info about
1102         the table layout if needed. Assign typedef indexes to all the types
1103         before dumping the info about them to avoid forward reference problems.
1104
1105 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
1106
1107         * socket-io.c (convert_sockopt_level_and_name): ifdef
1108         SO_ACCEPTCONN because it is not defined on my system (old debian)
1109
1110 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
1111
1112         * opcode.c: use stddef.h to get NULL.
1113
1114 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
1115
1116         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
1117         for FIONBIO, FIONREAD and SIOCATMARK.
1118         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
1119         define INADDR_NONE and besides, inet_addr() is deprecated and
1120         should not be used. Use inet_pton() instead - it also has the
1121         added bonus that it can easily handle IPv6 addresses as well.
1122         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
1123
1124 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
1125
1126         * decimal.c: remove _MSC_VER conditional.
1127
1128 2002-02-13  Dick Porter  <dick@ximian.com>
1129
1130         * socket-io.c: 
1131         * icall.c: Internal calls for Blocking, Select, Shutdown,
1132         GetSocketOption and SetSocketOption
1133
1134 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1135
1136         * assembly.cs: better resolver: use it instead of some kludgy
1137         code.
1138
1139 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
1140
1141         * reflection.c: the best way to speed-up the compiler is to avoid
1142         infinite loops.
1143
1144 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
1145
1146         * class.c (mono_class_vtable): changed the object layout
1147         (obj->vtable->class). 
1148         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
1149
1150 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
1151
1152         * assembly.c: look for assemblies in the assembly dir, too.
1153
1154 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1155
1156         * class.c: fix thinko in mono_class_from_type().
1157
1158 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
1159
1160         * exception.h, exception.c: added TypeLoadException.
1161         * object.h, object.c: added mono_array_clone ().
1162         * icall.c: handle throwOnError in AssemblyGetType().
1163         Added Array.Clone().
1164         * opcode.h, opcode.c: use a single value for the opcode val.
1165         Compile fix for non-gcc compilers.
1166
1167 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
1168
1169         * opcodes.c, opcodes.h: export interesting info about opcodes.
1170
1171 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
1172
1173         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
1174         icalls. 
1175
1176         * class.c (class_compute_field_layout): set element_class for enums
1177         (mono_class_create_from_typedef): set element_class for normal classes
1178
1179         * icall.c (ves_icall_System_Enum_get_value): impl.
1180
1181         * class.c (mono_class_create_from_typedef): do not set valuetype
1182         flag for System.ValueType and System.Enum
1183
1184 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
1185
1186         * unicode.c (iconv_convert): fix big endian problem.
1187
1188 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
1189
1190         * class.c: add asserts if we are ever going to scribble over memory.
1191         * socket-io.c: not all systems have AF_IRDA defined.
1192
1193 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
1194
1195         * class.c (class_compute_field_layout): do not consider static
1196         fields to compute alignment
1197
1198 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
1199
1200         * appdomain.c (mono_appdomain_get): impl.
1201         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
1202
1203 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
1204
1205         * icall.c: ignore "file://" prefix when loading an assembly.
1206
1207 2002-01-23  Dick Porter  <dick@ximian.com>
1208
1209         * socket-io.c:
1210         * icall.c:
1211         * Makefile.am: Added socket support
1212
1213 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1214
1215         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
1216         code back.  This should return the assemblies that are loaded by
1217         the runtime on behalf of an application domain. 
1218
1219         The current implementation is still broken, it just returns every
1220         assembly loaded, but until we get real applications domain this
1221         will do.
1222
1223 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
1224
1225         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
1226         AppDomain object.
1227
1228 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
1229
1230         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
1231         the mono_class_from_name lookup.
1232         (ves_icall_get_parameter_info): ditto.
1233         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
1234         method.
1235         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
1236
1237 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
1238
1239         * class.c: load also nested classes on class init.
1240         System.ValueType instance methods gets passed boxed
1241         values, unless methods in derived classed that get a pointer to the
1242         data.
1243         * icall.c: use better name parsing code in GetType().
1244         * image.c, image.h: add mono_image_loaded ().
1245         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
1246         * reflection.c, reflection.h: added mono_reflection_parse_type().
1247
1248 2002-01-22  Veronica De Santis <veron78@interfree.it>
1249
1250         * icall.c : Added mapping of internal calls for Manual and Auto reset events
1251         * threads.c : Added the implementation of internal calls for events
1252         * threads.h : Added prototypes of internal calls for events
1253         
1254 2002-01-21  Radek Doulik  <rodo@ximian.com>
1255
1256         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
1257
1258 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
1259
1260         * class.c (mono_class_init): set min_align to 1 (instead of 0)
1261         (mono_class_value_size): use min_align
1262
1263 2002-01-20  Dick Porter  <dick@ximian.com>
1264
1265         * threads.h:
1266         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
1267         so it compiles on w32.
1268
1269 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
1270
1271         * metadata.c (mono_type_stack_size): impl.
1272
1273         * class.c (mono_class_get_field): impl. memberref token
1274
1275 2002-01-16 Veronica De Santis <veron78@@interfree.it>
1276
1277         * icall.h : Added the internal calls mapping for CreateMutex_internal
1278                     and ReleaseMutex_internal.
1279         * threads.h : Added the prototype of mutexes internal calls.
1280         * threads.c : Added the implementations of mutexes internal calls.
1281
1282 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
1283
1284         * metaparse.h: removed unused file.
1285         * reflection.c, reflection.h: added stream_data_align () function 
1286         to align data in streams and keep stream aligned. Add support for
1287         exception support in method headers.
1288
1289 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
1290
1291         * unicode.c: make iconv_convert () return the number of bytess written
1292         in the output buffer.
1293
1294 2002-01-15  Dick Porter  <dick@ximian.com>
1295         * threads.c: Make the runtime's idea of infinite timeouts coincide
1296         with the class library's
1297
1298         Fix a particularly egregious bug in mono_thread_cleanup(). That
1299         code was so utterly bogus it must have been written on a Monday.
1300
1301 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
1302
1303         * reflection.h: add subtypes field to TypeBuilder.
1304         * reflection.c: encode constants for literal fields.
1305         Handle subtypes. Fix user string token (and add a zero byte)
1306         at the end.
1307         
1308 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
1309
1310         * class.c (mono_class_init): bug fix: assign slot numbers for
1311         abstract methods.
1312
1313 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
1314
1315         * reflection.c: don't try to output a code RVA for abstract methods.
1316         Small fixes for method header format. Output parameter info to the
1317         ParamDef table. Save method overriding info to MethodImpl table.
1318         Fix property support. Allow typedef.extends to be a type in the
1319         building assembly.
1320         * verify.c: fix off-by-one error.
1321
1322 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
1323
1324         * class.c: fix mono_class_from_mono_type () for szarray types.
1325         Remove unused cache check in mono_class_from_type_spec().
1326         * icall.c: *type_from_name () functions handle simple arrays and byref.
1327         * reflection.c: handle byref and szarray types. Handle methods without
1328         body (gets P/Invoke compilation working). Handle types and fields in
1329         get_token ().
1330         * reflection.h: add rank to MonoTypeInfo.
1331
1332 2002-01-10  Dick Porter  <dick@ximian.com>
1333
1334         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
1335         internal calls
1336
1337 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
1338
1339         * icall.c: initialize class in type_from_handle ().
1340         Loop also in parent classes for get_method ().
1341         * reflection.c: properly encode class and valuetype types.
1342         Start on encoding TypeBuilder types. Handle fieldrefs.
1343         Use correct length when registering a user string.
1344         Handle ConstructorBuilder and MonoMethod in get_token ().
1345         Make mono_type_get_object () aware of cached types.
1346         * object.c: back out change to mono_string_new ().
1347
1348 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
1349         * object.c: mono_string_new should return a NULL when the string 
1350         passed in is NULL -- not try to deference it.
1351         
1352 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
1353
1354         * icall.c: hack to make IsSubType work for TypeBuilders.
1355         * reflection.c: emit constructors before methods.
1356         Retrieve param names in mono_param_get_objects().
1357
1358 2002/01/05  Nick Drochak  <ndrochak@gol.com>
1359
1360         * Makefile.am: fix list of headers and sources so automake 1.5
1361         doesn't complain. Removed \# at end of list.
1362
1363 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
1364
1365         * reflection.c: get token for a method ref. Set return type of
1366         constructor to void.
1367         * loader.c: debug message.
1368         * class.c: typo fix.
1369
1370 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
1371
1372         * icall.c: fix array init with rank > 1. FindMembers
1373         loops in parent class as well.
1374         * image.c: do not insert nested types in name cache.
1375         * reflection.c: warning fix.
1376         * reflection.h: add override method (for interface impl).
1377
1378 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
1379
1380         * metadata.c: fix customattr decoding.
1381
1382 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
1383
1384         * rawbuffer.cs: Added native Win32 implementation, avoids using
1385         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
1386
1387 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
1388
1389         * class.c: make the low-level routines handle the cache.
1390
1391 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
1392
1393         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
1394
1395 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
1396
1397         * class.c: fix mono_array_element_size() for objects.
1398         * class.h, class.c: add properties to MonoClass and load them
1399         at init time.
1400         * icall.c: check with isinst() when assigning a value to an array
1401         instead of requiring the classes to match exactly.
1402         Implemented icall for System.Type::GetType().
1403         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
1404         enums. Handle bindingflags when looking for methods and fields.
1405         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
1406         and mono_metadata_methods_from_property().
1407         * reflection.h, reflection.c: added structures for propreties,
1408         parameters and enums. Implemented mono_property_get_object() and
1409         mono_param_get_objects().
1410
1411 2001-12-18  Dick Porter  <dick@ximian.com>
1412
1413         * file-io.c: Use mono_string_to_utf16() instead of
1414         mono_string_chars()
1415
1416         * object.c: Added mono_string_to_utf16(), which copies the non
1417         NULL-terminated MonoString into a new double-null-terminated
1418         buffer.
1419
1420 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
1421
1422         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
1423
1424 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
1425
1426         * file-io.c: raise exceptions if handle is invalid.
1427
1428 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
1429
1430         * assembly.c: yet another check for mscorlib.
1431         * class.c, class.h: load nesting info for classes.
1432         * icall.c: many new functions to support the Reflection classes.
1433         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
1434         * reflection.h, reflection.c: mono_image_create_token(),
1435         mono_assembly_get_object(), mono_type_get_object(),
1436         mono_method_get_object(), mono_field_get_object(): methods to return
1437         objects that parallel the C representation of assemblies, types,
1438         methods, fields.
1439
1440 2001-12-11  Dick Porter  <dick@ximian.com>
1441
1442         * icall.c:
1443         * file-io.c: Internal calls for file IO.
1444
1445 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
1446
1447         * tabledefs.h: missing FileAttributes.
1448         * verify.h, verify.c: use is_valid_string () to simplify and check for
1449         valid strings more correctly. Fix warnings and speeling.
1450         Check more tables: Filed, File, ModuleRef, StandAloneSig.
1451         Check code: branches, maxstack, method calls.
1452
1453 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
1454
1455         * object.c (mono_object_allocate): removed static, so that the jit
1456         can allocate value types.
1457
1458         * icall.c (ves_icall_System_DateTime_GetNow): impl.
1459
1460 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1461
1462         * class.c: init enum types right away and register the
1463         token->MonoClass map in mono_class_create_from_typedef ().
1464         * verify.h, verify.c: first cut of the verifier.
1465         * pedump.c: add --verify switch to verify metadata tables.
1466         * tabledefs.h: add some missing enums.
1467
1468 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
1469
1470         * class.c (mono_install_runtime_class_init): impl.
1471         (mono_class_init): renamed mono_class_metadata_init to
1472         mono_class_init, also removed the metadata_inited flag
1473
1474         * object.c (mono_object_isinst): use faster algorithm
1475
1476 2001-11-30  Radek Doulik  <rodo@ximian.com>
1477
1478         * mono-endian.h: reverted last change
1479         added function prototypes
1480
1481         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
1482         add mono-endian.c back
1483
1484         * mono-endian.c: returned back, as Paolo pointed out, it's needed
1485         for unaligned access, I've mistaked it with endianess. I am
1486         sorry.
1487         (mono_read16): fix reverted endianess
1488         (mono_read64): ditto
1489         (mono_read32): ditto
1490
1491 2001-11-30  Dick Porter  <dick@ximian.com>
1492
1493         * exception.c: Implement mono_exception_from_name()
1494
1495 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
1496
1497         * metadata.h, metadata.c: remove params_size and locals_size and their
1498         calculation from the metadata code: they are only usefult to the
1499         interp.
1500
1501 2001-11-29  Radek Doulik  <rodo@ximian.com>
1502
1503         * object.c (mono_ldstr): swap bytes here, it's probably not the
1504         best place, but works for me now, I'll redo it once I know mono
1505         better, also note that I add PROT_WRITE and don't reset back, also
1506         note that it's only affects big endians, so x86 should be OK
1507
1508         * mono-endian.h (read16): use just glib macros for both endians
1509
1510         * mono-endian.c: removed as glib macros are used in in
1511         mono-endian.h so we don't need to care about endianess for read
1512         macros as glib does that for us already
1513
1514 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
1515
1516         * class.h, class.h: take minimum alignment into consideration so
1517         that the fields of a class remain aligned also when in an array.
1518
1519 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1520
1521         * loader.h, loader.c: add mono_method_get_param_names().
1522         * class.c: 0-init class fields.
1523
1524 2001-11-26  Dick Porter  <dick@ximian.com>
1525
1526         * icall.c:
1527         * threads-types.h:
1528         * threads.c: New file that handles System.Threading on all platforms
1529
1530         * object.c: 
1531         * object.h: Remove the synchronisation struct from MonoObject,
1532         replace it with a pointer that gets initialised on demand
1533
1534         * Makefile.am: Replace all the system-specific threading code with
1535         a single file that uses the new wrapper library
1536
1537 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
1538
1539         * class.c, class.h: add mono_install_trampoline() so that the runtime
1540         can register a function to create a trampoline: removes the ugly
1541         requirement that a runtime needed to export arch_create_jit_trampoline.
1542         * object.h, object.c: added mono_install_handler() so that the runtime
1543         can install an handler for exceptions generated in C code (with
1544         mono_raise_exception()). Added C struct for System.Delegate.
1545         * pedump.c: removed arch_create_jit_trampoline.
1546         * reflection.c: some cleanups to allow registering user strings and
1547         later getting a token for methodrefs and fieldrefs before the assembly
1548         is built.
1549         * row-indexes.h: updates and fixes from the new ECMA specs.
1550
1551 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
1552
1553         * class.h, class.c: add enum_basetype field to MonoClass.
1554         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
1555         to get index in the constant table reated to a field, param or
1556         property.
1557         * reflection.h, reflection.c: handle constructors. Set public-key and
1558         version number of the built assembly to 0.
1559         * row-indexes.h: update from new ECMA spec.
1560
1561 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
1562
1563         * class.h, class.c: add a max_interface_id to MonoClass.
1564         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
1565         since it's used to do that. Added mono_type_type_from_obj().
1566         Make GetType() return NULL instead of segfaulting if the type was not
1567         found. Handle simple arrays in assQualifiedName.
1568         * object.h: add a struct to represent an Exception.
1569         * reflection.c: output call convention in method signature.
1570         Add code to support P/Invoke methods and fixed offsets for fields.
1571
1572 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
1573
1574         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
1575         the value.
1576         * icall.c: use mono_array_addr instead of array->vector: fixes the
1577         reflection image writing.
1578         * reflection.c: init call convention byte to 0 in method signature.
1579         Encode the property signature. Don't output property-related methods
1580         twice. Really process the properties for a type (don't cast a field to
1581         a property, my mom always told me that).
1582         Fix 64 bit issues in pointer alignment in a different and more
1583         readable way.
1584
1585 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
1586
1587         * loader.h: Removed type class from MonoDefaults, added monotype
1588
1589         * loader.c: Loaded MonoType, removed loading of Type
1590
1591         * icall.c (my_mono_new_object): Now returns a System.MonoType,
1592         and fills in System.Type._impl with a RuntimeTypeHandle rather
1593         than the actual MonoClass *
1594
1595         (ves_icall_type_from_handle): change from type_class to
1596         monotype_class
1597
1598         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
1599         implemented
1600
1601         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
1602         implemented
1603
1604         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
1605
1606         (ves_icall_System_Reflection_Assembly_GetType): implemented
1607
1608         (ves_icall_System_MonoType_assQualifiedName): implemented
1609
1610         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
1611
1612 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
1613
1614         * assembly.c (mono_assembly_open): Implement a cache for the
1615         assemblies. 
1616
1617         (mono_assembly_close): only destroy the assembly when the last
1618         reference is gone.
1619         
1620 2001-11-09  Dick Porter  <dick@ximian.com>
1621
1622         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
1623
1624 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
1625
1626         * class.c (mono_class_metadata_init): bug fix: compute the right slot
1627
1628 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
1629
1630         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
1631         from Martin Weindel.
1632         * object.h: add mono_string_chars ().
1633
1634 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
1635
1636         * reflection.c (build_compressed_metadata): Eliminates warnings
1637         and uses 64-bit clean code.
1638
1639         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
1640         (mono_type_equal): Change signature to eliminate warnings.
1641
1642 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
1643
1644         * icall.c, loader.c: remove the internalcall array constructors.
1645         Changes to match the new MonoArray structure.
1646         * object.h, object.c: an array object doesn't allocate an extra
1647         vector. Add mono_array_new_full () to create jagged arrays easily.
1648
1649 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
1650
1651         * metadata.h, metadata.c: add mono_metadata_field_info () to
1652         retreive all the info about a field from vairous tables.
1653         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
1654         * class.h, class.c: augment MonoClassField with more info.
1655         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
1656         policy and load a field's RVA if needed.
1657
1658 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
1659
1660         * class.c (mono_class_metadata_init): create a trampoline for all
1661         virtual functions instead of actually compiling them.
1662
1663 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
1664
1665         * class.h, class.c: include name in MonoClassField.
1666         * class.c: fix fundamental type of System.Object and System.String.
1667         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
1668         tokens in ldtoken.
1669         * icall.c: remove internalcalls for the Reflection stuff that is now
1670         done in C# code.
1671         * loader.c: mono_field_from_memberref () implementation.
1672         * mono-endian.c: thinko (s/struct/union/g).
1673         * object.c, object.h: make the mono_string_* prototypes actually use
1674         MonoString instead of MonoObject.
1675         * reflection.c, reflection.h: updates for changes in the reflection
1676         code in corlib: we use C structures that map to the actual C# classes.
1677         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
1678         fat method header if needed and use the info from the ILGenerator for
1679         methods. Handle fields in types. Misc fixes.
1680
1681 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
1682
1683         * class.c (mono_class_metadata_init): bug fix: always allocate
1684         space for static class data
1685
1686 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
1687
1688         * class.c (mono_compute_relative_numbering): use relative
1689         numbering to support fast runtime type checks.
1690
1691 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
1692
1693         * class.c (mono_class_create_from_typeref): added debugging output
1694         to print class name when MonoDummy is returned instead of real class
1695
1696 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
1697
1698         * class.c (mono_class_metadata_init): interface offset table now
1699         contains pointers into the vtable - this is more efficient for the jit
1700
1701 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
1702
1703         * class.c (mono_class_metadata_init): use a temporary vtable (the
1704         old algorithm only worked for the interpreter, but not for the jit)
1705
1706 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
1707
1708         * loader.c (method_from_memberref): use mono_class_get to get the
1709         class of an array instead of using System.Array directly.
1710         (mono_get_method): also add MEMBERREF methods to the method cache
1711         which usefull for arrays.
1712
1713 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
1714
1715         * pedump.c (arch_compile_method): added to compute vtable entry
1716
1717         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
1718         number of interfaces.
1719         
1720         * class.h: merged MonoArrayClass into MonoClass
1721
1722         * class.c (mono_class_create_from_typedef): compute the vtable size and
1723         allocate space to include the vtable inside MonoClass
1724         (mono_class_metadata_init): initialize the vtable
1725
1726 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
1727
1728         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
1729         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
1730         * image.c: endian fixes by Laurent Rioux.
1731         * object.h, object.c: rename MonoStringObject to MonoString and
1732         MonoArrayObject to MonoArray. Change some function names to conform to
1733         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
1734         guint16* as first argument, so don't use char*.
1735         Provide macros to do the interesting things on arrays in a portable way.
1736         * threads-pthread.c: updates for the API changes and #include <sched.h>
1737         (required for sched_yield()).
1738         * icall.c: updates for the API changes above.
1739         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
1740         platforms that need them.
1741
1742 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1743
1744         * class.c: set the correct type for all the fundamental
1745         type when loading the class.
1746
1747 2001-10-05  Dick Porter  <dick@ximian.com>
1748
1749         * threads-pthread.c (pthread_mutex_timedlock): Simple
1750         compatibility version for C libraries that lack this call.
1751
1752 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1753
1754         * class.c: MonoTypes stored in MonoClass are stored as
1755         fundamental MonoTypes when the class represents a
1756         fundamental type (System.Int32, ...).
1757         The TypeHandle return by ldtoken is a MonoType*.
1758         * icall.c: ves_icall_get_data_chunk () write out all the
1759         PE/COFF stuff. Implement ves_icall_define_method (),
1760         ves_icall_set_method_body (), ves_icall_type_from_handle ().
1761         * image.c: properly skip unknown streams.
1762         * loader.h, loader.c: add type_class to mono_defaults.
1763         * metadata.c, metadata.h: export compute_size () as
1764         mono_metadata_compute_size () with a better interface.
1765         Typo and C&P fixes.
1766         * pedump.c: don't try to print the entry point RVA if there is no entry point.
1767         * reflection.c, reflection.h: many cleanups, fixes, output method
1768         signatures and headers, typedef and typeref info, compress the metadata
1769         tables, output all the heap streams, cli header etc.
1770         * row-indexes.h: typo fixes.
1771
1772 2001-10-04  Dick Porter  <dick@ximian.com>
1773
1774         * object.h: Add a synchronisation mutex struct to MonoObject
1775
1776         * object.c (mono_new_object): Initialise the object
1777         synchronisation mutexes
1778
1779         * icall.c: System.Threading.Monitor internal calls
1780         
1781         * threads-pthread.h:
1782         * threads-pthread.c: System.Threading.Monitor internal calls
1783
1784         * threads-types.h: New file, includes the system-specific thread
1785         structures
1786         
1787         * threads-pthread-types.h:
1788         * threads-pthread-types.c: New files, handle pthread-specific
1789         synchronisation types
1790
1791         * threads-dummy-types.h: 
1792         * threads-dummy-types.c: New files of dummy support for
1793         thread-specific types
1794
1795         * metadata.c:
1796         * image.c:
1797         * pedump.c: include mono-endian.h not endian.h
1798         
1799         * Makefile.am: More threads files.
1800         Name mono-endian.h not endian.h
1801
1802 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
1803
1804         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
1805         stuff and implement a few more bits.
1806         * icall.c: a field needs to be dereferenced twice. Do not use the same
1807         name for two variables in the same scope.
1808         * image.c, image.h: cleanups.
1809
1810 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
1811
1812         * class.c (mono_class_metadata_init): bug fix: compute the right size
1813
1814 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
1815
1816         * icall.c: implemented some of the Reflection internalcalls.
1817         * image.c, image.h: start writing out the PE/COFF image.
1818         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
1819         that does the reverse than decode_blob_size ().
1820         * object.c: use mono_metadata_encode_value (). Move here
1821         temporary implementation of mono_string_to_utf8 ().
1822         * rawbuffer.c: make malloc_map static.
1823
1824 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
1825
1826         * metadata.c: fix type comparison for arrays.
1827         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
1828         Added a couple of new classes to monodefaults.
1829         * icall.c: added a couple of Reflection-related internalcalls.
1830         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
1831         Added a byval_arg MonoType to MonoClass.
1832
1833 2001-09-28  Dick Porter  <dick@ximian.com>
1834
1835         * icall.c:
1836         * threads-pthread.h: 
1837         * threads-pthread.c: Implemented internal calls for
1838         LocalDataStoreSlot operations.  Applied mutexes around all shared
1839         data.  Reworked the thread creation and Start() operations to
1840         avoid a race condition.
1841         
1842         * threads-dummy.h:
1843         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
1844
1845 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
1846
1847         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
1848
1849 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
1850
1851         * class.c, loader.c: warn and return NULL instead of erroring out.
1852         * icall.c: added System.AppDomain::getCurDomain().
1853         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
1854
1855 2001-09-25  Dick Porter  <dick@ximian.com>
1856
1857         * threads-pthread.h:
1858         * threads-pthread.c: Implemented timed thread joining and added
1859         System.Threading.Thread::Join_internal internal call
1860
1861         * icall.c: Added System.Threading.Thread::Join_internal internal call
1862
1863         * threads-dummy.h:
1864         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
1865
1866 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
1867
1868         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
1869         mono_string_intern () to implement the semantics of the ldstr opcode
1870         and the interning of System.Strings.
1871         * icall.c: provide hooks to make String::IsIntern and String::Intern
1872         internalcalls.
1873
1874 2001-09-23  Dick Porter  <dick@ximian.com>
1875
1876         * threads-dummy.c: 
1877         * threads-dummy.h: New files of dummy threading routines
1878
1879         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
1880         support code based on system specifics
1881
1882         Rename PTHREAD_LIBS to THREAD_LIBS
1883         
1884 2001-09-23  Dick Porter  <dick@ximian.com>
1885
1886         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
1887         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
1888         internal calls.
1889         (mono_thread_init): Set up a Thread object instance to return when
1890         the main thread calls Thread.CurrentThread
1891         (mono_thread_cleanup): Wait for all subthreads to exit
1892
1893         * icall.c: New internal calls for System.Threading.Thread::Sleep
1894         (including Schedule) and CurrentThread
1895
1896         * threads.h: New file, to insulate thread-specific stuff from the
1897         rest of the code
1898
1899 2001-09-21  Dick Porter  <dick@ximian.com>
1900
1901         * threads-pthread.h: 
1902         * threads-pthread.c: New file, for handling pthreads-style
1903         threading support.  Start() now starts a new thread and executes
1904         the ThreadStart delegate instance.
1905
1906         * icall.c: Added the internalcall for
1907         System.Threading.Thread::Start_internal
1908
1909         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
1910
1911 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
1912
1913         * loader.c: work around the different signatures for delegates
1914         constructors csc generates in compiled code vs the ones compiled in mscorlib.
1915
1916 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1917
1918         * class.h, class.c: add mono_class_get_field_from_name ().
1919         * *: Fix C comments and other ANSI C issues.
1920
1921 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
1922
1923         * endian.h, assembly.c: fix some endianness issues.
1924
1925 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
1926
1927         * loader.h, load.c: add delegate_class to mono_defaults.
1928         Handle runtime provided methods in mono_get_method ().
1929
1930 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
1931
1932         * loader.c (mono_get_method): use pinvoke for internal call
1933
1934         * icall.c: use pinvoke for internal call
1935
1936         * loader.c (method_from_memberref): set the method name
1937
1938 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
1939
1940         * metadata.c: help the compiler generate better code for
1941         mono_class_from_mono_type ().
1942
1943 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
1944
1945         * class.c (mono_class_metadata_init): delayed computing of the
1946         class size to mono_class_metadata_init ()
1947
1948 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
1949
1950         * class.c, class.h: add an interfaces member to MonoClass.
1951         * image.c, image.h: add assembly_name field to MonoImage
1952         from the assembly table.
1953         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
1954
1955 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1956
1957         * class.c: Handle Array in mono_class_from_mono_type ().
1958         * metadata.c, pedump.c: some endian fixes.
1959
1960 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
1961
1962         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
1963         * metadata.c: fix small problem introduced with the latest commit.
1964
1965 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
1966
1967         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
1968         We don't need a MonoMetadata pointer anymore to compare signatures in
1969         mono_metadata_signature_equal (), update callers.
1970         Reduced memory usage an number of allocations for MonoMethodHeader and
1971         MonoMethodSignature.
1972
1973 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
1974
1975         * metadata.c: added compare for szarray.
1976
1977 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
1978
1979         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
1980         and add a couple more types to it and mono_defaults. Give an hint on
1981         classes that need implementing in our corlib and are referenced
1982         in mscorlib.
1983
1984 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
1985
1986         * class.h, class.c: keep track if a class is also an Enum.
1987         * loader.c: Implement a couple more types for use in libffi
1988         marshalling. Gives better diagnostics when failing to dlopen
1989         a library. Set method->klass for P/Invoke methods, too.
1990
1991 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
1992
1993         * class.c, class.h: add a MonoType this_arg to MonoClass that
1994         represents a pointer to an object of the class' type that
1995         can be used by the interpreter and later the type cache.
1996         Add best guess alignment info for valuetype objects.
1997
1998 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
1999
2000         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
2001         into MonoType: one less level of indirection and allocation and
2002         simplifies quite a bit of code. Added cache for MonoTypes that are
2003         used frequently, so that we don't need to allocate them all the time.
2004
2005 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
2006
2007         * class.c (mono_class_create_from_typedef): System.Enum is also a
2008         value type, although it does not derive from System.ValueType
2009         (maybe a bug in the ms compiler?)
2010
2011         * metadata.c (mono_type_size): return the right size for value types
2012
2013         * loader.c (mono_get_method): only initialize method header if not abstract
2014
2015         * class.c (mono_class_from_mono_type): use mono_default values. 
2016
2017 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
2018
2019         * *: use MonoClass pointers instead of <type_tokens>
2020         
2021         * class.h: new flag: metadata_inited.
2022
2023         * class.c (mono_class_metadata_init): impl.
2024         (mono_class_instance_size): impl.
2025         (mono_class_data_size): impl.
2026
2027 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
2028
2029         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
2030         MonoClass now has the name and name_space fields. 
2031         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
2032         mono_get_method () takes and optional MonoClass as argument.
2033         Removed mono_typedef_from_name() and added mono_class_token_from_name()
2034         instead that takes advantage of a map from class names to typedef
2035         tokens in MonoImage.
2036
2037 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
2038
2039         * metadata.c: zero is not a valid alignment boundary.
2040         Merge MONO_TYPE_VOID in default decoding code.
2041
2042 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
2043
2044         * image.h: merged MonoMetadata into MonoImage
2045
2046         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
2047         identify the type of elements.
2048
2049 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
2050
2051         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
2052         * cil-coff.h: split MonoMSDOSHeader and add size info.
2053         * image.c: add some consistency checks.
2054         * metadata.c: fix row size computation: one programmer
2055         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
2056         add explanation for the locator routine.
2057         Fix decoding of size in method header.
2058         
2059 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
2060
2061         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
2062         (g_concat_dir_and_file): Bring g_concat_dir_and_file
2063         function from gnome-libs.  This uses the right path separator
2064         based on the OS, and also works around a bug in some systems where
2065         a double slash is not allowed. 
2066         (default_assembly_name_resolver): Use g_concat_dir_and_file
2067         (mono_assembly_open): ditto.
2068
2069 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
2070
2071         * metadata.c (mono_metadata_signature_equal): impl.
2072
2073         * *: void is now a realy MonoType (instead of using NULL)
2074         
2075         * metadata.c (do_mono_metadata_parse_type): use
2076         mono_metadata_parse_type to parse void value.
2077
2078 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
2079
2080         * metadata.c, metadata.h: in the signature and method header store
2081         only the space required for holding the loca vars and incoming arguments.
2082
2083 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
2084
2085         * metadata.c (do_mono_metadata_parse_type): treat void like any
2086         other type (instead of assigning NULL);
2087
2088 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
2089
2090         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
2091
2092 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
2093
2094         * image.c (do_mono_image_open): added a cache for arrays.
2095
2096 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
2097
2098         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
2099         decode a single column from a row in a metadata table and changes
2100         to take advantage of it in the typedef locator (gives a nice speed up).
2101         Store offset info for function params.
2102
2103 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
2104
2105         * image.h (MONO_IMAGE_IS_CORLIB): removed 
2106
2107 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
2108
2109         * assembly.c: how could mono_assembly_close () had ever worked?
2110         * metadata.c, metadata.h: provide offset info for local vars.
2111         Implement mono_type_size () to take care of alignment as well
2112         as size (it was mono_field_type_size in cli/class.c before).
2113
2114 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
2115
2116         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
2117
2118         * assembly.h (CORLIB_NAME): set to corlib.dll
2119
2120         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
2121
2122 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
2123
2124         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
2125         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
2126         tokentype.h: massive namespace cleanup.
2127
2128 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
2129
2130         * metadata.h, metadata.c: decode exception clauses when parsing method header.
2131
2132 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
2133
2134         * metadata.c (mono_metadata_free_type): added check for type !=
2135         NULL (void) before calling mono_metadata_free_type()
2136
2137 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
2138
2139         * metadata.h, row_indexes.h: added header with enumerations to use
2140         to index in the columns from tables in metadata and to decode coded
2141         tokens: we should start using this instead of embedding magic numbers
2142         all over the code.
2143
2144 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
2145
2146         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
2147         Move metadata_t info from cli_image_info_t to MonoImage, where
2148         it's easily accessible. Changed all the uses accordingly.
2149         Added the method and class caches to MonoImage.
2150         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
2151         and mono_metadata_decode_value () signature to be more consistent
2152         with the other parse functions (and simplify code). Taken advantage
2153         of zero-length array allocation with GCC. Removed reduntant (and
2154         wrong) MonoFieldType struct and use MonoParam instead. Changed
2155         mono_metadata_parse_field_type () to use common code for parsing.
2156         Added mono_metadata_typedef_from_field () and
2157         mono_metadata_typedef_from_method () to lookup a typedef index from a
2158         field or method token.
2159         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
2160
2161 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
2162
2163         * metadata.c (mono_metadata_parse_field_type): Implement. 
2164         (do_mono_metadata_parse_type): Split engine from
2165         mono_metadata_parse_type, so that we can create smaller structures
2166         for things that just have one pointer to the MonoType (look at
2167         the MonoFieldType)
2168
2169 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
2170
2171         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
2172         as Jan Gray found out, it is incorrect. 
2173
2174 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
2175
2176         * assembly.c: Implement asssembly loading.  This loads an image
2177         and loads all the referenced assemblies.  Come to think of it, we
2178         could always do lazy loading of the assemblies. 
2179
2180         * image.c (mono_image_open): Keep loaded images in a hashtable.
2181
2182         * image.h (MonoImage): Add reference count.
2183
2184 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
2185
2186         * assembly.c (mono_assembly_open): Keep track of the file name in
2187         case the assembly has no ASSEMBLY table.
2188
2189         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
2190         from get.c here.
2191
2192 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
2193
2194         * metadata.c, metadata.h: decode local vars in method header
2195         parse function. Change callers accordingly.
2196
2197 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
2198
2199         * metadata.h, cil-coff.h: protect against multiple inclusion.
2200         Added some new structures to hold information decoded from metadata:
2201         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
2202         and relevant decoding/free functions.
2203         * metadata.c: implement decoding functions. Add warning for out of bounds
2204         index in mono_metadata_locate(). Implement mono_get_method () to retreive
2205         all the info about a method signature and invocation. Remove check on
2206         uninitialized local var in parse_mh() and fix memory leak.
2207
2208 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
2209
2210         * metadata.h: More macros.
2211
2212         * tokentype.h: New file.
2213
2214 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
2215
2216         * assembly.c: added a consistency check and initialize
2217         some structures with g_new0().
2218         * metadata.c: fixed a couple more bugs in table size computation
2219         and add other checks for out-of bound access to metadata.
2220
2221 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
2222
2223         * metatada.c: fix bugs computing table sizes. Spew a
2224         warning when index in string heap is out of bounds.
2225
2226 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
2227
2228         * metadata.h: Add a couple of macros to manipulate tokens. 
2229
2230 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
2231
2232         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
2233         cli_section_tables).
2234
2235 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
2236
2237         * metadata.c (mono_metadata_user_string): New function, provides
2238         access to the UserString heap. 
2239
2240 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
2241
2242         * metadata.c: Add inline documentation.
2243
2244 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
2245
2246         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
2247         files. 
2248
2249 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
2250
2251         * typeattr.h: New file, TypeAttribute flags. 
2252
2253 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
2254
2255         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
2256         mono_assembly_ensure_section): Section loading code.
2257         (load_section_tables): Load the sections.
2258
2259         * mono/metadata/metadata.c (mono_metadata_locate_token,
2260         mono_metadata_locate): Functions to locate the information
2261         definition given a token or a table and an index.
2262         (mono_metadata_compute_table_bases): New.
2263         (compute_size): New function to compute the sizes of the various
2264         tables.
2265
2266         * mono/metadata/metadata.h: Finish listing the different index
2267         types. 
2268
2269         * mono/metadata/pedump.c: Improve to dump new information.
2270
2271 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
2272
2273         * mono/metadata/metadata.c: Entered all the tables matching
2274         Beta2. 
2275
2276         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
2277