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