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