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