2002-02-16 Radek Doulik <rodo@ximian.com>
[mono.git] / mono / metadata / ChangeLog
1 2002-02-16  Radek Doulik  <rodo@ximian.com>
2
3         * unicode.c (ves_icall_iconv_new_encoder): decide on big_endian,
4         force big_endian to be 1 for big endian machines 
5         (ves_icall_iconv_new_decoder): ditto
6
7 2002-02-16  Jeffrey Stedfast  <fejj@ximian.com>
8
9         * socket-io.c (convert_sockopt_level_and_name): If the system
10         doesn't define SOL_IP or SOL_TCP, get them by hand using
11         getprotobyname() and caching the values (because this could be a
12         slow operation).
13         (ves_icall_System_Net_Sockets_Socket_SetSocketOption_internal):
14         Don't attempt to add or drop memberships unless the system
15         supports it. Also use the appropriate struct when the system does
16         support it. Ie, not all systems have struct ip_mreqn so use struct
17         ip_mreq when appropriate.
18
19 Fri Feb 15 18:15:44 CET 2002 Paolo Molaro <lupus@ximian.com>
20
21         * reflection.c: handle finally clauses.
22
23 Fri Feb 15 15:06:33 CET 2002 Paolo Molaro <lupus@ximian.com>
24
25         * socket-io.c: use g_snprintf() instead of snprintf.
26
27 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
28
29         * reflection.c (mono_param_get_objects): Cast second argument to
30         mono_method_get_param_names to a const char** to silence the
31         compiler warning.
32
33         * appdomain.c (mono_domain_assembly_open): Put parens around the
34         truth statement in the for-loop.
35
36         * unicode.c (iconv_convert): Got rid of a compiler warning about
37         int i being unused when the system has a new iconv.
38         (iconv_get_length): Same.
39
40         * image.c (load_class_names): Cast the second argument to
41         g_hash_table_insert() to char* to hush compiler warnings about the
42         arg being a const.
43         (mono_image_open): Same here.
44
45         * socket-io.c: Don't conditionally include sys/filio.h or
46         sys/sockio.h here anymore since we now get them from
47         io-layer/io-layer.h
48         (inet_pton): If the system doesn't support inet_aton, implement
49         using inet_addr and also #define INADDR_NONE if it isn't defined
50         by the system.
51
52 Thu Feb 14 19:01:06 CET 2002 Paolo Molaro <lupus@ximian.com>
53
54         * metadata.c, metadata.h: added function to get packing and size info
55         of a typedef.
56         * reflection.h, reflection.c: handle field RVA data. Save info about
57         the table layout if needed. Assign typedef indexes to all the types
58         before dumping the info about them to avoid forward reference problems.
59
60 2002-02-14  Dietmar Maurer  <dietmar@ximian.com>
61
62         * socket-io.c (convert_sockopt_level_and_name): ifdef
63         SO_ACCEPTCONN because it is not defined on my system (old debian)
64
65 Thu Feb 14 11:49:30 CET 2002 Paolo Molaro <lupus@ximian.com>
66
67         * opcode.c: use stddef.h to get NULL.
68
69 2002-02-14  Jeffrey Stedfast  <fejj@ximian.com>
70
71         * socket-io.c: conditionally include sys/filio.h and sys/sockio.h
72         for FIONBIO, FIONREAD and SIOCATMARK.
73         (ves_icall_System_Net_Dns_GetHostByAddr_internal): SunOS doesn't
74         define INADDR_NONE and besides, inet_addr() is deprecated and
75         should not be used. Use inet_pton() instead - it also has the
76         added bonus that it can easily handle IPv6 addresses as well.
77         (inet_pton): Implement using inet_aton() ifndef HAVE_INET_PTON.
78
79 Wed Feb 13 23:00:21 CET 2002 Paolo Molaro <lupus@ximian.com>
80
81         * decimal.c: remove _MSC_VER conditional.
82
83 2002-02-13  Dick Porter  <dick@ximian.com>
84
85         * socket-io.c: 
86         * icall.c: Internal calls for Blocking, Select, Shutdown,
87         GetSocketOption and SetSocketOption
88
89 Wed Feb 13 19:20:01 CET 2002 Paolo Molaro <lupus@ximian.com>
90
91         * assembly.cs: better resolver: use it instead of some kludgy
92         code.
93
94 Wed Feb 13 18:25:55 CET 2002 Paolo Molaro <lupus@ximian.com>
95
96         * reflection.c: the best way to speed-up the compiler is to avoid
97         infinite loops.
98
99 2002-02-13  Dietmar Maurer  <dietmar@ximian.com>
100
101         * class.c (mono_class_vtable): changed the object layout
102         (obj->vtable->class). 
103         (mono_class_create_from_typespec): consider MONO_TYPE_PTR
104
105 Tue Feb 12 20:06:01 CET 2002 Paolo Molaro <lupus@ximian.com>
106
107         * assembly.c: look for assemblies in the assembly dir, too.
108
109 Tue Feb 12 14:03:42 CET 2002 Paolo Molaro <lupus@ximian.com>
110
111         * class.c: fix thinko in mono_class_from_type().
112
113 Mon Feb 11 19:43:51 CET 2002 Paolo Molaro <lupus@ximian.com>
114
115         * exception.h, exception.c: added TypeLoadException.
116         * object.h, object.c: added mono_array_clone ().
117         * icall.c: handle throwOnError in AssemblyGetType().
118         Added Array.Clone().
119         * opcode.h, opcode.c: use a single value for the opcode val.
120         Compile fix for non-gcc compilers.
121
122 Fri Feb 8 12:26:37 CET 2002 Paolo Molaro <lupus@ximian.com>
123
124         * opcodes.c, opcodes.h: export interesting info about opcodes.
125
126 2002-02-05  Dietmar Maurer  <dietmar@ximian.com>
127
128         * object.h (MONO_CHECK_ARG, MONO_CHECK_ARG_NULL): new macro for
129         icalls. 
130
131         * class.c (class_compute_field_layout): set element_class for enums
132         (mono_class_create_from_typedef): set element_class for normal classes
133
134         * icall.c (ves_icall_System_Enum_get_value): impl.
135
136         * class.c (mono_class_create_from_typedef): do not set valuetype
137         flag for System.ValueType and System.Enum
138
139 2002-02-04  Dietmar Maurer  <dietmar@ximian.com>
140
141         * unicode.c (iconv_convert): fix big endian problem.
142
143 Fri Feb 1 16:13:20 CET 2002 Paolo Molaro <lupus@ximian.com>
144
145         * class.c: add asserts if we are ever going to scribble over memory.
146         * socket-io.c: not all systems have AF_IRDA defined.
147
148 2002-01-31  Dietmar Maurer  <dietmar@ximian.com>
149
150         * class.c (class_compute_field_layout): do not consider static
151         fields to compute alignment
152
153 2002-01-25  Dietmar Maurer  <dietmar@ximian.com>
154
155         * appdomain.c (mono_appdomain_get): impl.
156         (ves_icall_System_AppDomain_ExecuteAssembly): impl.
157
158 Thu Jan 24 12:59:23 CET 2002 Paolo Molaro <lupus@ximian.com>
159
160         * icall.c: ignore "file://" prefix when loading an assembly.
161
162 2002-01-23  Dick Porter  <dick@ximian.com>
163
164         * socket-io.c:
165         * icall.c:
166         * Makefile.am: Added socket support
167
168 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
169
170         * icall.c (ves_icall_appdomain_get_default_assemblies): put this
171         code back.  This should return the assemblies that are loaded by
172         the runtime on behalf of an application domain. 
173
174         The current implementation is still broken, it just returns every
175         assembly loaded, but until we get real applications domain this
176         will do.
177
178 2002-01-23  Dietmar Maurer  <dietmar@ximian.com>
179
180         * icall.c (ves_icall_appdomain_get_cur_domain): runtime_init the
181         AppDomain object.
182
183 2002-01-23  Miguel de Icaza  <miguel@ximian.com>
184
185         * icall.c (ves_icall_appdomain_get_cur_domain): Cache the value of
186         the mono_class_from_name lookup.
187         (ves_icall_get_parameter_info): ditto.
188         (ves_icall_appdomain_get_assemblies, add_assembly): Implement new internal
189         method.
190         (ves_icall_System_Reflection_Assembly_get_code_base): Another new call.
191
192 Tue Jan 22 22:43:47 CET 2002 Paolo Molaro <lupus@ximian.com>
193
194         * class.c: load also nested classes on class init.
195         System.ValueType instance methods gets passed boxed
196         values, unless methods in derived classed that get a pointer to the
197         data.
198         * icall.c: use better name parsing code in GetType().
199         * image.c, image.h: add mono_image_loaded ().
200         * metadata.c, metadata.h: add mono_metadata_nesting_typedef ().
201         * reflection.c, reflection.h: added mono_reflection_parse_type().
202
203 2002-01-22  Veronica De Santis <veron78@interfree.it>
204
205         * icall.c : Added mapping of internal calls for Manual and Auto reset events
206         * threads.c : Added the implementation of internal calls for events
207         * threads.h : Added prototypes of internal calls for events
208         
209 2002-01-21  Radek Doulik  <rodo@ximian.com>
210
211         * icall.c (ves_icall_InitializeArray): swap bytes on big endians
212
213 2002-01-21  Dietmar Maurer  <dietmar@ximian.com>
214
215         * class.c (mono_class_init): set min_align to 1 (instead of 0)
216         (mono_class_value_size): use min_align
217
218 2002-01-20  Dick Porter  <dick@ximian.com>
219
220         * threads.h:
221         * threads.c: Replaced all instances of WapiHandle * with HANDLE,
222         so it compiles on w32.
223
224 2002-01-17  Dietmar Maurer  <dietmar@ximian.com>
225
226         * metadata.c (mono_type_stack_size): impl.
227
228         * class.c (mono_class_get_field): impl. memberref token
229
230 2002-01-16 Veronica De Santis <veron78@@interfree.it>
231
232         * icall.h : Added the internal calls mapping for CreateMutex_internal
233                     and ReleaseMutex_internal.
234         * threads.h : Added the prototype of mutexes internal calls.
235         * threads.c : Added the implementations of mutexes internal calls.
236
237 Tue Jan 15 22:47:57 CET 2002 Paolo Molaro <lupus@ximian.com>
238
239         * metaparse.h: removed unused file.
240         * reflection.c, reflection.h: added stream_data_align () function 
241         to align data in streams and keep stream aligned. Add support for
242         exception support in method headers.
243
244 Tue Jan 15 19:42:50 CET 2002 Paolo Molaro <lupus@ximian.com>
245
246         * unicode.c: make iconv_convert () return the number of bytess written
247         in the output buffer.
248
249 2002-01-15  Dick Porter  <dick@ximian.com>
250         * threads.c: Make the runtime's idea of infinite timeouts coincide
251         with the class library's
252
253         Fix a particularly egregious bug in mono_thread_cleanup(). That
254         code was so utterly bogus it must have been written on a Monday.
255
256 Mon Jan 14 17:01:03 CET 2002 Paolo Molaro <lupus@ximian.com>
257
258         * reflection.h: add subtypes field to TypeBuilder.
259         * reflection.c: encode constants for literal fields.
260         Handle subtypes. Fix user string token (and add a zero byte)
261         at the end.
262         
263 2002-01-14  Dietmar Maurer  <dietmar@ximian.com>
264
265         * class.c (mono_class_init): bug fix: assign slot numbers for
266         abstract methods.
267
268 Fri Jan 11 18:54:42 CET 2002 Paolo Molaro <lupus@ximian.com>
269
270         * reflection.c: don't try to output a code RVA for abstract methods.
271         Small fixes for method header format. Output parameter info to the
272         ParamDef table. Save method overriding info to MethodImpl table.
273         Fix property support. Allow typedef.extends to be a type in the
274         building assembly.
275         * verify.c: fix off-by-one error.
276
277 Thu Jan 10 19:36:27 CET 2002 Paolo Molaro <lupus@ximian.com>
278
279         * class.c: fix mono_class_from_mono_type () for szarray types.
280         Remove unused cache check in mono_class_from_type_spec().
281         * icall.c: *type_from_name () functions handle simple arrays and byref.
282         * reflection.c: handle byref and szarray types. Handle methods without
283         body (gets P/Invoke compilation working). Handle types and fields in
284         get_token ().
285         * reflection.h: add rank to MonoTypeInfo.
286
287 2002-01-10  Dick Porter  <dick@ximian.com>
288
289         * threads.c: Implemented WaitAll(), WaitAny() and WaitOne()
290         internal calls
291
292 Wed Jan 9 19:27:13 CET 2002 Paolo Molaro <lupus@ximian.com>
293
294         * icall.c: initialize class in type_from_handle ().
295         Loop also in parent classes for get_method ().
296         * reflection.c: properly encode class and valuetype types.
297         Start on encoding TypeBuilder types. Handle fieldrefs.
298         Use correct length when registering a user string.
299         Handle ConstructorBuilder and MonoMethod in get_token ().
300         Make mono_type_get_object () aware of cached types.
301         * object.c: back out change to mono_string_new ().
302
303 Tue Jan 8 22:47:44 EST 2002 Matt Kimball <matt@kimball.net>
304         * object.c: mono_string_new should return a NULL when the string 
305         passed in is NULL -- not try to deference it.
306         
307 Sat Jan 5 15:48:04 CET 2002 Paolo Molaro <lupus@ximian.com>
308
309         * icall.c: hack to make IsSubType work for TypeBuilders.
310         * reflection.c: emit constructors before methods.
311         Retrieve param names in mono_param_get_objects().
312
313 2002/01/05  Nick Drochak  <ndrochak@gol.com>
314
315         * Makefile.am: fix list of headers and sources so automake 1.5
316         doesn't complain. Removed \# at end of list.
317
318 Thu Jan 3 23:17:17 CET 2002 Paolo Molaro <lupus@ximian.com>
319
320         * reflection.c: get token for a method ref. Set return type of
321         constructor to void.
322         * loader.c: debug message.
323         * class.c: typo fix.
324
325 Mon Dec 24 17:18:10 CET 2001 Paolo Molaro <lupus@ximian.com>
326
327         * icall.c: fix array init with rank > 1. FindMembers
328         loops in parent class as well.
329         * image.c: do not insert nested types in name cache.
330         * reflection.c: warning fix.
331         * reflection.h: add override method (for interface impl).
332
333 Mon Dec 24 16:16:56 CET 2001 Paolo Molaro <lupus@ximian.com>
334
335         * metadata.c: fix customattr decoding.
336
337 2001-12-21  Miguel de Icaza  <miguel@ximian.com>
338
339         * rawbuffer.cs: Added native Win32 implementation, avoids using
340         mmap on Cygwin.  This patch is from Dan Lewis (dihlewis@yahoo.co.uk)
341
342 Thu Dec 20 20:11:26 CET 2001 Paolo Molaro <lupus@ximian.com>
343
344         * class.c: make the low-level routines handle the cache.
345
346 Thu Dec 20 15:20:35 CET 2001 Paolo Molaro <lupus@ximian.com>
347
348         * image.c: fopen (file, "rb") ("David Dawkins" <david@dawkins.st>).
349
350 Tue Dec 18 18:50:00 CET 2001 Paolo Molaro <lupus@ximian.com>
351
352         * class.c: fix mono_array_element_size() for objects.
353         * class.h, class.c: add properties to MonoClass and load them
354         at init time.
355         * icall.c: check with isinst() when assigning a value to an array
356         instead of requiring the classes to match exactly.
357         Implemented icall for System.Type::GetType().
358         Implemented icalls to get ParameterInfo, ProprtyInfo and info about
359         enums. Handle bindingflags when looking for methods and fields.
360         * metadata.h, metadata.c: implemented mono_metadata_properties_from_typedef()
361         and mono_metadata_methods_from_property().
362         * reflection.h, reflection.c: added structures for propreties,
363         parameters and enums. Implemented mono_property_get_object() and
364         mono_param_get_objects().
365
366 2001-12-18  Dick Porter  <dick@ximian.com>
367
368         * file-io.c: Use mono_string_to_utf16() instead of
369         mono_string_chars()
370
371         * object.c: Added mono_string_to_utf16(), which copies the non
372         NULL-terminated MonoString into a new double-null-terminated
373         buffer.
374
375 2001-12-17  Dietmar Maurer  <dietmar@ximian.com>
376
377         * icall.c (ves_icall_System_DateTime_GetNow): added EPOCH adjustment
378
379 2001-12-16  Dietmar Maurer  <dietmar@ximian.com>
380
381         * file-io.c: raise exceptions if handle is invalid.
382
383 Thu Dec 13 20:27:08 CET 2001 Paolo Molaro <lupus@ximian.com>
384
385         * assembly.c: yet another check for mscorlib.
386         * class.c, class.h: load nesting info for classes.
387         * icall.c: many new functions to support the Reflection classes.
388         * metadata.c, metadata.h: mono_metadata_nested_in_typedef() added.
389         * reflection.h, reflection.c: mono_image_create_token(),
390         mono_assembly_get_object(), mono_type_get_object(),
391         mono_method_get_object(), mono_field_get_object(): methods to return
392         objects that parallel the C representation of assemblies, types,
393         methods, fields.
394
395 2001-12-11  Dick Porter  <dick@ximian.com>
396
397         * icall.c:
398         * file-io.c: Internal calls for file IO.
399
400 Thu Dec 6 16:21:30 CET 2001 Paolo Molaro <lupus@ximian.com>
401
402         * tabledefs.h: missing FileAttributes.
403         * verify.h, verify.c: use is_valid_string () to simplify and check for
404         valid strings more correctly. Fix warnings and speeling.
405         Check more tables: Filed, File, ModuleRef, StandAloneSig.
406         Check code: branches, maxstack, method calls.
407
408 2001-12-04  Dietmar Maurer  <dietmar@ximian.com>
409
410         * object.c (mono_object_allocate): removed static, so that the jit
411         can allocate value types.
412
413         * icall.c (ves_icall_System_DateTime_GetNow): impl.
414
415 Mon Dec 3 17:02:01 CET 2001 Paolo Molaro <lupus@ximian.com>
416
417         * class.c: init enum types right away and register the
418         token->MonoClass map in mono_class_create_from_typedef ().
419         * verify.h, verify.c: first cut of the verifier.
420         * pedump.c: add --verify switch to verify metadata tables.
421         * tabledefs.h: add some missing enums.
422
423 2001-11-30  Dietmar Maurer  <dietmar@ximian.com>
424
425         * class.c (mono_install_runtime_class_init): impl.
426         (mono_class_init): renamed mono_class_metadata_init to
427         mono_class_init, also removed the metadata_inited flag
428
429         * object.c (mono_object_isinst): use faster algorithm
430
431 2001-11-30  Radek Doulik  <rodo@ximian.com>
432
433         * mono-endian.h: reverted last change
434         added function prototypes
435
436         * Makefile.am (libmetadata_a_SOURCES): reverted my last change and
437         add mono-endian.c back
438
439         * mono-endian.c: returned back, as Paolo pointed out, it's needed
440         for unaligned access, I've mistaked it with endianess. I am
441         sorry.
442         (mono_read16): fix reverted endianess
443         (mono_read64): ditto
444         (mono_read32): ditto
445
446 2001-11-30  Dick Porter  <dick@ximian.com>
447
448         * exception.c: Implement mono_exception_from_name()
449
450 Fri Nov 30 12:01:02 CET 2001 Paolo Molaro <lupus@ximian.com>
451
452         * metadata.h, metadata.c: remove params_size and locals_size and their
453         calculation from the metadata code: they are only usefult to the
454         interp.
455
456 2001-11-29  Radek Doulik  <rodo@ximian.com>
457
458         * object.c (mono_ldstr): swap bytes here, it's probably not the
459         best place, but works for me now, I'll redo it once I know mono
460         better, also note that I add PROT_WRITE and don't reset back, also
461         note that it's only affects big endians, so x86 should be OK
462
463         * mono-endian.h (read16): use just glib macros for both endians
464
465         * mono-endian.c: removed as glib macros are used in in
466         mono-endian.h so we don't need to care about endianess for read
467         macros as glib does that for us already
468
469 Thu Nov 29 18:20:58 CET 2001 Paolo Molaro <lupus@ximian.com>
470
471         * class.h, class.h: take minimum alignment into consideration so
472         that the fields of a class remain aligned also when in an array.
473
474 Tue Nov 27 16:39:01 CET 2001 Paolo Molaro <lupus@ximian.com>
475
476         * loader.h, loader.c: add mono_method_get_param_names().
477         * class.c: 0-init class fields.
478
479 2001-11-26  Dick Porter  <dick@ximian.com>
480
481         * icall.c:
482         * threads-types.h:
483         * threads.c: New file that handles System.Threading on all platforms
484
485         * object.c: 
486         * object.h: Remove the synchronisation struct from MonoObject,
487         replace it with a pointer that gets initialised on demand
488
489         * Makefile.am: Replace all the system-specific threading code with
490         a single file that uses the new wrapper library
491
492 Mon Nov 19 11:37:14 CET 2001 Paolo Molaro <lupus@ximian.com>
493
494         * class.c, class.h: add mono_install_trampoline() so that the runtime
495         can register a function to create a trampoline: removes the ugly
496         requirement that a runtime needed to export arch_create_jit_trampoline.
497         * object.h, object.c: added mono_install_handler() so that the runtime
498         can install an handler for exceptions generated in C code (with
499         mono_raise_exception()). Added C struct for System.Delegate.
500         * pedump.c: removed arch_create_jit_trampoline.
501         * reflection.c: some cleanups to allow registering user strings and
502         later getting a token for methodrefs and fieldrefs before the assembly
503         is built.
504         * row-indexes.h: updates and fixes from the new ECMA specs.
505
506 Thu Nov 15 17:44:49 CET 2001 Paolo Molaro <lupus@ximian.com>
507
508         * class.h, class.c: add enum_basetype field to MonoClass.
509         * metadata.h, metadata.c: add mono_metadata_get_constant_index()
510         to get index in the constant table reated to a field, param or
511         property.
512         * reflection.h, reflection.c: handle constructors. Set public-key and
513         version number of the built assembly to 0.
514         * row-indexes.h: update from new ECMA spec.
515
516 Wed Nov 14 19:26:06 CET 2001 Paolo Molaro <lupus@ximian.com>
517
518         * class.h, class.c: add a max_interface_id to MonoClass.
519         * icall.c: rename my_mono_new_object() to my_mono_new_mono_type()
520         since it's used to do that. Added mono_type_type_from_obj().
521         Make GetType() return NULL instead of segfaulting if the type was not
522         found. Handle simple arrays in assQualifiedName.
523         * object.h: add a struct to represent an Exception.
524         * reflection.c: output call convention in method signature.
525         Add code to support P/Invoke methods and fixed offsets for fields.
526
527 Mon Nov 12 12:41:32 CET 2001 Paolo Molaro <lupus@ximian.com>
528
529         * decimal.c, decimal.h: mono_double2decimal() get the sign bit from
530         the value.
531         * icall.c: use mono_array_addr instead of array->vector: fixes the
532         reflection image writing.
533         * reflection.c: init call convention byte to 0 in method signature.
534         Encode the property signature. Don't output property-related methods
535         twice. Really process the properties for a type (don't cast a field to
536         a property, my mom always told me that).
537         Fix 64 bit issues in pointer alignment in a different and more
538         readable way.
539
540 2001-11-10  Sean MacIsaac  <macisaac@ximian.com>
541
542         * loader.h: Removed type class from MonoDefaults, added monotype
543
544         * loader.c: Loaded MonoType, removed loading of Type
545
546         * icall.c (my_mono_new_object): Now returns a System.MonoType,
547         and fills in System.Type._impl with a RuntimeTypeHandle rather
548         than the actual MonoClass *
549
550         (ves_icall_type_from_handle): change from type_class to
551         monotype_class
552
553         (ves_icall_System_Runtime_InteropServices_Marshal_ReadIntPtr):
554         implemented
555
556         (ves_icall_System_Runtime_InteropServices_Marshal_PtrToStringAuto):
557         implemented
558
559         (ves_icall_System_Reflection_Assembly_LoadFrom): implemented
560
561         (ves_icall_System_Reflection_Assembly_GetType): implemented
562
563         (ves_icall_System_MonoType_assQualifiedName): implemented
564
565         (ves_icall_System_PAL_OpSys_GetCurrentDirecotry): implemented
566
567 2001-11-09  Miguel de Icaza  <miguel@ximian.com>
568
569         * assembly.c (mono_assembly_open): Implement a cache for the
570         assemblies. 
571
572         (mono_assembly_close): only destroy the assembly when the last
573         reference is gone.
574         
575 2001-11-09  Dick Porter  <dick@ximian.com>
576
577         * Makefile.am (pedump_LDADD): Don't need THREAD_LIBS any more
578
579 2001-11-09  Dietmar Maurer  <dietmar@ximian.com>
580
581         * class.c (mono_class_metadata_init): bug fix: compute the right slot
582
583 Fri Nov 9 15:48:02 CET 2001 Paolo Molaro <lupus@ximian.com>
584
585         * icall.c, decimal.h, decimal.c: integrated decimal internalcalls
586         from Martin Weindel.
587         * object.h: add mono_string_chars ().
588
589 2001-11-07  Miguel de Icaza  <miguel@ximian.com>
590
591         * reflection.c (build_compressed_metadata): Eliminates warnings
592         and uses 64-bit clean code.
593
594         * metadata.c (mono_type_hash): Change signature to eliminate warnings.
595         (mono_type_equal): Change signature to eliminate warnings.
596
597 Wed Nov 7 15:40:01 CET 2001 Paolo Molaro <lupus@ximian.com>
598
599         * icall.c, loader.c: remove the internalcall array constructors.
600         Changes to match the new MonoArray structure.
601         * object.h, object.c: an array object doesn't allocate an extra
602         vector. Add mono_array_new_full () to create jagged arrays easily.
603
604 Mon Nov 5 19:51:06 CET 2001 Paolo Molaro <lupus@ximian.com>
605
606         * metadata.h, metadata.c: add mono_metadata_field_info () to
607         retreive all the info about a field from vairous tables.
608         * icall.c: implement S.Runtime.CServices::InitializeArray () icall.
609         * class.h, class.c: augment MonoClassField with more info.
610         Implemented mono_ldtoken for fields. Implemented ExplicitLayout
611         policy and load a field's RVA if needed.
612
613 2001-11-05  Dietmar Maurer  <dietmar@ximian.com>
614
615         * class.c (mono_class_metadata_init): create a trampoline for all
616         virtual functions instead of actually compiling them.
617
618 Fri Nov 2 19:37:51 CET 2001 Paolo Molaro <lupus@ximian.com>
619
620         * class.h, class.c: include name in MonoClassField.
621         * class.c: fix fundamental type of System.Object and System.String.
622         Set the right fundamental type for SZARRAY, too. Handle TypeSpec
623         tokens in ldtoken.
624         * icall.c: remove internalcalls for the Reflection stuff that is now
625         done in C# code.
626         * loader.c: mono_field_from_memberref () implementation.
627         * mono-endian.c: thinko (s/struct/union/g).
628         * object.c, object.h: make the mono_string_* prototypes actually use
629         MonoString instead of MonoObject.
630         * reflection.c, reflection.h: updates for changes in the reflection
631         code in corlib: we use C structures that map to the actual C# classes.
632         Handle SZARRAYs when encoding types. Handle locals in methods. Use a
633         fat method header if needed and use the info from the ILGenerator for
634         methods. Handle fields in types. Misc fixes.
635
636 2001-10-17  Dietmar Maurer  <dietmar@ximian.com>
637
638         * class.c (mono_class_metadata_init): bug fix: always allocate
639         space for static class data
640
641 2001-10-25  Dietmar Maurer  <dietmar@ximian.com>
642
643         * class.c (mono_compute_relative_numbering): use relative
644         numbering to support fast runtime type checks.
645
646 2001-10-17  Sean MacIsaac  <macisaac@ximian.com>
647
648         * class.c (mono_class_create_from_typeref): added debugging output
649         to print class name when MonoDummy is returned instead of real class
650
651 2001-10-15  Dietmar Maurer  <dietmar@ximian.com>
652
653         * class.c (mono_class_metadata_init): interface offset table now
654         contains pointers into the vtable - this is more efficient for the jit
655
656 2001-10-12  Dietmar Maurer  <dietmar@ximian.com>
657
658         * class.c (mono_class_metadata_init): use a temporary vtable (the
659         old algorithm only worked for the interpreter, but not for the jit)
660
661 2001-10-11  Dietmar Maurer  <dietmar@ximian.com>
662
663         * loader.c (method_from_memberref): use mono_class_get to get the
664         class of an array instead of using System.Array directly.
665         (mono_get_method): also add MEMBERREF methods to the method cache
666         which usefull for arrays.
667
668 2001-10-10  Dietmar Maurer  <dietmar@ximian.com>
669
670         * pedump.c (arch_compile_method): added to compute vtable entry
671
672         * metadata.c (mono_metadata_interfaces_from_typedef): also return the
673         number of interfaces.
674         
675         * class.h: merged MonoArrayClass into MonoClass
676
677         * class.c (mono_class_create_from_typedef): compute the vtable size and
678         allocate space to include the vtable inside MonoClass
679         (mono_class_metadata_init): initialize the vtable
680
681 Mon Oct 8 16:12:38 CEST 2001 Paolo Molaro <lupus@ximian.com>
682
683         * metadata.c, metadata.h: use MonoArrayType to describe the shape of an array.
684         Guard against calling bsearch with a NULL pointer (pointed out by Laurent Rioux, smoux).
685         * image.c: endian fixes by Laurent Rioux.
686         * object.h, object.c: rename MonoStringObject to MonoString and
687         MonoArrayObject to MonoArray. Change some function names to conform to
688         the style mono_<object>_<action>. mono_string_new_utf16 () takes a
689         guint16* as first argument, so don't use char*.
690         Provide macros to do the interesting things on arrays in a portable way.
691         * threads-pthread.c: updates for the API changes and #include <sched.h>
692         (required for sched_yield()).
693         * icall.c: updates for the API changes above.
694         * Makefile.am, mono-endian.c. mono-endian.h: include unaligned read routines for
695         platforms that need them.
696
697 Mon Oct 8 10:43:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
698
699         * class.c: set the correct type for all the fundamental
700         type when loading the class.
701
702 2001-10-05  Dick Porter  <dick@ximian.com>
703
704         * threads-pthread.c (pthread_mutex_timedlock): Simple
705         compatibility version for C libraries that lack this call.
706
707 Thu Oct 4 19:10:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
708
709         * class.c: MonoTypes stored in MonoClass are stored as
710         fundamental MonoTypes when the class represents a
711         fundamental type (System.Int32, ...).
712         The TypeHandle return by ldtoken is a MonoType*.
713         * icall.c: ves_icall_get_data_chunk () write out all the
714         PE/COFF stuff. Implement ves_icall_define_method (),
715         ves_icall_set_method_body (), ves_icall_type_from_handle ().
716         * image.c: properly skip unknown streams.
717         * loader.h, loader.c: add type_class to mono_defaults.
718         * metadata.c, metadata.h: export compute_size () as
719         mono_metadata_compute_size () with a better interface.
720         Typo and C&P fixes.
721         * pedump.c: don't try to print the entry point RVA if there is no entry point.
722         * reflection.c, reflection.h: many cleanups, fixes, output method
723         signatures and headers, typedef and typeref info, compress the metadata
724         tables, output all the heap streams, cli header etc.
725         * row-indexes.h: typo fixes.
726
727 2001-10-04  Dick Porter  <dick@ximian.com>
728
729         * object.h: Add a synchronisation mutex struct to MonoObject
730
731         * object.c (mono_new_object): Initialise the object
732         synchronisation mutexes
733
734         * icall.c: System.Threading.Monitor internal calls
735         
736         * threads-pthread.h:
737         * threads-pthread.c: System.Threading.Monitor internal calls
738
739         * threads-types.h: New file, includes the system-specific thread
740         structures
741         
742         * threads-pthread-types.h:
743         * threads-pthread-types.c: New files, handle pthread-specific
744         synchronisation types
745
746         * threads-dummy-types.h: 
747         * threads-dummy-types.c: New files of dummy support for
748         thread-specific types
749
750         * metadata.c:
751         * image.c:
752         * pedump.c: include mono-endian.h not endian.h
753         
754         * Makefile.am: More threads files.
755         Name mono-endian.h not endian.h
756
757 Tue Oct 2 20:33:48 CEST 2001 Paolo Molaro <lupus@ximian.com>
758
759         * Makefile.am, reflection.h, reflection.c: move here the reflection related 
760         stuff and implement a few more bits.
761         * icall.c: a field needs to be dereferenced twice. Do not use the same
762         name for two variables in the same scope.
763         * image.c, image.h: cleanups.
764
765 2001-10-02  Dietmar Maurer  <dietmar@ximian.com>
766
767         * class.c (mono_class_metadata_init): bug fix: compute the right size
768
769 Mon Oct 1 20:43:57 CEST 2001 Paolo Molaro <lupus@ximian.com>
770
771         * icall.c: implemented some of the Reflection internalcalls.
772         * image.c, image.h: start writing out the PE/COFF image.
773         * metadata.h, metadata.c: implement mono_metadata_encode_value ()
774         that does the reverse than decode_blob_size ().
775         * object.c: use mono_metadata_encode_value (). Move here
776         temporary implementation of mono_string_to_utf8 ().
777         * rawbuffer.c: make malloc_map static.
778
779 Fri Sep 28 19:26:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
780
781         * metadata.c: fix type comparison for arrays.
782         * loader.h, loader.c: half-assed fix to get more tests work in cygwin.
783         Added a couple of new classes to monodefaults.
784         * icall.c: added a couple of Reflection-related internalcalls.
785         * class.h, class.c: implemented mono_ldtoken () for RuntimeTypeHandles.
786         Added a byval_arg MonoType to MonoClass.
787
788 2001-09-28  Dick Porter  <dick@ximian.com>
789
790         * icall.c:
791         * threads-pthread.h: 
792         * threads-pthread.c: Implemented internal calls for
793         LocalDataStoreSlot operations.  Applied mutexes around all shared
794         data.  Reworked the thread creation and Start() operations to
795         avoid a race condition.
796         
797         * threads-dummy.h:
798         * threads-dummy.c: Dummy calls for the LocalDataStoreSlot operations
799
800 Thu Sep 27 21:45:55 CEST 2001 Paolo Molaro <lupus@ximian.com>
801
802         * rawbuffer.c: disable mmap on cygwin since it seems to be broken there.
803
804 Thu Sep 27 19:52:11 CEST 2001 Paolo Molaro <lupus@ximian.com>
805
806         * class.c, loader.c: warn and return NULL instead of erroring out.
807         * icall.c: added System.AppDomain::getCurDomain().
808         * loader.c: we don't need to lookup the typedef again for p/invoke calls.
809
810 2001-09-25  Dick Porter  <dick@ximian.com>
811
812         * threads-pthread.h:
813         * threads-pthread.c: Implemented timed thread joining and added
814         System.Threading.Thread::Join_internal internal call
815
816         * icall.c: Added System.Threading.Thread::Join_internal internal call
817
818         * threads-dummy.h:
819         * threads-dummy.c: Dummy calls for System.Thread.Thread::Join_internal
820
821 Mon Sep 24 18:56:59 CEST 2001 Paolo Molaro <lupus@ximian.com>
822
823         * object.c, object.h: added mono_ldstr (), mono_string_is_interned () and
824         mono_string_intern () to implement the semantics of the ldstr opcode
825         and the interning of System.Strings.
826         * icall.c: provide hooks to make String::IsIntern and String::Intern
827         internalcalls.
828
829 2001-09-23  Dick Porter  <dick@ximian.com>
830
831         * threads-dummy.c: 
832         * threads-dummy.h: New files of dummy threading routines
833
834         * Makefile.am (THREAD_SOURCE): Arrange to compile different thread
835         support code based on system specifics
836
837         Rename PTHREAD_LIBS to THREAD_LIBS
838         
839 2001-09-23  Dick Porter  <dick@ximian.com>
840
841         * threads-pthread.c: Implement the System.Threading.Thread::Sleep,
842         Schedule (called when asked to Sleep for 0 ms) and CurrentThread
843         internal calls.
844         (mono_thread_init): Set up a Thread object instance to return when
845         the main thread calls Thread.CurrentThread
846         (mono_thread_cleanup): Wait for all subthreads to exit
847
848         * icall.c: New internal calls for System.Threading.Thread::Sleep
849         (including Schedule) and CurrentThread
850
851         * threads.h: New file, to insulate thread-specific stuff from the
852         rest of the code
853
854 2001-09-21  Dick Porter  <dick@ximian.com>
855
856         * threads-pthread.h: 
857         * threads-pthread.c: New file, for handling pthreads-style
858         threading support.  Start() now starts a new thread and executes
859         the ThreadStart delegate instance.
860
861         * icall.c: Added the internalcall for
862         System.Threading.Thread::Start_internal
863
864         * Makefile.am: Added new files, and PTHREADS_LIBS to the link line
865
866 Thu Sep 20 19:37:39 CEST 2001 Paolo Molaro <lupus@ximian.com>
867
868         * loader.c: work around the different signatures for delegates
869         constructors csc generates in compiled code vs the ones compiled in mscorlib.
870
871 Tue Sep 18 13:16:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
872
873         * class.h, class.c: add mono_class_get_field_from_name ().
874         * *: Fix C comments and other ANSI C issues.
875
876 Mon Sep 10 20:21:34 CEST 2001 Paolo Molaro <lupus@ximian.com>
877
878         * endian.h, assembly.c: fix some endianness issues.
879
880 Fri Sep 7 18:40:40 CEST 2001 Paolo Molaro <lupus@ximian.com>
881
882         * loader.h, load.c: add delegate_class to mono_defaults.
883         Handle runtime provided methods in mono_get_method ().
884
885 2001-08-29  Dietmar Maurer  <dietmar@ximian.com>
886
887         * loader.c (mono_get_method): use pinvoke for internal call
888
889         * icall.c: use pinvoke for internal call
890
891         * loader.c (method_from_memberref): set the method name
892
893 Wed Aug 29 12:43:41 CEST 2001 Paolo Molaro <lupus@ximian.com>
894
895         * metadata.c: help the compiler generate better code for
896         mono_class_from_mono_type ().
897
898 2001-08-28  Dietmar Maurer  <dietmar@ximian.com>
899
900         * class.c (mono_class_metadata_init): delayed computing of the
901         class size to mono_class_metadata_init ()
902
903 Tue Aug 28 15:47:15 CEST 2001 Paolo Molaro <lupus@ximian.com>
904
905         * class.c, class.h: add an interfaces member to MonoClass.
906         * image.c, image.h: add assembly_name field to MonoImage
907         from the assembly table.
908         * metadata.c, metadata.h: add mono_metadata_interfaces_from_typedef ().
909
910 Mon Aug 27 20:12:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
911
912         * class.c: Handle Array in mono_class_from_mono_type ().
913         * metadata.c, pedump.c: some endian fixes.
914
915 Mon Aug 27 15:23:23 CEST 2001 Paolo Molaro <lupus@ximian.com>
916
917         * class.c, loader.c, loader.h: More types handled in mono_class_from_mono_type ().
918         * metadata.c: fix small problem introduced with the latest commit.
919
920 Mon Aug 27 12:17:17 CEST 2001 Paolo Molaro <lupus@ximian.com>
921
922         * loader.c, metadata.c, metadata.h: Export mono_metadata_type_equal().
923         We don't need a MonoMetadata pointer anymore to compare signatures in
924         mono_metadata_signature_equal (), update callers.
925         Reduced memory usage an number of allocations for MonoMethodHeader and
926         MonoMethodSignature.
927
928 Sun Aug 26 23:03:09 CEST 2001 Paolo Molaro <lupus@ximian.com>
929
930         * metadata.c: added compare for szarray.
931
932 Sun Aug 26 11:34:24 CEST 2001 Paolo Molaro <lupus@ximian.com>
933
934         * class.h, class.c, loader.h, loader.c: export mono_class_from_mono_type ()
935         and add a couple more types to it and mono_defaults. Give an hint on
936         classes that need implementing in our corlib and are referenced
937         in mscorlib.
938
939 Sat Aug 25 12:52:54 CEST 2001 Paolo Molaro <lupus@ximian.com>
940
941         * class.h, class.c: keep track if a class is also an Enum.
942         * loader.c: Implement a couple more types for use in libffi
943         marshalling. Gives better diagnostics when failing to dlopen
944         a library. Set method->klass for P/Invoke methods, too.
945
946 Fri Aug 24 19:30:25 CEST 2001 Paolo Molaro <lupus@ximian.com>
947
948         * class.c, class.h: add a MonoType this_arg to MonoClass that
949         represents a pointer to an object of the class' type that
950         can be used by the interpreter and later the type cache.
951         Add best guess alignment info for valuetype objects.
952
953 Fri Aug 24 15:50:31 CEST 2001 Paolo Molaro <lupus@ximian.com>
954
955         * metadata.h, metadata.c, class.h, class.c: squeezed MonoParam
956         into MonoType: one less level of indirection and allocation and
957         simplifies quite a bit of code. Added cache for MonoTypes that are
958         used frequently, so that we don't need to allocate them all the time.
959
960 2001-08-24  Dietmar Maurer  <dietmar@ximian.com>
961
962         * class.c (mono_class_create_from_typedef): System.Enum is also a
963         value type, although it does not derive from System.ValueType
964         (maybe a bug in the ms compiler?)
965
966         * metadata.c (mono_type_size): return the right size for value types
967
968         * loader.c (mono_get_method): only initialize method header if not abstract
969
970         * class.c (mono_class_from_mono_type): use mono_default values. 
971
972 2001-08-23  Dietmar Maurer  <dietmar@ximian.com>
973
974         * *: use MonoClass pointers instead of <type_tokens>
975         
976         * class.h: new flag: metadata_inited.
977
978         * class.c (mono_class_metadata_init): impl.
979         (mono_class_instance_size): impl.
980         (mono_class_data_size): impl.
981
982 Wed Aug 22 16:27:30 CEST 2001 Paolo Molaro <lupus@ximian.com>
983
984         * metadata.c, loader.h, loader.c, image.h, image.c, class.h, class.c:
985         MonoClass now has the name and name_space fields. 
986         MonoMethod has a pointer to its MonoClass, instead of MonoImage.
987         mono_get_method () takes and optional MonoClass as argument.
988         Removed mono_typedef_from_name() and added mono_class_token_from_name()
989         instead that takes advantage of a map from class names to typedef
990         tokens in MonoImage.
991
992 Tue Aug 21 18:54:58 CEST 2001 Paolo Molaro <lupus@ximian.com>
993
994         * metadata.c: zero is not a valid alignment boundary.
995         Merge MONO_TYPE_VOID in default decoding code.
996
997 2001-08-21  Dietmar Maurer  <dietmar@ximian.com>
998
999         * image.h: merged MonoMetadata into MonoImage
1000
1001         * class.h: cleanup of MonoArrayClass, use a MonoClass pointer to
1002         identify the type of elements.
1003
1004 Mon Aug 20 19:39:00 CEST 2001 Paolo Molaro <lupus@ximian.com>
1005
1006         * blob.h: fix MONO_TYPE_TYPEDBYREF value.
1007         * cil-coff.h: split MonoMSDOSHeader and add size info.
1008         * image.c: add some consistency checks.
1009         * metadata.c: fix row size computation: one programmer
1010         error and one LAMESPEC. Handle MONO_TYPE_TYPEDBYREF.
1011         add explanation for the locator routine.
1012         Fix decoding of size in method header.
1013         
1014 2001-08-20  Miguel de Icaza  <miguel@ximian.com>
1015
1016         * assembly.c    (g_concat_dir_and_file): Use _S for string concat.
1017         (g_concat_dir_and_file): Bring g_concat_dir_and_file
1018         function from gnome-libs.  This uses the right path separator
1019         based on the OS, and also works around a bug in some systems where
1020         a double slash is not allowed. 
1021         (default_assembly_name_resolver): Use g_concat_dir_and_file
1022         (mono_assembly_open): ditto.
1023
1024 2001-08-20  Dietmar Maurer  <dietmar@ximian.com>
1025
1026         * metadata.c (mono_metadata_signature_equal): impl.
1027
1028         * *: void is now a realy MonoType (instead of using NULL)
1029         
1030         * metadata.c (do_mono_metadata_parse_type): use
1031         mono_metadata_parse_type to parse void value.
1032
1033 Sat Aug 18 12:51:28 CEST 2001 Paolo Molaro <lupus@ximian.com>
1034
1035         * metadata.c, metadata.h: in the signature and method header store
1036         only the space required for holding the loca vars and incoming arguments.
1037
1038 2001-08-15  Dietmar Maurer  <dietmar@ximian.com>
1039
1040         * metadata.c (do_mono_metadata_parse_type): treat void like any
1041         other type (instead of assigning NULL);
1042
1043 2001-08-14  Dietmar Maurer  <dietmar@ximian.com>
1044
1045         * metadata.c (mono_metadata_parse_mh): fixxed pinned/byref value
1046
1047 2001-08-09  Dietmar Maurer  <dietmar@ximian.com>
1048
1049         * image.c (do_mono_image_open): added a cache for arrays.
1050
1051 Sat Aug 4 12:46:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1052
1053         * metadata.h, metadata.c: add mono_metadata_decode_row_col () to
1054         decode a single column from a row in a metadata table and changes
1055         to take advantage of it in the typedef locator (gives a nice speed up).
1056         Store offset info for function params.
1057
1058 2001-08-02  Dietmar Maurer  <dietmar@ximian.com>
1059
1060         * image.h (MONO_IMAGE_IS_CORLIB): removed 
1061
1062 Wed Aug 1 22:54:08 CEST 2001 Paolo Molaro <lupus@ximian.com>
1063
1064         * assembly.c: how could mono_assembly_close () had ever worked?
1065         * metadata.c, metadata.h: provide offset info for local vars.
1066         Implement mono_type_size () to take care of alignment as well
1067         as size (it was mono_field_type_size in cli/class.c before).
1068
1069 2001-08-01  Dietmar Maurer  <dietmar@ximian.com>
1070
1071         * image.h (MONO_IMAGE_IS_CORLIB): new macro to check root image
1072
1073         * assembly.h (CORLIB_NAME): set to corlib.dll
1074
1075         * assembly.c (mono_assembly_open): replaced strcmp() with !strcmp()
1076
1077 Tue Jul 31 17:54:02 CEST 2001 Paolo Molaro <lupus@ximian.com>
1078
1079         * metadata.h, metadata.c, Makefile.am, private.h, assembly.c, blob.h,
1080         cil-coff.h, image.c, image.h, pedump.c, rawbuffer.c, rawbuffer.h, row-indexes.h,
1081         tokentype.h: massive namespace cleanup.
1082
1083 Mon Jul 30 20:11:01 CEST 2001 Paolo Molaro <lupus@ximian.com>
1084
1085         * metadata.h, metadata.c: decode exception clauses when parsing method header.
1086
1087 2001-07-27  Dietmar Maurer  <dietmar@ximian.com>
1088
1089         * metadata.c (mono_metadata_free_type): added check for type !=
1090         NULL (void) before calling mono_metadata_free_type()
1091
1092 Thu Jul 26 19:11:19 CEST 2001 Paolo Molaro <lupus@ximian.com>
1093
1094         * metadata.h, row_indexes.h: added header with enumerations to use
1095         to index in the columns from tables in metadata and to decode coded
1096         tokens: we should start using this instead of embedding magic numbers
1097         all over the code.
1098
1099 Thu Jul 26 13:03:27 CEST 2001 Paolo Molaro <lupus@ximian.com>
1100
1101         * assembly.c, cil-coff.h, image.c, image.h, pedump.c, typedef.c:
1102         Move metadata_t info from cli_image_info_t to MonoImage, where
1103         it's easily accessible. Changed all the uses accordingly.
1104         Added the method and class caches to MonoImage.
1105         * metadata.c, metadata.h: Changed mono_metadata_decode_blob_size ()
1106         and mono_metadata_decode_value () signature to be more consistent
1107         with the other parse functions (and simplify code). Taken advantage
1108         of zero-length array allocation with GCC. Removed reduntant (and
1109         wrong) MonoFieldType struct and use MonoParam instead. Changed
1110         mono_metadata_parse_field_type () to use common code for parsing.
1111         Added mono_metadata_typedef_from_field () and
1112         mono_metadata_typedef_from_method () to lookup a typedef index from a
1113         field or method token.
1114         Pack the MonoRetType structure more tightly (fits in 8 bytes now).
1115
1116 2001-07-23  Miguel de Icaza  <miguel@ximian.com>
1117
1118         * metadata.c (mono_metadata_parse_field_type): Implement. 
1119         (do_mono_metadata_parse_type): Split engine from
1120         mono_metadata_parse_type, so that we can create smaller structures
1121         for things that just have one pointer to the MonoType (look at
1122         the MonoFieldType)
1123
1124 2001-07-20  Miguel de Icaza  <miguel@ximian.com>
1125
1126         * metadata.c (mono_metadata_parse_mh): Correct the implementation,
1127         as Jan Gray found out, it is incorrect. 
1128
1129 2001-07-18  Miguel de Icaza  <miguel@ximian.com>
1130
1131         * assembly.c: Implement asssembly loading.  This loads an image
1132         and loads all the referenced assemblies.  Come to think of it, we
1133         could always do lazy loading of the assemblies. 
1134
1135         * image.c (mono_image_open): Keep loaded images in a hashtable.
1136
1137         * image.h (MonoImage): Add reference count.
1138
1139 2001-07-17  Miguel de Icaza  <miguel@ximian.com>
1140
1141         * assembly.c (mono_assembly_open): Keep track of the file name in
1142         case the assembly has no ASSEMBLY table.
1143
1144         * metadata.h: Fixed Paolo's quick hack.  Put the documnentation
1145         from get.c here.
1146
1147 Sun Jul 15 19:39:06 CEST 2001 Paolo Molaro <lupus@ximian.com>
1148
1149         * metadata.c, metadata.h: decode local vars in method header
1150         parse function. Change callers accordingly.
1151
1152 Sun Jul 15 17:40:47 CEST 2001 Paolo Molaro <lupus@ximian.com>
1153
1154         * metadata.h, cil-coff.h: protect against multiple inclusion.
1155         Added some new structures to hold information decoded from metadata:
1156         MonoType, MonoParam, MonoArray, MonoMethod, MonoMethodSignature
1157         and relevant decoding/free functions.
1158         * metadata.c: implement decoding functions. Add warning for out of bounds
1159         index in mono_metadata_locate(). Implement mono_get_method () to retreive
1160         all the info about a method signature and invocation. Remove check on
1161         uninitialized local var in parse_mh() and fix memory leak.
1162
1163 2001-07-12  Miguel de Icaza  <miguel@ximian.com>
1164
1165         * metadata.h: More macros.
1166
1167         * tokentype.h: New file.
1168
1169 Fri Jul  6 11:30:53 CEST 2001 Paolo Molaro <lupus@ximian.com>
1170
1171         * assembly.c: added a consistency check and initialize
1172         some structures with g_new0().
1173         * metadata.c: fixed a couple more bugs in table size computation
1174         and add other checks for out-of bound access to metadata.
1175
1176 Thu Jul  5 22:34:21 CEST 2001 Paolo Molaro <lupus@ximian.com>
1177
1178         * metatada.c: fix bugs computing table sizes. Spew a
1179         warning when index in string heap is out of bounds.
1180
1181 2001-07-04  Miguel de Icaza  <miguel@ximian.com>
1182
1183         * metadata.h: Add a couple of macros to manipulate tokens. 
1184
1185 Tue Jul  3 18:33:32 CEST 2001 Paolo Molaro <lupus@ximian.com>
1186
1187         * assembly.c: g_free(ii->cli_sections) (and avoid double free of
1188         cli_section_tables).
1189
1190 2001-07-01  Miguel de Icaza  <miguel@ximian.com>
1191
1192         * metadata.c (mono_metadata_user_string): New function, provides
1193         access to the UserString heap. 
1194
1195 2001-06-27  Miguel de Icaza  <miguel@ximian.com>
1196
1197         * metadata.c: Add inline documentation.
1198
1199 2001-06-26  Miguel de Icaza  <miguel@ximian.com>
1200
1201         * propertyattr.h, paramattr.h, methodsem.h, methodattr.h: New
1202         files. 
1203
1204 2001-06-22  Miguel de Icaza  <miguel@ximian.com>
1205
1206         * typeattr.h: New file, TypeAttribute flags. 
1207
1208 2001-06-21  Miguel de Icaza  <miguel@ximian.com>
1209
1210         * mono/metadata/assembly.c (mono_assembly_ensure_section_idx,
1211         mono_assembly_ensure_section): Section loading code.
1212         (load_section_tables): Load the sections.
1213
1214         * mono/metadata/metadata.c (mono_metadata_locate_token,
1215         mono_metadata_locate): Functions to locate the information
1216         definition given a token or a table and an index.
1217         (mono_metadata_compute_table_bases): New.
1218         (compute_size): New function to compute the sizes of the various
1219         tables.
1220
1221         * mono/metadata/metadata.h: Finish listing the different index
1222         types. 
1223
1224         * mono/metadata/pedump.c: Improve to dump new information.
1225
1226 2001-06-19  Miguel de Icaza  <miguel@ximian.com>
1227
1228         * mono/metadata/metadata.c: Entered all the tables matching
1229         Beta2. 
1230
1231         * mono/metadata/assembly.c (load_metadata_ptrs): Fix for Beta2
1232